다른 PDF 문서에서 몇 페이지를 추출하여 생성 된 PDF 문서가 있습니다. 나는 페이지 번호를 어떻게 얻는 지 궁금하다. 시작 페이지 번호가 572이므로 전체 PDF 문서의 경우 1이어야합니다.PDF 파일에서 페이지 번호 추출하기
PDF를 XMl로 변환하면이 문제가 해결 될 것으로 생각하십니까?
다른 PDF 문서에서 몇 페이지를 추출하여 생성 된 PDF 문서가 있습니다. 나는 페이지 번호를 어떻게 얻는 지 궁금하다. 시작 페이지 번호가 572이므로 전체 PDF 문서의 경우 1이어야합니다.PDF 파일에서 페이지 번호 추출하기
PDF를 XMl로 변환하면이 문제가 해결 될 것으로 생각하십니까?
대부분 문서에 /PageLabels
항목이 포함되어 있습니다 (Document Catalog
). 이 항목은 페이지 번호와 시작 번호의 번호 스타일을 지정합니다.
시작 번호를 업데이트하거나 항목을 완전히 삭제해야 할 수 있습니다. 당신이 항목을 업데이트하기로 결정한 경우 문서의
예 2는 유용 할 수 있습니다 : 다음 문서는 추가 정보에 대한 /PageLabels
항목이 포함되어 있습니다.
마지막으로 iText를 사용하여 알아 냈습니다. 보브 스키의 힌트 없이는 가능하지 않았을거야. 그에게 감사의 톤. 코드 샘플 게시 :
public void process(PdfReader reader) {
PRIndirectReference obj = (PRIndirectReference) dict.get(com.itextpdf.text.pdf.PdfName.PAGELABELS);
System.out.println(obj.getNumber());
PdfObject ref = reader.getPdfObject(obj.getNumber());
PdfArray array = (PdfArray)((PdfDictionary) ref).get(com.itextpdf.text.pdf.PdfName.NUMS);
System.out.println("Start Page: " + resolvePdfIndirectReference(array, reader));
}
private static int resolvePdfIndirectReference(PdfObject obj, PdfReader reader) {
if (obj instanceof PdfArray) {
PdfDictionary subDict = null;
PdfIndirectReference indRef = null;
ListIterator <PdfObject> itr = ((PdfArray) obj).listIterator();
while (itr.hasNext()) {
PdfObject pdfObj = itr.next();
if (pdfObj instanceof PdfIndirectReference)
indRef = (PdfIndirectReference) pdfObj;
if (pdfObj instanceof PdfDictionary) {
subDict = (PdfDictionary) pdfObj;
break;
}
}
if (subDict != null) {
return resolvePdfIndirectReference(subDict, reader);
} else if (indRef != null)
return resolvePdfIndirectReference(indRef, reader);
} else if (obj instanceof PdfIndirectReference) {
PdfObject ref = reader.getPdfObject(((PdfIndirectReference) obj).getNumber());
return resolvePdfIndirectReference(ref, reader);
} else if (obj instanceof PdfDictionary) {
PdfNumber num = (PdfNumber)((PdfDictionary) obj).get(com.itextpdf.text.pdf.PdfName.ST);
return num.intValue();
}
return 0;
}
응답 해 주셔서 감사합니다. 하지만 실제로 Java 프로그램 내에서 액세스하려고합니다. 거기에 PDFReader 개체에서 핸들을 얻을 수있는 방법이 있나요? – Deb