【问题标题】:Django/Python: Show pdf in a templateDjango/Python:在模板中显示 pdf
【发布时间】:2017-02-16 13:22:49
【问题描述】:

我在 python 2.7 中使用 django 1.8。

我想在模板中显示 pdf。

知道了,感谢MKM's answer 我将其呈现为整页。

你知道怎么渲染吗?

这是我的代码:

def userManual(request):
    with open('C:/Users/admin/Desktop/userManual.pdf', 'rb') as pdf:
        response = HttpResponse(pdf.read(), content_type='application/pdf')
        response['Content-Disposition'] = 'inline;filename=some_file.pdf'
        return response
    pdf.closed

【问题讨论】:

  • 不清楚你在问什么,你在那里展示了一个解决方案却问同样的事情?
  • 如果您将文档放在静态文件夹中,您应该可以在模板中使用{% load staticfiles %} 调用它 -- {% static 'path/to/file.pdf' %}
  • @LorenzoPeña 实际上,此解决方案并未显示嵌入模板中的 pdf。它在新页面中打开pdf。我想把它嵌入到模板中。

标签: python django pdf


【解决方案1】:

在页面中嵌入 PDF 的能力超出了 Django 本身的范围,您已经通过成功生成 PDF 完成了 Django 所能做的一切,因此您应该看看如何在网页中嵌入 PDF:

因此,请检查:

Recommended way to embed PDF in HTML?

How can I embed a PDF viewer in a web page?

【讨论】:

    【解决方案2】:

    views.py

    from django.shortcuts import render
    from django.http import FileResponse, Http404
    def pdf(request):
        try:
            return FileResponse(open('<file name with path>', 'rb'), content_type='application/pdf')
        except FileNotFoundError:
            raise Http404('not found')
    def main(request):
        return render(request,'template.html')
    

    url.py

    from django.urls import path
    from django.conf.urls import url
    from . import views
    urlpatterns =[path('', views.main, name='main'),url(r'^pdf', views.pdf, name='pdf'),]
    

    模板.html

    <embed src={% url 'pdf' %}'#toolbar=0&navpanes=0&scrollbar=0'style="width:718px; height:700px;" frameborder="0">
    

    【讨论】:

      猜你喜欢
      • 2020-05-05
      • 1970-01-01
      • 2019-12-22
      • 2016-08-01
      • 2012-03-01
      • 2014-04-23
      • 2019-09-20
      • 2019-08-07
      相关资源
      最近更新 更多