質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
PDF

PDF(Portable Document Format)とはISOによって国際標準として制定されている電子ドキュメント用の拡張子です。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

Q&A

1回答

702閲覧

文字列の表示について

y-yu

総合スコア0

PDF

PDF(Portable Document Format)とはISOによって国際標準として制定されている電子ドキュメント用の拡張子です。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

0グッド

1クリップ

投稿2020/04/24 06:52

編集2020/04/24 06:54

初心者です。
お手柔らかにお願いします。

前提・実現したいこと

DBからデータ(文字列)を取得してPDF(ブラウザ)に出力する処理を行っております。
文字列内には改行も含まれるため、String.ReadLine()で一行ずつ簡易に取得しております。
一行に表示できる文字数を制限したいのですがその部分が上手くいきません。

とりあえず文字数制限をかけていない状態のソース

vbnet

1'DBから文字列取得 2Dim contents As String 3contents = comment.Rows(dataloop)("moji").ToString 4Dim coment As New System.IO.StringReader(contents) 5While coment.Peek() > -1 6 '一行読み込んで表示する 7 objpdf.DrawText(nRtnCode, pageno, pagedirection, inX, inY + (-dispY), fontwidth, fonthieght, coment.ReadLine(), font) 8 'Y座標更新 9 dispY += 1 10End While

この場合の結果がこちらです。
イメージ説明
見て頂けると分かると思うのですが、枠外にはみ出してしまっています。
これを文字数制限をしてMax文字になったら次行に表示するという処理をしたいです。

実際にやってみた結果

文字数制限の処理をいれてやってみました。

vbnet

1Dim maxmoji As Short = 63 2Dim contents As String 3 4'コメント 5contents = comment.Rows(dataloop)("CONTENTS").ToString 6Dim coment As New System.IO.StringReader(contents) 7While coment.Peek() > -1 8 Dim max As Integer = coment.ReadLine().Length 9 'Max文字数チェック 10 If max <= maxmoji Then 11 '一行読み込んで表示する 12 objpdf.DrawText(nRtnCode, pageno, pagedirection, inX, inY + (-dispY), fontwidth, fonthieght, coment.ReadLine(), font) 13 'Y座標更新 14 dispY += 1 15 Else 16 For i As Integer = 0 To max Step maxmoji 17 Dim len As Integer = If(i + maxmoji < max, maxmoji, max - i) 18 objpdf.DrawText(nRtnCode, pageno, pagedirection, inX, (inY + (-dispY)), fontwidth, fonthieght, contents.Substring(i, len), font) 19 'Y座標更新 20 dispY += 1 21 Next 22 End If 23End While

イメージ説明
文字数

補足情報(FW/ツールのバージョンなど)

PdfGeneratorNetFree.dll
.Net 2010
Framework 4
MySql

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

読み込んだ文字列を一旦ループ処理でListに追加し(文字数制限を超える行は複数回分割して追加する)、そのListを使って出力してはどうでしょう?

投稿2020/04/24 07:24

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問