首页 > 解决方案 > 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。

任何人的想法?

标签: htmldjangopdfiframe

解决方案


推荐阅读