首页 > 解决方案 > 通过 pdf.js 查看器(画布)向文本层(div)添加 Javascript 调用

问题描述

我想将交互性叠加在由pdf.js.

我正在考虑的方法是将 Javascript 调用添加到文本层中<spans>呈现的文本层<div>中,以启用文本突出显示和选择。pdf.js<canvas>

我从gh-pages.zip模板开始,向app.js PDFViewerApplication.run() 方法添加代码,如下所示:

run(config) {
  this.initialize(config).then(function() {
    webViewerInitialized();
    console.log(PDFViewerApplication);
    PDFViewerApplication.pdfDocument.getPage(1);
    PDFViewerApplication.pdfViewer.viewer.children[1].outerHTML =
      '...<span  style="left: 72px; top: 98.5212px; font-size: 11.9552px; font-family: sans-serif; transform: scaleX(0.895184);"  onclick="console.log(\'Hence, recording and compiling a trace\')">Hence, recording and compiling a trace</span>...';
  });
},

pdfDocumentnull,所以该getPage行返回:

未捕获(承诺中)TypeError:无法在 eval 时读取 null 的属性“getPage”(app.js:481)

children[1]undefined,包括如果我滚动到右侧页面然后刷新(pdf.js 会自动滚动到上次显示的相同位置)。

我假设pdfDocument并且children可能会异步填充,但我不知道如何等待,并且我假设有更好的方法来编辑文本层<spans>

标签: javascriptpromisepdf.js

解决方案


推荐阅读