📅  最后修改于: 2023-12-03 15:14:44.957000             🧑  作者: Mango
django-xhtml2pdf
django-xhtml2pdf
是一个用于将Django视图中的HTML页面转换为PDF文件的Django应用程序。 它使用xhtml2pdf
库来实现转换。
以下是django-xhtml2pdf
的主要特性:
要安装django-xhtml2pdf
,您可以使用pip:
pip install django-xhtml2pdf
要开始使用django-xhtml2pdf
,您需要:
在您的Django项目的settings.py
文件中设置django-xhtml2pdf
作为应用程序。 在INSTALLED_APPS
中添加以下行:
INSTALLED_APPS = [
# ...
'django_xhtml2pdf',
]
在您的Django视图中使用django_xhtml2pdf.views.PDFView
视图,并将HTML模板设置为模板变量。
from django.views.generic import TemplateView
from django_xhtml2pdf.views import PDFView
class MyPDFView(PDFView):
template_name = "my_template.html"
在您的urls.py
中将此视图分配给URL。
from django.urls import path
from .views import MyPDFView
urlpatterns = [
path('pdf/', MyPDFView.as_view(), name='my_pdf_view'),
]
创建视图使用的HTML模板。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>My PDF</title>
<style>
/* Set up the PDF page */
@page {
margin: 2cm;
size: A4;
}
/* Add some styles to the content */
h1, h2, p {
text-align: center;
}
h1 {
font-size: 30px;
}
h2 {
font-size: 20px;
}
p {
font-size: 16px;
line-height: 1.5;
margin-top: 20px;
margin-bottom: 20px;
}
</style>
</head>
<body>
<h1>My PDF</h1>
<h2>Welcome to my PDF</h2>
<p>This is the content of my PDF file.</p>
</body>
</html>
访问您的视图并下载生成的PDF文件。
http://localhost:8000/pdf/
您可以在视图中设置pdf_options
属性来自定义PDF输出选项。 可用的选项可以在xhtml2pdf.pisa.document
模块中找到。
class MyPDFView(PDFView):
template_name = "my_template.html"
pdf_options = {
'zoom': 1.0,
'disable-cache': True,
}
支持的选项包括:
size
: 设置纸张大小,例如A4
,Letter
等。zoom
: 设置缩放比例。margin_*
: 设置页面边缘大小。page_number_*
: 设置页面编号的位置和字体大小。disable-*
: 禁用缓存、CSS和JavaScript。toc
: 设置PDF文件目录的标题和最大深度。encryption
: 设置PDF文件的加密选项。django-xhtml2pdf
文档: https://django-xhtml2pdf.readthedocs.io/en/latest/xhtml2pdf
文档: https://xhtml2pdf.readthedocs.io/en/latest/usage.htmldjango-xhtml2pdf
是一个强大的Django应用程序,可以将HTML页面转换为美观优雅的PDF文件。 它易于使用,支持自定义PDF输出选项,并与Django的模板语言和框架无缝集成。 在需要将Django视图转换为PDF文件时,我们强烈建议您使用django-xhtml2pdf
。