【问题标题】:base64 embeded PDF files won't render in Chromebase64 嵌入式 PDF 文件不会在 Chrome 中呈现
【发布时间】:2020-07-28 03:07:15
【问题描述】:

某些 PDF 文件无法在 Chrome 浏览器中呈现,但在 Firefox 中可以正常呈现。如果直接嵌入,所有文件在所有浏览器中都可以正常呈现。

<object id="content-view" :data="content_view.base64" type="application/pdf"></object>

令人困惑的部分是问题仅针对某些文件而不是全部。文件存储在不公开的文件夹中,这就是为什么它们以 base64 格式提供给用户查看。

我使用在线 base64 解码器测试了有问题的文件,得到了相同的结果。在 FF 中渲染,不在 Chrome 中渲染。

我无法共享任何 PDF 文件。它们都来自同一来源,从同一设备扫描,PDF 版本 1.4,4 页。

我试过了:

  • 使用 iframe、嵌入和对象(结果相同)
  • 在 Chrome 网站设置中取消阻止不安全的内容
  • 在 Adob​​e Acrobat 中打开和重新保存
  • 使用在线 PDF 分析器查看是否存在任何问题(未找到)

【问题讨论】:

  • 这很可能是 chrome 的一个 bug,也许你应该提交一个 bug 报告
  • 使用 pdf.js,我在我的网站上使用它在我网页的画布上呈现 pdf
  • 我也有同样的问题。这很烦人,在 FF 中可以正常打开。

标签: html pdf iframe base64 embed


【解决方案1】:

您可以使用Mozilla编写的JS,而不是使用浏览器的原生PDF渲染器。

ViewerJS 提供了一个很好的接口,如果你想把它嵌入到一个页面中,那么你可以把它放在一个 iframe 中并用iFrame-resizer 控制它。

【讨论】:

    【解决方案2】:

    不要在 HTML 对象元素中打开 PDF 文件,而是使用 Blob URL 在新窗口中打开它。

    请参考

    Creating a BLOB from a Base64 string in JavaScript

    将 Base64 转换为 Blob

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-07-03
      • 2011-10-16
      • 2013-05-27
      • 1970-01-01
      • 2015-11-07
      • 2016-11-28
      • 2015-07-14
      相关资源
      最近更新 更多