我正在尝试使用 pdf.js
将 pdf 页面转换为 Canvas 。我在 Render .pdf to single Canvas using pdf.js and ImageData 中使用了答案通过K3N来实现这一点。代码在这里可用 Fiddle1 .
问题是这似乎只适用于某些 pdf。
例如,代码适用于 http://arxiv.org/pdf/1207.0102v2.pdf在 Fiddle2 .
但是,当我为 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
关于javascript - pdf.js 是否仅适用于某些 pdf?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32909940/