PDF.js将整个Document的文本内容作为每个Page的textContent返回

时间:2016-07-09 01:55:50

标签: javascript pdf.js

我正在构建一个客户端应用程序,它使用PDF.js来解析所选PDF文件的内容,而且我遇到了一个奇怪的问题。

一切似乎都很有效。代码成功加载PDF.js PDF对象,然后循环遍历文档的页面,然后获取每个页面的textContent。

在我让下面的代码运行并检查浏览器工具中的数据之后,我注意到每个Page的textContent对象都包含整个文档的文本,而不仅仅是相关页面中的文本

以前有人经历过这个吗?

我在这里提取(并修改)了我在PDF.js帖子中使用的大部分代码,而且它非常简单,除了这个问题外似乎完全符合预期:< / p>

/etc/cron.daily

此外,返回的textContent对象的大小对于每个页面略有不同,即使所有对象共享一个公共的最后一个对象 - 整个文档的最后一位文本。

这是我的检查员的图像,用于说明对象的大小非常相似。

通过手动检查所显示的检查器中的对象,我可以看到来自页面#1的数据,例如,实际上应该只包含约140个数组项,那么为什么该页面的对象包含〜 700左右?为什么变化?

https://player.vimeo.com/video/172374044

1 个答案:

答案 0 :(得分:0)

看起来这里的问题是我正在尝试解析的PDF文档的格式。 PDF包含表格格式的政府记录,显然不是根据现代PDF标准编写的。

我已经使用不同的PDF文件(我知道它们已正确编写)测试了脚本,并且根据页面内容正确地分割了返回的Page textContent对象。

如果将来有其他人遇到这个问题,至少有两种可能的方法可以解决这个问题,就目前为止我想象的那样:

  1. 以某种方式重新格式化格式错误的PDF以使用更新的标准,然后对其进行处理。我不知道该怎么做,我也不确定这是否切合实际。

  2. 选择最大的返回页面textContent对象(因为它们都包含或多或少的文档全文)并对该textContent对象进行操作。