2014-07-08 7 views
0

필자는 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을 사용하는 것입니다.

+1

이것은 당신이 탭 대신 테이블을 사용해야하는 경우처럼 보이는 것 같다. –

답변

1

마지막 줄을 점으로 시작 하시겠습니까?

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 
+0

이 경우 구분 기호의 유형은 중요하지 않습니다. 중요한 것은 새 줄을 들여 쓰기 설정하는 방법입니다. TabStop 또는 PdfPTable을 제외한 다른 옵션을 사용하여 귀하의 옵션을 실현하는 방법을 아십니까? :) – BrooksWasHere

+0

아니요. Bruno가 가능하지 않다고 말하면 가능하지 않다는 것을 의미합니다. :)하지만 우리는이 기능을 향후 릴리스에서 구현할 수 있습니다. –

+1

우리는 이것에 대한 연구를 해왔습니다. 이를 구현하려면 코어 로직에서 너무 많은 변경이 필요합니다. 테이블을 통해 이것을 계속 처리합시다. –