html - Django:在 iframe 中显示 PDF 文档或嵌入不起作用
问题描述
我想在我们网站的页面上显示 PDF。URL 正确并指向 PDF。我看到一个显示,但我看到的是乱码而不是 PDF。
在模板中使用:
<embed src="{{packet.certificate_pdf.url}}" ...>
<iframe src="{{packet.certificate_pdf.url}}" ...>
然后我在应该显示 PDF 的页面上看到结果:
%PDF-1.3
%âãÏÓ
1 0 obj
<<
/Type /Pages
/Count 6
/Kids [ 3 0 R 4 0 R 5 0 R 6 0 R 7 0 R 8 0 R ]
>>
endobj
2 0 obj
<<
/Producer (PyPDF4)
>>
endobj
3 0 obj
<<
/MediaBox [ 0 0 595 842 ]
/Type /Page
/Parent 1 0 R
/Contents [ 10 0 R ]
/Resources <<
/ProcSet [ /PDF /Text /ImageC ]
/XObject <<
/HiQPdf_mlpnjcimdfejkpcopajmiphnnjaiocbm 11 0 R
>>
>>
>>
endobj
4 0 obj
<<
/MediaBox [ 0 0
.... etc
在生产环境中使用:Django 3.2 Python 3.8 已经在使用:X_FRAME_OPTIONS = 'SAMEORIGIN'
我还尝试转换为 base64 然后显示它:
<iframe src="data:application/pdf;base64,{{pdf_in_base64}} ...
这曾经有效,但最近 Chrome 有时会显示 PDF,有时不显示,我无法解决。base64 中的某些东西似乎会间歇性地破坏 PDF 显示。所以现在我尝试直接使用 URL 而不是 base64。
任何人的想法?
解决方案
推荐阅读
- angular - angular.json 排除开发构建的资产
- c++ - 以升序对链接列表进行排序并打印已排序的列表
- javascript - res.send 与 forEach 循环
- node.js - 使用级联删除 typeorm 中的 many2many 实体
- ansible - 如何在 ansible playbook 中的用户给定主机上运行用户给定的命令?
- sql - 如何为我的数据库中的所有表创建视图
- python - Plotly:更改森伯斯特图中元素的顺序
- java - 在构建 Jhipster 应用程序时,我们如何选择业务逻辑?
- macos - 谷歌字体的一些字母在 Mac 上出现损坏
- reactjs - 在 Expo 中使用 React 钩子在 React Native 功能组件中实现 Native 基础