如何在PDF.js中启用文本select
我正在尝试使用pdf.js来显示PDF文件。 我已经可以显示PDF,但文本select未启用。 有人可以给一个小例子如何在pdf.js中启用文本select?
我已经尝试了几件事,但没有成功。
我的代码目前看起来像这样:
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,但文本select未启用。 我想我真的错过了关于pdf.js的一些基本知识,但是很难find一些很好的例子,因为文档不是很好(至less对我而言)。
我也在这里试过这个例子,但控制台抛出一个错误,并一直说new PDFJS.DefaultAnnotationsLayerFactory()
是未定义的。
我花了一些时间,但终于工作了。 这里有一些非常好的例子。 这是从官方回购(是的,我不好,我没有find他们)。
对于任何有兴趣的人,这里是我所做的(不知道你是否真的需要做第二步和第三步,我只是粘贴为我工作的例子):
1.克隆git回购
git clone git://github.com/mozilla/pdf.js.git
-
进入文件夹并运行
npm install
,然后运行node make server
(如果你还没有安装node.js,你必须先这样做) -
运行
node make generic components
(也在pdf.js文件夹内)
现在,您可以将build
目录复制到项目中(如果您想使用它们而不是创buildviewer.js,也可以将文件夹exapmle / components中的slideviewer.js或pageviewer.js复制到项目中)。 我的错只是把pdf.js和其他一些js复制到我的项目中。 它一直抛出错误,因为从该构build文件夹中丢失了一些其他的js文件。
详细解释如何在minimal.js标题中做到这一点。
https://github.com/vivin/pdfjs-text-selection-demo/blob/master/js/minimal.js
我在过去试过这个例子,它为我工作。