2013-04-25 2 views
0

iText를 사용하여 텍스트 파일을 PDF로 변환합니다. 변환 잘 작동하지만 BufferedReader가 특정 텍스트를 발견하면 변환하는 동안 새 PDF 페이지가 시작되어야합니다. 이것은 내가 시도한 것입니다.하지만 텍스트가 만났을 때 새로운 페이지가 시작되지 않습니다. 내 견본 코드가 아래와 같습니다 (관련 부분 만).텍스트를 PDF로 변환하는 동안 새 페이지 만들기 Itext를 사용하여

Document output = new Document(PageSize.B3); 
FileInputStream fs = new FileInputStream("C:/ABC Statements final/File.TXT"); 
FileOutputStream file = new FileOutputStream(new File("C:/Pdf Statements/File.PDF")); 
BufferedReader br = new BufferedReader(new InputStreamReader(fs)); 
PdfWriter writer = PdfWriter.getInstance(output, file); 
       output.open(); 
       writer.open(); 
............................. 
String pageend = "Page Total"; 
       String trimmedend = br.readLine().trim(); 
       if (trimmedend.startsWith(pageend)) { 
        output.newPage(); 
       } 
+1

output.newPage()는 현재 페이지에 내용이없는 경우 무시되지만 newPage()를 시작하는 올바른 방법입니다. if 문에 System.out을 추가하면 어떻게됩니까? output.newPage()가 호출 된 적이 있습니까? 그렇지 않다면 문제를 발견했으며 iText와 관련이 없습니다. –

+0

당신이 옳습니다. 내'System.out.println (trimmedend);'아무 것도 출력하지 않으면, 내 코드를 다시 점검 할 것입니다. – ErrorNotFoundException

+0

DataInputStream을 사용하여 텍스트를 읽지 마십시오. 그것은 중복되고 혼란 스럽습니다. 이 나쁜 코드가 많이 복사되므로 예제에서 제거하십시오. –

답변

1

은 아마 당신은 이런 식으로 if -statement을 변경해야

String pageend = "page total"; 
... 
if (trimmedend.toLowerCase().contains(pageend)) { 
    ... 
} 

이 방법, 당신은 대소 문자 구분을하지 않도록하고있는 것으로 간주되지 않는 문자를 가지고있는 문제를 방지 공백 "페이지 합계"전에. 물론 이것은 단지 교육받은 추측 일뿐입니다. 원본 데이터 스트림이 어떤 모양인지 모르겠습니다.

관련 문제