필자는 Java 응용 프로그램에서 iText를 사용하여 pdf를 생성합니다. 목표는 각 행에 왼쪽에있는 이름과 오른쪽에있는 값이있는 단락을 생성하는 것입니다. 이름과 값 사이의 공백은 점으로 채워집니다.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을 사용하는 것입니다.
이것은 당신이 탭 대신 테이블을 사용해야하는 경우처럼 보이는 것 같다. –