2017-02-02 1 views
-1

PDF의 페이지 수에 문제가 있습니다.Java에서 itext api를 사용하여 pdf에서 추가 페이지 수 얻기

페이지 수가 3 인 pdf가 있지만 바닥 글에 "Page 1 Of 4"가 표시된다고 가정 해 보겠습니다. 우리는 Eventer 클래스에서 4를 얻고 있습니다.

항아리 : com.lowagie.text-2.1.7.jar

Eventer 클래스 : PdfPageEventHelper.java

enter image description here

+0

iText 2.1.7은 더 이상 지원되지 않습니다. 2009 년의 해당 버전 날짜는 더 이상 사용하지 않아야합니다. 프로젝트 관리자를 설득하기위한 논의가 필요하면 [Can iText 2.1.7/iTextSharp 4.1.6 또는 그 이전 버전을 상업적으로 사용할 수 있습니까?] (http://developers.itextpdf.com/question/versions-older-than-5)를 읽어보십시오. iText 또는 iTextSharp의 최신 버전으로 업그레이드 할 수 있습니다. –

+0

게다가 :'PdfPageEventHelper'는 * ** empty ** * methods *로만 구성된'PdfPageEvents' 인터페이스의 구현물입니다. 따라서 "Eventer"클래스가'PdfPageEventHelper'라는 주장은 잘못되었습니다. 즉,'Eventer' 클래스가 의미하는 바를 아무도 모른다는 뜻입니다. 그와 같은 일은 없다. –

+0

비록 최신 버전을 사용해도 동일한 문제가 발생하더라도. http://memorynotfound.com/adding-header-footer-pdf-using-itext-java/ – Rajnikant

답변

0

공식 문서를 읽어 보시기 바랍니다, 당신은거야 귀하가상의 한 비 범용 웹 사이트의 예가 잘못되었음을 발견하십시오.

나의 책 "iText in Action - Second Edition"의 5 장에서 MovieCountries1 예제를 찾을 수 있습니다. 여기서 알 수 있듯이 을 onCloseDocument() 방법에 사용합니다.

public void onCloseDocument(PdfWriter writer, Document document) { 
    ColumnText.showTextAligned(total, Element.ALIGN_LEFT, 
      new Phrase(String.valueOf(writer.getPageNumber() - 1)), 
      2, 2, 0); 
} 

이유는 책의 페이지 152에 참고로 설명된다 : 문서가 닫혀

NOTE 상기 newPage() 방법은 현재의 finilizations는 위해 수행 트리거 페이지. newPage()이 호출되면 번호가 추가되므로 onCloseDocument() 메서드에서 총 페이지 수를 추가하려면 (writer.getPageNumber() - 1)을 사용해야합니다. 다른 예를 들어 필요한 경우

는 공식 웹 사이트에 FillTemplateHelper 예를 살펴.

+0

고마워요. – Rajnikant

+1

그럴 경우 언제든지 대답을 수락하십시오. –