以pdf标记内容

问题描述 投票:1回答:1

我有一个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个回答
3
投票

PDF不是WYSIWYG格式。 这不是因为您看到计算机程序能够看到它的段落。

实际上,未标记的PDF可能看起来像这样(伪pdf代码):

去位置10,700 将活动字体设置为Times New Roman 将fontsize设置为12 将颜色设置为黑色 绘制字形'H' 去协调10,680 绘制字形'Lorem'

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

因此,您面临的第一个挑战是识别段落。我在iText工作,我和Adobe的各个人交谈过。能够识别未标记的PDF文档中的结构并不是一个容易的问题。

一旦你有了这个结构(到'这些字形构成一条线的水平'和'这些线组成一个段'等),这是一个创建StructureTree的问题

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

标签本身是PDF内单独数据结构的一部分。标签可以有子项(例如,表示'此段包含这些行')。标签本身将引用作为其一部分的对象(指令组)。

所以你可能有:

  • 这些指令(用于渲染一行文本)构成一个单词并形成一个对象
  • 这些单词对象(通过标签)聚合成一个线对象
  • 一些行标记聚合到段落对象中

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

© www.soinside.com 2019 - 2024. All rights reserved.