>大多数现代浏览器本地浏览器都支持PDF查看,但是此功能超出了开发人员的直接控制。 想象一下,需要自定义Web应用程序的PDF显示屏 - 禁用打印按钮,或根据用户订阅限制页面访问。 虽然标签使用浏览器的本机渲染器,但它缺乏此类自定义的程序控制控制。> 输入Mozilla Labs的强大库PDF.JS。 它使PDF在浏览器中呈现,从而使开发人员完全控制了渲染过程。
PDF.JS的关键功能<embed></embed>
旁路浏览器限制并自定义PDF渲染。
基本集成
> svg渲染>文本层渲染
缩放
> pdf.js是一个JavaScript库。 您将需要
pdf.js
pdf.worker.js
https://mozilla.github.io/pdf.js/build/pdf.js
PDF解析和渲染在计算上是密集的。 PDF.JS利用HTML5 Web工作人员将这些任务卸载到单独的线程中,以防止浏览器锁定。 这是默认行为,但可以在需要时被禁用。https://mozilla.github.io/pdf.js/build/pdf.worker.js
3。 pdf.js的承诺:pdf.js api利用承诺用于干净的异步操作处理。
4。 一个简单的示例:
>让我们渲染一个简单的“ Hello World!” pdf(http://mozilla.github.io/pdf.js/examples/learning/helloworld.pdf
可用)。 确保通过本地Web服务器(例如,http://localhost/pdfjs_learning/index.html
)提供文件。
在您的pdf.js
中包括index.html
:
<🎜>
>如果不在同一目录中,则可以选择指定pdf.worker.js
路径
PDFJS.workerSrc = "/path/to/pdf.worker.js";
并将
var url = "http://mozilla.github.io/pdf.js/examples/learning/helloworld.pdf"; PDFJS.getDocument(url) .then(function(pdf) { return pdf.getPage(1); }) .then(function(page) { 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); });
>:<canvas>
>
index.html
<canvas id="the-canvas"></canvas>
>检索特定页面; PDFJS.getDocument()
执行渲染。pdf.getPage()
>
使用SVG page.render()
>
> pdf.js还支持SVG渲染。修改部分使用svg:page.render()
渲染文本层
要启用文本选择,下载 text_layer_builder.js <code>text_layer_builder.js
和 text_layer_builder.css <code>text_layer_builder.css
,并将它们包含在您的html中。 使用更复杂的PDF(例如 http://mozilla.github.io/pdf.js/web/compresse.tracemonkeykey-pldi-09.pdf<code>http://mozilla.github.io/pdf.js/web/compressed.tracemonkey-pldi-09.pdf
)。 以下代码呈现多个页面并添加文本层:
<🎜>
缩放
调整比例<code>scale
变量以控制Zoom Level。
结论 PDF.JS
> PDF.JS提供了一种强大而灵活的方法,将自定义PDF渲染集成到Web应用程序中。 它干净的API和异步处理使其成为开发人员的宝贵工具。 实验代码并探索其高级功能!
经常询问问题(FAQS)(简单地总结)>
自定义渲染的目的以上是使用Mozilla的JavaScript渲染自定义PDF的详细内容。更多信息请关注PHP中文网其他相关文章!