我正在尝试从 pdf 文档中提取文本。我已经测试了几个工具,如、PDFBox
等,但它们都不适用于提取波斯语多列 pdf 文档的文本。TET
PDFTextStream
目前,我正在尝试结合此工具的良好功能并对其使用一些技巧。现在我想知道如何检测页面的列数以及如何拆分这些列的文本。
特别是我想知道哪个类PDFBox
或PDFTextStream
负责列检测以及它是如何工作的。
我正在尝试从 pdf 文档中提取文本。我已经测试了几个工具,如、PDFBox
等,但它们都不适用于提取波斯语多列 pdf 文档的文本。TET
PDFTextStream
目前,我正在尝试结合此工具的良好功能并对其使用一些技巧。现在我想知道如何检测页面的列数以及如何拆分这些列的文本。
特别是我想知道哪个类PDFBox
或PDFTextStream
负责列检测以及它是如何工作的。
我只能说PDFTextStream
,但为了理解它是如何工作的,你想大致了解PDFTextStream
一下 PDF 文档的外观。
每个文档由 组成Pages
,由 组成Blocks
(其中可以有很多并且嵌套)。Blocks
最终将包含Lines
,它将包含TextUnits
。
这些单位中的每一个都有一个、x
和y
属性。所有 PDF 都是基于它们的坐标布局的这些基本单位。当您要求“阅读”一个页面或一个区域时,它会查看对象以及它们在 X、Y 平面上的布局方式,并使用将其转换为文本的近似值。这就是为什么会出错,因为没有 100% 万无一失的方法可以将此结构转换为机器可读的结构化数据。width
height
PDFTextStream
在PDFTextStream
中,你应该看看getRegionText
函数和例子。PDFTextStream 是专有的(我转向 PDFBox 的原因),因此我无法向您提供有关用于获取文本的算法的详细信息,但它们基于上述过度简化。
祝你好运。