【问题标题】:Failed to load PDF document in Chrome无法在 Chrome 中加载 PDF 文档
【发布时间】:2018-01-10 01:03:25
【问题描述】:

我的服务器上存储了一个 PDF 文件。我无法使用 Google Chrome(或 Ubuntu Chromium)通过 URL "sitename/pdfName.pdf" 访问该文件;而我可以毫无问题地在 Internet Explorer 或 FireFox 中访问相同的 PDF。

Chrome 出现此错误:“无法加载 PDF 文档”

在此链接Error Image中找到附加错误。

【问题讨论】:

    标签: google-chrome pdf iis http-headers


    【解决方案1】:

    我遇到了同样的问题。在 IIS 中,我必须将此 web.config 文件添加到我的 PDF 文件夹中才能正常工作

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
        <system.webServer>
            <httpProtocol>
                <customHeaders>
                    <remove name="Content-Type" />
                </customHeaders>
            </httpProtocol>
        </system.webServer>
    </configuration>
    

    您可能还会发现 Chrome(在 Ubuntu 19.04 上)的名称标题有问题:Content-Type 值:charset=utf-8

    【讨论】:

      【解决方案2】:

      当我们遇到这个问题时,有效和无效的 PDF 文件之间的唯一区别在于 PDF 文档本身的第一行。 这是导致错误的旧 PDF 与在启用二进制的文本编辑器(在本例中为 vim -b)中看到的固定版本之间的区别:

      原始 PDF 文件:

      %PDF-1.6^M%<e2><e3><cf><d3>^M
      

      固定的 PDF 文件:

      %PDF-1.6^M
      %<e2><e3><cf><d3>^M
      

      这样问题就从源头解决了,无需再给受害者安装额外软件或重新安装chrome的负担。

      我不知道这是 PDF 生成器的问题,还是 chrome 插件的问题。 根据 PDF 规范,PDF 文档的第一行必须包含 PDF 版本,但我并不完全清楚 ^M 是否是有效的行分隔符。

      【讨论】:

      • “我不完全清楚 ^M 是否是有效的行分隔符。” - 根据规范:回车 (0Dh) 和 LINE FEED (0Ah) 字符,也称为换行符,应被视为行尾 (EOL) 标记。 CARRIAGE RETURN 后面紧跟 LINE FEED 的组合应被视为一个 EOL 标记。(ISO 32000-1 第 7.2.2 节)您的 ^M 代表一个 CARRIAGE RETURN (0Dh)。所以是的,^M 是一个有效的行分隔符。
      【解决方案3】:

      我们在 web.config 中的安全策略中有 object:none,这导致 chrome 拒绝打开它,并且在 chrome 中按 f12 然后单击“控制台”会显示错误消息。

      将 web.config 安全策略更改为 object:self 解决了问题

      在我们的例子中,我们可以在 Firefox 和 IE 中打开 PDF,但不能在 Chrome 中打开,因此 Chrome 对安全策略的实施更加严格。

      以下是我没有测试过的建议编辑:

      你也可能会发现 Chrome 的名字标题有问题:Content-Type 值:charset=utf-8。删除它可能会修复它。

      此外,当您正在测试此内容时,请确保缓存不会干扰响应,方法是继续将请求 URL 更改为新的 sitename/pdfName.pdf?val=1,然后进行下一个测试,?val=2 等等...

      【讨论】:

        【解决方案4】:

        这可能是由于 Chrome 的内置 PDF 查看器无法打开 Firmex 受保护的 PDF 文档。

        试试:

        1. 打开谷歌浏览器(显然)
        2. 点击右上角的 More Untitled.png,然后点击设置。
        3. 点击底部的显示高级设置。
        4. 在隐私下,点击内容设置
        5. 在 PDF 文档下,选中“在默认 PDF 查看器应用程序中打开 PDF 文件”旁边的框。
        6. 进行更改后,PDF 文件应在 Adob​​e Reader 或 Adob​​e Acrobat 中打开,而不是在 Google Chrome 中。

        虽然可能不太理想,但目前是一个不错的选择。

        【讨论】:

        • 感谢您的回复!!我也试过了。但问题是,如果我试图从另一台服务器打开相同的 pdf(在 Chrome 中),它不会给我任何错误。所以对于某些特定的服务器,只有这个错误即将到来。
        • 这真的很奇怪。它们之间有什么明显的区别吗?
        猜你喜欢
        • 2016-10-14
        • 2022-07-11
        • 2018-05-24
        • 2016-08-15
        • 1970-01-01
        • 1970-01-01
        • 2016-08-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多