如何在PDF.js中启用文本选择

Dep*_*epa 5 javascript node.js pdf.js pdfjs

我正在尝试使用pdf.js来显示pdfs.我已经可以显示pdf了,但是没有启用文本选择.有人可以举一个关于如何在pdf.js中启用文本选择的小例子吗?

我已经尝试了几件事,但没有任何成功.

我的代码目前看起来像这样:

PDFJS.getDocument('someRandom.pdf').then(function(pdf){
  pdf.getPage(1).then(function(page) {
    // you can now use *page* here
    var scale = 1.5;
    var viewport = page.getViewport(scale);

    var canvas = document.getElementById('the-canvas');
    var context = canvas.getContext('2d');
    canvas.height = viewport.height;
    canvas.width = viewport.width;

    var renderContext = {
      canvasContext: context,
      viewport: viewport
    };
   page.render(renderContext);

  });
});
Run Code Online (Sandbox Code Playgroud)

我还包括这个:

<script src="../pdfjs/pdf.js"></script>
<script>PDFJS.workerSrc ="../pdfjs/pdf.worker.js"</script>
Run Code Online (Sandbox Code Playgroud)

此示例呈现pdf,但未启用文本选择.我想我真的缺少一些关于pdf.js的基本知识,但很难得到一些好的例子,因为文档不是那么好(至少对我而言).

我也在这里尝试了这个例子, 但是控制台抛出错误并继续说 new PDFJS.DefaultAnnotationsLayerFactory()是未定义的.

Dep*_*epa 3

我花了一些时间,但终于奏效了。这里有一些非常好的例子。它来自官方仓库(是的,我的错,我没有找到它们)。

对于任何感兴趣的人,这就是我所做的(不知道您是否真的需要执行步骤 2 和 3,我只是粘贴对我有用的示例):

1.克隆git仓库

git clone git://github.com/mozilla/pdf.js.git
Run Code Online (Sandbox Code Playgroud)
  1. 进入文件夹并运行npm installnode make server如果您还没有安装node.js,则必须先安装)

  2. 运行node make generic components(也在 pdf.js 文件夹内)

现在,您只需复制build项目中的目录即可(如果您想使用它们而不是创建viewer.js,您也可以将 exapmle/components 文件夹中的 slipviewer.js 或 pageviewer.js 复制到您的项目中)。我的错误是只将 pdf.js 和其他一些 js 复制到我的项目中。由于该构建文件夹中缺少一些其他 js 文件,它不断抛出错误。