我想重新格式化PDF主要内容,因此我需要提取其主要内容,不仅包括文本,还包括表格,图表等及其布局信息。我只对内容的主要部分感兴趣,例如,对于技术论文,我只对文本,表格和图表的列感兴趣。页眉,页脚和页边距上的文本可以忽略。
从PDF页面扫描内容流,识别它们是文本段落还是其他页面。 如果它们是文本段落,我可以对其应用某种格式处理。 如果它们像桌子,图表或任何不像段落的东西,我只会保持原样,或只是收缩或放大以适应新的显示。
例如,以下流,我将收集文本,并记下文本相对于页面的起点:
stream
BT
/F1 20 Tf
120 120 Td
(Hello from Steve) Tj
ET
endstream
继续分解流内容以组织具有相对位置信息的文档元素数组,无论它们是否为段落(以便能够重新格式化相关文本。)
我想即使只是分解一个流并告诉它们是否是文本的段落并记下它的相对位置可能并不是微不足道的。
我发现pdf.js的page.render()可能有机会帮助我实现目标,但我还没弄清楚它是如何适应的。
此外,pdf2htmlEx可能具有类似的机制,因为它可以将PDF文件转换为html。
但不确定上述工具在什么级别进行渲染/转换,如果他们直接将它们作为图像进行处理,那么它们可能无助于我的目的。
Android上的Adobe PDF查看器提供了在手机小屏幕上重新流动PDF内容的功能。它可能会使用某种全内容捕获机制,以及我想要的转换。
所以我的问题是如何指出我的要求是如何实现的?
非常感谢