こんにちわ。
お世話になっております。
WebアプリケーションにおいてiTextを利用したPDFの作成を行っています。
今回どうしても上手くいかない所があり質問させて頂きます。
■簡単な処理の流れを説明します
(1)PdfPTableを使い、テーブルを作成
(2)Phraseを作成
(3)それをPdfPCellに代入
(4)PdfPCellにpaddingを設定し、セル内の任意の文字数で改行するように調整する
ここで問題となっているのが、(2)で作成した文字が自動改行されてしまうということです。
具体的に説明します。以下のソースを参照下さい。
-------------------------------------------------------------------
Document document = new Document(PageSize.A4, 15, 13, 0, 0);
PdfPTable tbl_ef2 = new PdfPTable(9);
int widthF2[] = { 5, 12, 5, 16, 14, 18, 10, 8, 12 };
tbl_ef2.setWidths(widthF);
tbl_ef2.setWidthPercentage(100);
PdfPCell cell2 = new PdfPCell(new Phrase("あいう1-2000");
cell2.setHorizontalAlignment(Element.ALIGN_LEFT);
cell2.setVerticalAlignment(Element.ALIGN_TOP);
cell2.setFixedHeight(24f);
◎cell2.setPaddingTop(0);
◎cell2.setPaddingBottom(0f);
◎cell2.setPaddingLeft(11f);
◎cell2.setPaddingRight(10f);
tbl_ef.addCell(cell2);
(以下省略)
document .add(tbl_ef);
-------------------------------------------------------------------
◎でpaddingを設定し、ちょうど6文字で改行するようにセル内を調整しています。
しかし、実際には
⇒(間違い):「あいう<改行>
1-2000」となります。
⇒(なってほしい姿):「あいう1-2<改行>
000」
いま分かっている範囲では、数字が入る文字がきて、それが前の行に入らないと
自動で改行されているようです。
なにか改行の設定を行うような機能はあるのでしょうか?
また、上手く文字列を6文字ずつで改行させる方法はないでしょうか?
よろしくお願いします。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
いえ、ですから、折り返して欲しい箇所に改行コードを入れてみては?と申しているのですが…
あいう1-2000
が
あいう(折り返し)
1-2000
ってなってしまうなら、折り返しを入れたい箇所に改行コードを入れて
あいう1-2(改行コード)000
にすれば、表示は
あいう1-2(改行コード)
000
になりませんか?
厳密には改行と折り返しなので、違いますが、
見た目は同じになるはずだと思います。
(表示するデータ全てに改行を入れるのは面倒ですが。)
最小の文字単位chunkを使用し、その中で任意の折り返し位置を
指定できるitextで用意されてるインターフェイスisSplitCharacterを
オーバーライドする形で初期で設定されている折り返しの設定を
無効化することができました。
アドバイスいただきましてありがとうございました。
No.2
- 回答日時:
>phaseにいれてしまうと自動改行されてしまうとおもうのですが
ホント?
あいう1-2<改行>000
を入れると
あいう1-2<改行>
<改行>
000
になるってこと?
それは考えられないけど、試してみました?
で、「自動改行」と仰ってますが、「折り返し」で、実際には改行が入ってるわけではありません。
この回答への補足
説明が悪かったです。
すみません。
仰る通りです。自動改行ではなく折り返しです。
実際のデータは「あいう1-2000」
で出力結果が「あいう (折り返し)
1-2000」となります。
↓
これを「あいう1-2 (折り返し)
000」
としたいわけです。
便宜上<改行>と書いただけで改行コード等は入っていません。
よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルの数式で教えてください。 1 2023/07/31 15:49
- Excel(エクセル) Excel 、この式はどのように解釈すればいいのでしょうか 4 2023/02/03 08:53
- Excel(エクセル) B列に文字がはいったらA列に数字が入るマクロードを完成させたい 4 2023/04/21 01:58
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
- その他(プログラミング・Web制作) プログラミング pythonの問題について 2 2022/04/19 00:41
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/01/06 08:39
- Excel(エクセル) Excelマクロ(VBA)CELL形式とA1形式の使い分け 6 2022/08/27 23:35
- Bluetooth・テザリング android(Galaxy S-22)、bluetoothの「この端末名」がコロコロ変わる 1 2022/12/17 13:15
- Excel(エクセル) エクセル セル内の文字数を超えたら自動的に折り返して表示 2 2023/07/24 05:32
- gooブログ 文字数の自動改行設定方法 3 2022/03/27 16:50
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プログラミングの問題です。大...
-
マイクラでPythonのプログラミ...
-
Eclipse 動的プロジェクトで404...
-
下記問題の答えが"D"になる意味...
-
どんな時にIteratorを使うと便...
-
ショートカットキーについて
-
list の空は [] ってあわらすのに
-
eclipse実行ができない
-
配列にnullを代入すると、null...
-
デバッグツールの具体例を教え...
-
えハミルトン路と全域木のちが...
-
CSV出力を画面から選択したデー...
-
あんまりお料理しないのに台所...
-
質問です。 配列が100以上の場...
-
次のhtml・cssでspan内の文字を...
-
改行含むテキストの表示の仕方
-
JaneStyleのスレッドが見れなく...
-
キー入力について
-
jdk17.06のインストーラーが起...
-
リレーションエンティティクラ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
アコーディオンメニューにする...
-
iText セル内での自動改行について
-
Listでintの最大値を超える要素...
-
Aタグのhrefの値を取得したいの...
-
或る文字列の文字数が一定数以...
-
JS node.childNodesの仕様について
-
jtreeのノードを右クリックで選...
-
こんばんは。 メガメニューを今...
-
jQuery UIのDroppableにて
-
jQueryについて
-
ajaxで読み込んだDOMに対してin...
-
URL+URN=URI と習ったのですが...
-
iアプリで改行する方法を教えて...
-
新しいパソコンのネット設定な...
-
collection型を引数にしたファ...
-
(再質問)エクセルのマクロボ...
-
mとnを入力 mからnまでを加算し...
-
<p> </p>ってまずいの?
-
六本組み木の作り方を教えて下...
-
汎用機のJCLの入門書ありま...
おすすめ情報