【问题标题】:Read TOC (not Bookmarks) from a PDF using iText or PDFBox使用 iText 或 PDFBox 从 PDF 中读取 TOC(不是书签)
【发布时间】:2015-07-03 12:16:56
【问题描述】:

我需要从输入的 PDF 文件中提取 目录 (TOC)。到目前为止我看到的所有代码都是指书签。 TOC 和书签是一回事。 有没有办法使用 iText 或 PDFBox 从 pdf 中提取 TOC。我愿意使用任何其他可用的工具。

谢谢

【问题讨论】:

    标签: pdf itext pdfbox tableofcontents


    【解决方案1】:

    您引用的 PDF 的目录只不过是页面上的普通文本。因此,您唯一的选择是提取包含 TOC 的页面上的文本,例如使用 ExtractPageContentSorted2 示例中显示的代码:

    public void parsePdf(String pdf, String txt) throws IOException {
        PdfReader reader = new PdfReader(pdf);
        PrintWriter out = new PrintWriter(new FileOutputStream(txt));
        for (int i = 1; i <= reader.getNumberOfPages(); i++) {
            out.println(PdfTextExtractor.getTextFromPage(reader, i));
        }
        out.flush();
        out.close();
        reader.close();
    }
    

    本示例提取 PDF 中所有页面的文本,并将其写入路径为 txt 的文件中。如果您希望此代码仅提取带有目录的页面,则必须更改 for 循环中的页码,例如:

    for (int i = startTOC; i <= endTOC; i++)
    

    其中startTOC 是TOC 开始的页码,endTOC 是TOC 结束的页码。 需要提供这些数字,因为 PDF 文档本身并不知道这些页面上的内容实际上是目录。 PDF 只知道页面包含文本和渲染路径,可能还有一些图像。这是 PDF 所固有的。

    【讨论】:

      猜你喜欢
      • 2011-08-04
      • 1970-01-01
      • 2019-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-09-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多