I use iText in my java app for generating pdf. The goal is generate paragraph which have on each row some name on left and value on right. Space between name and value is filled by dots:
param1..............value1
param2..............val1, val2
param3..............any text
I am using TabStop and everything work fine. There is my code.
/**
* 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;
}
The problem appears with long "value". Result is:
param1..............value1
param2..............val1, val2
param3..............some long value
which start new line
... but I need something like this:
param1..............value1
param2..............val1, val2
param3..............some long value
....................which start new line
Any idea how to reach it? Only one solution that struck me is use PdfPTable.