我正在尝试使用pdf.js
将pdf页面转换为画布。我使用了K3N在Render .pdf to single Canvas using pdf.js and ImageData中的答案来实现这一目标。这里的代码可用Fiddle1。
问题是这似乎仅适用于某些pdf。
例如,代码适用于http://arxiv.org/pdf/1207.0102v2.pdf中的Fiddle2。
但是,当我在http://infolab.stanford.edu/pub/papers/google.pdf中为Fiddle3尝试相同的代码时,它无效。
为什么会发生这种情况并且可以修复?
答案 0 :(得分:4)
它应该适用于所有pdf文件,除非它们已损坏。你在这里遇到的错误是:
switch
换句话说,您无法以这种方式加载它,因为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.
并不允许您这样做。如果您将它放在服务器上并使用适当的响应头加载它,它很可能会起作用。
有关此错误的详细信息,请参阅Why am I seeing an "origin is not allowed by Access-Control-Allow-Origin" error here?
如果您不托管这些文件,可以通过代理(可以是第三方应用程序或服务器)管理它们。例如,Ivan Žužak,开发了urlreq
- 一种在这种情况下完全符合我们需要的工具。
使用Ivan的代理网址,而不是使用pdf文件的直接链接:
http://infolab.stanford.edu/pub/papers/google.pdf