Я использую itext для анализа некоторых PDF-файлов, просто хочу получить текст контуров и номер страницы, к которой будет переходить контур.
Я пытаюсь использовать PdfDestination, чтобы получить некоторую информацию, но ничего не могу использовать,
Может ли помочь любое тело, код следующий:
public static void showTitle(PdfOutline outline, StringBuffer stringBuffer) {
System.out.println(outline.getTitle());
stringBuffer.append(outline.getTitle() + "\n");
List<PdfOutline> kids = outline.getAllChildren();
if (kids != null) {
for (PdfOutline kid : kids) {
showTitle(kid, stringBuffer);
}
}
}
public static void itext_getCatalogs(String pdfPath) {
try {
long startTime = System.nanoTime();
PdfDocument doc = new PdfDocument(new PdfReader(pdfPath));
int pageCount = doc.getNumberOfPages();
System.out.printf("pageCount=%d\n", pageCount);
PdfOutline outlines = doc.getOutlines(false);
PdfDictionary pdfDictionary = doc.getCatalog().getPdfObject();
List<PdfOutline> bookmarks = outlines.getAllChildren().get(0).getAllChildren();
StringBuffer stringBuffer = new StringBuffer();
for (PdfOutline bookmark : bookmarks) {
//PdfDestination dest = bookmark.getDestination();
//Map<String, PdfObject> retMap = new HashMap<String, PdfObject>();
//PdfObject pdfObject = bookmark.getDestination().getDestinationPage(retMap);
showTitle(bookmark, stringBuffer);
}
doc.close();
long endTime = System.nanoTime();
long duration = endTime - startTime;
System.out.printf("time: %dms\n", duration/1000000);
}catch (IOException e) {
}
}