python生成有表格的pdf文件
时间: 2023-12-11 20:02:26 浏览: 132
要在 Python 中生成带有表格的 PDF 文件,可以使用 PyPDF2 和 ReportLab 库。下面是一个简单的示例代码:
```python
import io
from reportlab.lib.pagesizes import letter
from reportlab.platypus import SimpleDocTemplate, Table, TableStyle
from reportlab.lib import colors
from PyPDF2 import PdfFileWriter, PdfFileReader
# 创建 PDF 文档
pdf_buffer = io.BytesIO()
doc = SimpleDocTemplate(pdf_buffer, pagesize=letter)
# 创建表格数据
data = [['Name', 'Age', 'Country'],
['John Smith', '25', 'USA'],
['Jane Doe', '30', 'Canada'],
['Bob Johnson', '45', 'Australia']]
# 创建表格对象并设置样式
table = Table(data)
table.setStyle(TableStyle([
('BACKGROUND', (0, 0), (-1, 0), colors.grey),
('TEXTCOLOR', (0, 0), (-1, 0), colors.whitesmoke),
('ALIGN', (0, 0), (-1, 0), 'CENTER'),
('FONTNAME', (0, 0), (-1, 0), 'Helvetica-Bold'),
('FONTSIZE', (0, 0), (-1, 0), 14),
('BOTTOMPADDING', (0, 0), (-1, 0), 12),
('BACKGROUND', (0, 1), (-1, -1), colors.beige),
('TEXTCOLOR', (0, 1), (-1, -1), colors.black),
('ALIGN', (0, 1), (-1, -1), 'CENTER'),
('FONTNAME', (0, 1), (-1, -1), 'Helvetica'),
('FONTSIZE', (0, 1), (-1, -1), 12),
('BOTTOMPADDING', (0, 1), (-1, -1), 6),
('GRID', (0, 0), (-1, -1), 1, colors.black),
('VALIGN', (0, 0), (-1, -1), 'MIDDLE'),
]))
# 添加表格到 PDF 文档
elements = []
elements.append(table)
doc.build(elements)
# 保存 PDF 文档
pdf_buffer.seek(0)
output_pdf = PdfFileWriter()
input_pdf = PdfFileReader(pdf_buffer)
output_pdf.addPage(input_pdf.getPage(0))
with open('table.pdf', 'wb') as f:
output_pdf.write(f)
```
该代码使用 ReportLab 库创建一个带有表格的 PDF 文档。然后使用 PyPDF2 库将 PDF 文档保存到文件中。在本示例中,表格的数据是硬编码在代码中的,但您可以从其他地方获取数据并将其放入表格中。
阅读全文