我有一个如下所示的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.
答案 0 :(得分:3)
PDF并非所见即所得格式。
这不是因为您看到一段计算机程序可以看到它。
实际上,未标记的PDF可能看起来像这样(伪pdf代码):
转到位置10,700
将活动字体设置为Times New Roman
将fontsize设置为12
将颜色设置为黑色
绘制字形“ H”
去坐标10,680
绘制字形“ Lorem”
从示例中可以看出,说明不需要按阅读顺序绘制文本。
因此,您面临的第一个挑战是识别段落。 我曾在iText工作,曾与Adobe的许多人交谈过。 能够识别未加标签的PDF文档中的结构并不容易。
一旦您具有这种结构(达到“这些字形组成一行”和“这些线组成一个段落”等的级别),就可以创建一个StructureTree
但是,因为从未想到过这种用例(重新标记PDF),所以iText(或据我所知的任何其他PDF库)并不是真正旨在允许您(轻松)做到这一点。
标签本身是PDF内独立数据结构的一部分。 标签可以有子级(例如,表示“本段包含这些行”)。 标签本身将引用作为标签一部分的对象(指令组)。
所以您可能具有:
为全面了解,我建议阅读PDF规范。