Javascript Pdf.js文本覆盖仅添加到画布。如何将其记录到控制台?

Javascript Pdf.js文本覆盖仅添加到画布。如何将其记录到控制台?,javascript,html,iframe,canvas,pdf.js,Javascript,Html,Iframe,Canvas,Pdf.js,今天我学习了如何使用pdf.js从pdf文件中提取文本。功能是完美的,但是脚本本身的代码比调用pdf.js库实际需要的代码要多,而且相当混乱。一个例子是对另一个页面进行不需要的(?)ajax调用。由于这个原因,我决定清理这段代码,以便我和其他人可以在未来的项目中使用它 我花了一整天的时间来清理这段代码,并让它与html5文件api一起工作,但是我的重写有一个小问题 在我的一生中,我不知道如何在一个pdf页面中的每个文本层上循环之后,将输出的pdf页面文本记录到浏览器控制台。文本将添加到页面DOM

今天我学习了如何使用pdf.js从pdf文件中提取文本。功能是完美的,但是脚本本身的代码比调用pdf.js库实际需要的代码要多,而且相当混乱。一个例子是对另一个页面进行不需要的(?)ajax调用。由于这个原因,我决定清理这段代码,以便我和其他人可以在未来的项目中使用它

我花了一整天的时间来清理这段代码,并让它与html5文件api一起工作,但是我的重写有一个小问题

在我的一生中,我不知道如何在一个pdf页面中的每个文本层上循环之后,将输出的pdf页面文本记录到浏览器控制台。文本将添加到页面DOM中,但它位于画布中,具有原始字体,这是不好的。我希望实现与现有脚本相同的功能,即向div添加文本,使其看起来像纯文本。我不想将画布html或原始字体附加到文本中

问题在于:

但是,如果尝试运行脚本的“我的版本”并上载提供的pdf文件,则不会将任何数据输出到浏览器控制台,但文本将作为画布元素的父元素追加到DOM中。Grr

为什么文本没有输出到浏览器控制台?我有一种感觉,这是某种线程问题,但我真的没有足够的经验编写Javascript,能够告诉你。原始代码使用iframe通过
窗口
发送变量,但我发现这非常难看,我更喜欢使用我的代码版本,因为它更整洁,扩展更灵活

,因为它需要额外的依赖项,这意味着我无法在JSFIDLE等上发布它。。。这是我第一次使用github,所以我希望人人都能访问回购协议

如果有人能帮我,我会非常感激。任何修复建议都很好。我不希望有人会直接帮我修改代码,我只是希望有人能给我一些关于如何修改代码的建议


干杯。

我浏览了在git中添加的文件。你能告诉我你在哪里输入PDF吗?没关系,我现在知道PDF应该由用户输入。PDF需要拖到“filedrag”分区,或者浏览。有什么想法吗?没有人就这个问题投票,所以几乎没有人看到它。顺便说一句,这个简单的问题快把我逼疯了哈哈。我从任何地方都找不到pdf.js。你能从某个repo托管这个文件吗?那我就可以很容易地引用它了。我正试图修改它,但该修改并没有采用您在git中发布的pdf.js的原始版本。尝试了将近2个小时来获取pdf.js(:不走运
page.startRendering(context, function(){
    if (++self.complete == total){            
        window.setTimeout(function(){
            var layers = [];
            var nodes = document.querySelectorAll(".textLayer > div");
            for (var j = 0; j < nodes.length; j++){
                layers.push(nodes[j].textContent + "\n");
            }
            console.log("testing logging");
            console.log(layers.join("\n").replace(/\s+/g, " "));
        }, 1000);
    }
}, textLayer);
console.log("testing logging");