在Django模板中预览PDF或文档文件,可以使用第三方库,例如reportlab
和xhtml2pdf
首先,安装reportlab
和xhtml2pdf
库:
pip install reportlab
pip install xhtml2pdf
在views.py
文件中,创建一个视图函数来处理PDF文件的生成和预览:
from django.http import HttpResponse
from xhtml2pdf import pisa
def preview_pdf(request):
# 创建一个简单的HTML模板
html = '''
<html>
<head>
<title>PDF预览</title>
</head>
<body>
<h1>Hello, PDF!</h1>
</body>
</html>
'''
# 将HTML模板转换为PDF
response = HttpResponse(content_type='application/pdf')
response['Content-Disposition'] = 'inline; filename="preview.pdf"'
pisa_status = pisa.CreatePDF(html, dest=response)
if pisa_status.err:
return HttpResponse('We had some errors <pre>' + html + '</pre>')
return response
在urls.py
文件中,为视图函数配置URL:
from django.urls import path
from . import views
urlpatterns = [
path('preview-pdf/', views.preview_pdf, name='preview_pdf'),
]
在templates
文件夹中,创建一个简单的HTML模板文件,例如preview_pdf.html
:
<!DOCTYPE html>
<html>
<head>
<title>PDF预览</title>
</head>
<body>
<h1>Hello, PDF!</h1>
</body>
</html>
启动Django开发服务器,访问/preview-pdf/
URL,你应该能看到PDF文件的预览。
xhtml2pdf
库依赖于reportlab
库,因此需要先安装reportlab
库。python-docx
(用于Word文档)或openpyxl
(用于Excel文档)。领取专属 10元无门槛券
手把手带您无忧上云