javascript - pdf.js 不适用于 Safari

标签 javascript safari pdf.js pdf-rendering

我们正在测试 pdf.js虽然它看起来是一个很棒的项目,但我们无法让它在 Safari 中运行。

(在 PDF.JS 版本 = 0.8.229(最新)/Safari 5.1.9 - 6.0.4/Mac OSX 10.6.8 - 10.8.3 上测试)

示例:

这是从我们的服务器提供的演示代码示例,其中包含适用于 Chrome/FFox 但不适用于 Safari 的示例 PDF: http://test.appgrinders.com/pdf_js/test.html

控制台输出:

Warning: Setting up fake worker. 
Error: Invalid XRef stream (while reading XRef): 
Error: Invalid XRef stream pdf.js:850undefined 
Warning: Indexing all PDF objects 
Error: Invalid XRef stream (while reading XRef): 
Error: Invalid XRef stream pdf.js:850undefined

更多测试:

以下是我们测试的示例 PDF 列表(它们全部由我们的服务器提供,并且都在 Chrome/FFox/Android 中运行)。唯一与 Safari 一起工作的是 pdf.js 项目本身提供的 PDF 文件:

在 SAFARI 中失败:
http://samplepdf.com/sample.pdf
http://forums.adobe.com/servlet/JiveServlet/previewBody/2041-102-1-2139/Sample.pdf
https://github.com/prawnpdf/prawn/raw/master/data/pdfs/form.pdf

在 SAFARI 中工作:
http://cdn.mozilla.net/pdfjs/helloworld.pdf
(注意:这是来自 pdf.js 项目的示例 PDF,也是我们工作过的唯一一个)


我们已经提交了 bug report ,但开发人员似乎没有答案,所以我希望这里有人可能...

我们如何让 pdf.js 与 Safari 一起工作?

最佳答案

我已经弄清楚如何在 Mac Safari 上运行(不一定理解为什么)...

  1. compatibility.js 必须包含在内。

  2. PDFJS.workerSrc 必须赋值。

    我一直在测试的演示代码(来自 JS Bin demos here ) 不会这样做,尽管其他一些在线示例会这样做(包括 hello world example以及提供的示例 @AndrewBenjamin——谢谢)。其他浏览器似乎不需要这个, 但没有它,Safari 将无法工作。

    <script type="text/javascript" src="compatibility.js"></script>
    <script type="text/javascript" src="pdf.js"></script>
    
    <!-- NEED THIS for Safari Mac to render work -->
    <script type="text/javascript">
        // Specify the main script used to create a new PDF.JS web worker.  
        // In production, change this to point to the combined `pdf.js` file.  
        PDFJS.workerSrc = 'pdf.worker.js';  
    </script>
    

同样,无法解释原因,但这就是我们让它为我们工作的方式。

关于javascript - pdf.js 不适用于 Safari,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17022052/

相关文章:

javascript - 如何使用 webdriverjs 控制新窗口?

asp.net - 寻找简单的基于网络的表单设计器的示例

ios - 如何检测(从网站)ipad 是使用 Safari 浏览器还是非 Safari(包装器)浏览器?

javascript - 如何实现Mozilla的客户端JS/HTML5 pdf查看器?

javascript - PDF.js 文档随机颠倒显示

javascript - 使用过滤器 css 属性调整传单 map 的亮度

javascript - 添加使用 jquery 使用鼠标和浏览器进行滚动的类

html - Safari CSS 过渡闪烁

audio - iOS 7 : Audio only plays in Safari, 不是 Web 应用程序

cordova - Windows Cordova 应用程序 : An app can’t load remote web content in the local context