Python 根据模板生成PDF
时间: 2023-11-01 13:24:17 浏览: 243
要根据模板生成PDF文件,可以使用Python的第三方库reportlab和Jinja2。reportlab可以生成PDF文件,而Jinja2可以从数据和模板生成HTML文件。以下是一个示例代码:
```
from jinja2 import Environment, FileSystemLoader
from reportlab.pdfgen import canvas
from io import BytesIO
# Load Jinja2 template
env = Environment(loader=FileSystemLoader('.'))
template = env.get_template('mypdf.html')
# Render template with data
data = {'name': 'John Doe', 'age': 30}
html = template.render(data)
# Generate PDF from HTML using reportlab
pdf_file = BytesIO()
c = canvas.Canvas(pdf_file)
c.drawString(100, 750, "Welcome to Reportlab!")
c.drawString(100, 700, "Hello {0}, your age is {1}.".format(data['name'], data['age']))
c.drawString(100, 650, "This is your PDF generated from Jinja2 template.")
c.save()
# Save PDF to a file
with open('mypdf.pdf', 'wb') as f:
f.write(pdf_file.getvalue())
```
注意,需要先安装reportlab和Jinja2库。在此示例中,模板文件为'mypdf.html',并且它应该在当前目录中。渲染模板后,将生成的HTML转换为PDF文件,并将其保存到'mypdf.pdf'文件中。
阅读全文