我正在尝试使用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()
未定义。
答案 0 :(得分:2)
我花了一些时间,但它终于奏效了。 有一些非常好的例子here。这是来自官方的回购(是的,我的不好,我找不到它们)。
对于任何感兴趣的人,这就是我所做的(不知道你是否真的需要做第2步和第3步,我只是粘贴适合我的例子):
1.克隆git repo
git clone git://github.com/mozilla/pdf.js.git
进入该文件夹并运行npm install
,然后运行node make server
(如果您尚未安装node.js,则必须先执行此操作)
运行node make generic components
(也在pdf.js文件夹中)
现在您可以复制项目中的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
我过去尝试过这个例子,它对我有用。