javascript - pdf.js 是否仅适用于某些 pdf?

标签 javascript jquery pdf pdf.js

我正在尝试使用 pdf.js 将 pdf 页面转换为 Canvas 。我在 Render .pdf to single Canvas using pdf.js and ImageData 中使用了答案通过K3N来实现这一点。代码在这里可用 Fiddle1 .

问题是这似乎只适用于某些 pdf。

例如,代码适用于 http://arxiv.org/pdf/1207.0102v2.pdfFiddle2 .

但是,当我为 http://infolab.stanford.edu/pub/papers/google.pdf 尝试相同的代码时在 Fiddle3它没有工作。

为什么会发生这种情况,是否可以解决?

最佳答案

它应该适用于所有 pdf 文件,除非它们已损坏。你这里的错误是:

XMLHttpRequest cannot load http://infolab.stanford.edu/pub/papers/google.pdf. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://fiddle.jshell.net' is therefore not allowed access.

换句话说,您不能以这种方式加载它,因为 http://infolab.stanford.edu/pub/papers/google.pdf 不允许您这样做。当您将它放在您的服务器上并使用适当的响应 header 加载它时,它很可能会工作。

有关此错误的更多信息,请参阅 Why am I seeing an "origin is not allowed by Access-Control-Allow-Origin" error here?


如果您不托管这些文件,您可以通过代理(可以是第三方应用程序或您的服务器)传输它们。例如,Ivan Žužak , 发达 urlreq – 一种在这种情况下完全可以满足我们需要的工具。

不使用直接链接到 pdf 文件,而是使用 Ivan 的代理 url:

http://urlreq.appspot.com/req?method=GET&url=http%3A%2F%2Finfolab.stanford.edu%2Fpub%2Fpapers%2Fgoogle.pdf

JSFIDDLE

关于javascript - pdf.js 是否仅适用于某些 pdf?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32909940/

相关文章:

javascript - Sails.js 单向协会

javascript - 无法将事件绑定(bind)到多个 <select>,只能绑定(bind)第一个子元素

javascript - 区分具有相同类、id和父类的表行

java - 如何使用 iText 仅添加用户密码而无需所有者密码到 PDF

javascript - 如何将无序列表分成两部分?

javascript - AngularJS 和 SEO 说明

javascript - 如何检测用户使用的是手机、平板电脑还是台式机并重定向他们?

jquery - HTML CSS 位置属性问题

php - 使用 Imagemagick - PHP 计算 PDF 文件中的页数

pdf - 想要自定义或更改受密码保护的 PDF 中密码提示中显示的消息