PDFを生成するためにJavaアプリでiTextを使用しています。目標は、各行の左側に名前、右側に値を持つ段落を生成することです。名前と値の間のスペースはドットで埋められます。
param1..............value1
param2..............val1, val2
param3..............any text
TabStop を使用していますが、すべて正常に動作します。私のコードがあります。
/**
* Method that generate paragraph with given indent
* @param firstTabPosition parameter name indent
* @param secondTabPosition value indent
* @param itemNames list of names
* @param itemValues list of values
*/
public Paragraph GetTextListParagraph(int firstTabPosition, int secondTabPosition, ArrayList<String> itemNames, ArrayList<String> itemValues) throws DocumentException {
ArrayList<TabStop> tabList = new ArrayList<>();
tabList.add(new TabStop(firstTabPosition, new VerticalPositionMark()));
tabList.add(new TabStop(secondTabPosition, new DottedLineSeparator()));
Paragraph paragraph = new Paragraph();
paragraph.setTabSettings(new TabSettings(tabList));
for (int index = 0; index < itemNames.size(); index++) {
paragraph.add(Chunk.TABBING);
paragraph.add(itemNames.get(index));
paragraph.add(Chunk.TABBING);
paragraph.add(itemValues.get(index));
paragraph.add(Chunk.NEWLINE);
}
return paragraph;
}
問題は長い「値」で発生します。結果は次のとおりです。
param1..............value1
param2..............val1, val2
param3..............some long value
which start new line
...しかし、私はこのようなものが必要です:
param1..............value1
param2..............val1, val2
param3..............some long value
....................which start new line
それに到達する方法はありますか?私を驚かせた唯一の解決策は、PdfPTable を使用することです。