PDF.js returns 整个Document的文本内容作为每个Page的textContent
PDF.js returns text contents of the whole Document as each Page's textContent
我正在构建一个使用 PDF.js 来解析所选 PDF 文件内容的客户端应用程序,但我 运行 遇到了一个奇怪的问题。
一切似乎都运行良好。代码成功加载PDF.jsPDF对象,然后循环遍历文档的Pages,然后获取每个Page的textContent。
在我输入下面的代码 运行 并检查浏览器工具中的数据后,我注意到每个页面的 textContent 对象都包含整个文档的文本,而不仅仅是相关页面中的文本.
有没有人以前经历过这种情况?
我从这里的 PDF.js 帖子中提取(并修改)了我正在使用的大部分代码,除了这个问题之外,它非常简单明了,似乎完全按照预期执行:
testLoop: function (event) {
var file = event.target.files[0];
var fileReader = new FileReader();
fileReader.readAsArrayBuffer(file);
fileReader.onload = function () {
var typedArray = new Uint8Array(this.result);
PDFJS.getDocument(typedArray).then(function (pdf) {
for(var i = 1; i <= pdf.numPages; i++) {
pdf.getPage(i).then(function (page) {
page.getTextContent().then(function (textContent) {
console.log(textContent);
});
});
}
});
}
},
此外,每个页面返回的 textContent 对象的大小略有不同,即使所有对象共享一个共同的最后一个对象 - 整个文档的最后一位文本。
这是我的检查员的图片,说明所有对象的大小都非常相似。
通过手动检查显示的检查器中的对象,我可以看到来自页面 #1 的数据实际上应该只包含大约 140 个数组项,那么为什么该页面的对象包含 ~700 左右?为什么会有变化?
看来这里的问题是我正在尝试解析的 PDF 文档的格式。 PDF 包含表格格式的政府记录,显然不是根据现代 PDF 标准编写的。
我已经用不同的 PDF 文件(我知道这些文件组成正确)测试了脚本,并且返回的页面 textContent 对象根据页面的内容正确分割。
以防以后其他人遇到这个问题,目前为止我想到的至少有两种可能的处理方法:
以某种方式重新格式化格式错误的 PDF 以使用更新的标准,然后对其进行处理。我不知道该怎么做,我也不确定它是否现实。
Select 最大的返回页面 textContent 对象(因为它们或多或少都包含文档的全文)并对该 textContent 对象执行操作。
我正在构建一个使用 PDF.js 来解析所选 PDF 文件内容的客户端应用程序,但我 运行 遇到了一个奇怪的问题。
一切似乎都运行良好。代码成功加载PDF.jsPDF对象,然后循环遍历文档的Pages,然后获取每个Page的textContent。
在我输入下面的代码 运行 并检查浏览器工具中的数据后,我注意到每个页面的 textContent 对象都包含整个文档的文本,而不仅仅是相关页面中的文本.
有没有人以前经历过这种情况?
我从这里的 PDF.js 帖子中提取(并修改)了我正在使用的大部分代码,除了这个问题之外,它非常简单明了,似乎完全按照预期执行:
testLoop: function (event) {
var file = event.target.files[0];
var fileReader = new FileReader();
fileReader.readAsArrayBuffer(file);
fileReader.onload = function () {
var typedArray = new Uint8Array(this.result);
PDFJS.getDocument(typedArray).then(function (pdf) {
for(var i = 1; i <= pdf.numPages; i++) {
pdf.getPage(i).then(function (page) {
page.getTextContent().then(function (textContent) {
console.log(textContent);
});
});
}
});
}
},
此外,每个页面返回的 textContent 对象的大小略有不同,即使所有对象共享一个共同的最后一个对象 - 整个文档的最后一位文本。
这是我的检查员的图片,说明所有对象的大小都非常相似。
通过手动检查显示的检查器中的对象,我可以看到来自页面 #1 的数据实际上应该只包含大约 140 个数组项,那么为什么该页面的对象包含 ~700 左右?为什么会有变化?
看来这里的问题是我正在尝试解析的 PDF 文档的格式。 PDF 包含表格格式的政府记录,显然不是根据现代 PDF 标准编写的。
我已经用不同的 PDF 文件(我知道这些文件组成正确)测试了脚本,并且返回的页面 textContent 对象根据页面的内容正确分割。
以防以后其他人遇到这个问题,目前为止我想到的至少有两种可能的处理方法:
以某种方式重新格式化格式错误的 PDF 以使用更新的标准,然后对其进行处理。我不知道该怎么做,我也不确定它是否现实。
Select 最大的返回页面 textContent 对象(因为它们或多或少都包含文档的全文)并对该 textContent 对象执行操作。