获取textcontent pdf.js

时间:2013-12-15 18:49:30

标签: javascript pdf.js

我正在尝试使用JS中的pdf.js从pdf文档中获取文本。但是,pdf.js没有合适的文档,我查看了可用的示例,我想到了这个:

var pdfUrl = "http://localhost/test.pdf"
var pdf = PDFJS.getDocument(pdfUrl);
pdf.then(function(pdf) {
    var maxPages = pdf.pdfInfo.numPages;
    for (var j = 1; j < maxPages; j++) {
        var page = pdf.getPage(j);

        page.then(function() {
            var textContent = page.getTextContent();

        })
    }
});

页面位工作正常,因为我可以看到它是一个承诺。但是,运行此位会给出:

Warning: Unhandled rejection: TypeError: Object #<Object> has no method 'getTextContent'
TypeError: Object #<Object> has no method 'getTextContent'

在我见过的例子中,它正在这样工作。它正在获取页面,我可以打印出页数。

任何有经验可以解雇的人?

*奖金问题: 我只对解析pdf感兴趣,而不是在浏览器中渲染它。但是必须在客户端完成。 pdf.js是这项工作的合适锤子吗?

3 个答案:

答案 0 :(得分:2)

page.then(function() {应为page.then(function(page) {

答案 1 :(得分:1)

PDF.js呈现您的pdf文件并生成单词,然后将它们输出为html元素。 然后将每个元素放在pdf上方,使用css属性{position:absolute; left:X,top:Y}并屏蔽你的pdf。

这些div被赋予css属性{color:transparent}。这就是选择突出显示的技巧,看来你直接从pdf文件中选择,但实际上你正在选择创建的html元素。

这正是它的工作原理,如果你想渲染pdf文件就没关系,但要记住,如果你想改变输出技术(html透明div),你必须带上你自己的替代品。

答案 2 :(得分:0)

您还需要将其更改为

for (var j = 1; j <= maxPages; j++) {

否则你永远不会得到第一页。