【问题标题】:Tag content in pdf在 pdf 中标记内容
【发布时间】:2019-03-12 05:11:19
【问题描述】:

我有一个如下所示的 pdf。我想将该段落标记为“段落”。我已经对此进行了很多搜索,并且有一些方法可以从头开始创建带标签的 pdf,或者将 html 内容转换为带标签的 pdf,但我在标记现有 pdf 方面没有成功。

给定坐标,我可以在 pdf 中标记内容。在此示例中,我想将段落标记为段落标记。谢谢。

**A sample pdf**

1. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, 
sed diam nonum- my nibh euismod ncidunt ut laoreet dolore magna aliquam erat volutpat. 
Ut wisi enim ad minim veniam, quis nostrud exerci taon ullamcorper 
sus- cipit lobors nisl ut aliquip ex ea commodo consequat. 

【问题讨论】:

    标签: pdf itext pdfbox tagging pdf-manipulation


    【解决方案1】:

    PDF 不是所见即所得的格式。
    不是因为您看到一个段落,计算机程序才能看到它。

    事实上,未标记的 PDF 可能如下所示(伪 PDF 代码):

    前往位置 10, 700
    将活动字体设置为 Times New Roman
    将字体大小设置为 12
    将颜色设置为黑色
    绘制字形“H”
    转到坐标 10, 680
    绘制字形“Lorem”

    从示例中可以看出,指令不需要按阅读顺序绘制文本。

    因此,您面临的第一个挑战是识别段落。 我曾在 iText 工作,我曾与 Adob​​e 的不同人交谈过。 能够识别未标记的 PDF 文档中的结构并不是一个简单的问题。

    一旦你有了这个结构(到“这些字形组成一行”和“这些行组成一个段落”等级别),就可以创建一个StructureTree

    但由于这种用例(重新标记 PDF)从未被认为是可能的,因此 iText(或据我所知的任何其他 PDF 库)并不是真正旨在让您(轻松)做到这一点。

    标签本身是 PDF 中单独数据结构的一部分。 标签可以有子代(例如表示“本段包含这些行”)。 标签本身将引用属于它的对象(指令组)。

    所以你可能拥有:

    • 这些指令(用于渲染一行文本)组成一个单词并形成一个对象
    • 这些词对象被聚合(通过标签)成一个行对象
    • 几个行标签聚合成一个段落对象

    为了全面了解,我建议阅读 PDF 规范。

    【讨论】:

    • 谢谢@Joris。使用其他技术,我找到了段落的坐标。但我正在努力应用这些标签。那么什么是PDF的标签。它们是字形还是绘图运算符?
    猜你喜欢
    • 2023-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-11
    • 1970-01-01
    • 1970-01-01
    • 2014-11-10
    • 1970-01-01
    相关资源
    最近更新 更多