如何使用Apache PdfBox在PDF文件中获取书签页码?

helloraga98

我已经获得了书签,但是我需要知道这些书签在PDF中的位置。(书签1 =第1页,...,书签54 =第72页,等等。)。有人可以帮助我吗?感谢您的支持。

PDDocument doc = PDDocument.load( ... );
PDDocumentOutline root = doc.getDocumentCatalog().getDocumentOutline();
PDOutlineItem item = root.getFirstChild();
  while( item != null )
  {
      System.out.println( "Item:" + item.getTitle() );
      item = item.getNextSibling();
  }
提尔曼房东

摘自PrintBookmarks.java源代码下载示例:

if (item.getDestination() instanceof PDPageDestination)
{
    PDPageDestination pd = (PDPageDestination) item.getDestination();
    System.out.println("Destination page: " + (pd.retrievePageNumber() + 1));
}
else if (item.getDestination() instanceof PDNamedDestination)
{
    PDPageDestination pd = document.getDocumentCatalog().findNamedDestinationPage((PDNamedDestination) item.getDestination());
    if (pd != null)
    {
        System.out.println("Destination page: " + (pd.retrievePageNumber() + 1));
    }
}

if (item.getAction() instanceof PDActionGoTo)
{
    PDActionGoTo gta = (PDActionGoTo) item.getAction();
    if (gta.getDestination() instanceof PDPageDestination)
    {
        PDPageDestination pd = (PDPageDestination) gta.getDestination();
        System.out.println("Destination page: " + (pd.retrievePageNumber() + 1));
    }
    else if (gta.getDestination() instanceof PDNamedDestination)
    {
        PDPageDestination pd = document.getDocumentCatalog().findNamedDestinationPage((PDNamedDestination) gta.getDestination());
        if (pd != null)
        {
            System.out.println("Destination page: " + (pd.retrievePageNumber() + 1));
        }
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用Apache PDFBOX打印HTML文本的PDF

如何使用Apache PDFBox从PDF文件提取文本

如何使用PDFBox从HTML创建PDF文件?

如何使用Apache pdfbox在PDF中生成多行

如何使用Apache PDFBox创建表

使用PDFBOX将顶级书签添加到现有的PDF中

使用PDFBox在PDF文件中绘制自动调整大小的图像

使用Apache PDFBox从PDF获取文本

如何在Java pdfbox中按结果拆分pdf文件

使用Apache PDFBox在PDF中查找JavaScript代码

pdf.js:我们如何使用pdf.js获取当前的pdf页码

使用Apache PDFBox库的PDF中数值的右对齐

如何从iText 7中的pdf的轮廓/书签访问矩形,适合类型,缩放,页码

PDFBox-如何通过页码获取页面的页面索引

如何使用iText7获取PDF的书签页码

Apache PDFBox打开临时创建的PDF文件

如何使用.pem证书签署pdf文件?

如何使用Apache Camel获取目录中的文件数?

使用pdfbox在特定页面中打开PDF文件

我如何从示例中获取页码(使用PHP)

如何从PDF文件中提取页码

如何合并pdf并为输出文件中的每个输入文件创建书签?(Linux)

如何使用Apache PDFBox拆分PDF?

我如何仅获取pdf文件中某个模式的页码,而不管该模式是否为多行?

如何使用pdf框中的书签选择pdf页面?

Apache PDFBox 2.0 - 创建的 PDF 文件中未显示文本

使用 Apache PDFBox 从 PDF 文档中删除 OCR 文本

如何在c#.net中使用pdfbox获取pdf中的特定位置词

如何从 Firefox 中打开的 pdf 的解码 href 中获取页码