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

时间:2015-07-18 16:36:24

标签: 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);

  });
});

我也包括了这个:

<script src="../pdfjs/pdf.js"></script>
<script>PDFJS.workerSrc ="../pdfjs/pdf.worker.js"</script>

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

我也试过这个例子here 但控制台正在抛出错误并继续说     new PDFJS.DefaultAnnotationsLayerFactory()未定义。

2 个答案:

答案 0 :(得分:2)

我花了一些时间,但它终于奏效了。 有一些非常好的例子here。这是来自官方的回购(是的,我的不好,我找不到它们)。

对于任何感兴趣的人,这就是我所做的(不知道你是否真的需要做第2步和第3步,我只是粘贴适合我的例子):

1.克隆git repo

git clone git://github.com/mozilla/pdf.js.git
  1. 进入该文件夹并运行npm install,然后运行node make server(如果您尚未安装node.js,则必须先执行此操作)

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

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

答案 1 :(得分:0)

详细解释如何在minimal.js标题组件中执行此操作。

https://github.com/vivin/pdfjs-text-selection-demo/blob/master/js/minimal.js

我过去尝试过这个例子,它对我有用。