【问题标题】:PDF itext TOC generationPDF itext TOC 生成
【发布时间】:2011-08-04 13:59:37
【问题描述】:

我必须将多个 PDF 文档合并为一个 PDF 文档。除此之外,我还必须生成 TOC。原始文档将包含具有特定样式的文本(例如 H1)。此特殊文本成为 TOC 的一部分。

已使用 iText 合并多个 PDF 文件。我无法找到关于解析文档以查找具有样式 H1 的所有内容的示例/API。 生成 TOC 是下一个挑战。

【问题讨论】:

    标签: pdf itext tableofcontents


    【解决方案1】:

    你没有。 PDF 没有样式。它们具有“当前图形状态”,其中包括:

    • 当前变换矩阵 (CTM)。
    • 描边和填充颜色
    • 剪切路径
    • 字体和大小
    • 其他文本状态内容(字符间距、字间距、前导、文本呈现模式...)
      • 包括一个单独的文本转换矩阵,它与 CTM 相结合。

    因此,首先您必须跟踪所有这些内容(iText 主要可以为您完成)。然后你必须确定“H1”文本有多大,并锁定在该尺寸屏幕尺寸中的所有文本,同时考虑 CTM、文本矩阵和字体大小(iText 将再次为你做,IIRC )。

    为了让像您这样的人的生活更加精彩,您正在查看的文本完全有可能不是文本。它可能是路径,也可能是位图...此时您需要 OCR,而且我认为您不会通过 OCR 获得太多的尺寸信息。

    您需要编写一个TextRenderListener 来确定给定文本的最终大小(以及它是否是最后一段的一部分)并过滤掉所有太小的内容。然后,您将根据找到的文本构建您的 TOC。

    【讨论】:

    • 感谢马克的回复。是否可以将 PDF 转换为 DOCX,然后解析 DOCX,以获取具有 H1 样式的文本,然后再次生成 PDF。
    • 理论上的 DOCX 转换器遇到了同样的问题。存在一些像样的 PDF->X 转换器,但它们往往是相当多的。 Acrobat Pro 可能会处理一些可接受的事情。
    猜你喜欢
    • 1970-01-01
    • 2012-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-12
    • 2014-09-01
    相关资源
    最近更新 更多