生成Word和PDF文档是Python程序员常见的需求之一。本文将为您提供几种生成Word和PDF文档的方法,希望对您有所帮助。
一、使用python-docx库生成Word文档
使用Python中的python-docx
库,可以轻松生成Word文档。python-docx
库提供了比较完善的API,可以设置文本样式、添加图片、插入表格等功能。
下面是一个样例代码,可以生成一个包含标题、正文、图像和表格的Word文档:
from docx import Document
from docx.shared import Inches
# 创建一个文档对象
document = Document()
# 添加标题
document.add_heading('Document Title', 0)
# 添加正文
document.add_paragraph('Lorem ipsum dolor sit amet, consectetuer adipiscing elit. ')
# 添加图像
document.add_picture('image.png', width=Inches(1.25))
# 添加表格
table = document.add_table(rows=1, cols=3)
hdr_cells = table.rows[0].cells
hdr_cells[0].text = 'Name'
hdr_cells[1].text = 'ID'
hdr_cells[2].text = 'Desc'
row_cells = table.add_row().cells
row_cells[0].text = 'John Smith'
row_cells[1].text = '123456'
row_cells[2].text = 'Cool guy'
# 保存文档
document.save('demo.docx')
二、使用ReportLab库生成PDF文档
使用Python中的ReportLab
库可以生成PDF文档。ReportLab
提供了对于页面和元素的底层控制,可以让您更加灵活地创建PDF文档。
下面是一个样例代码,可以生成一个包含标题、正文、图像和表格的PDF文档:
from reportlab.pdfgen import canvas
from reportlab.lib.units import inch, cm
from reportlab.lib.pagesizes import letter
# 创建一个canvas对象
c = canvas.Canvas("demo.pdf", pagesize=letter)
# 添加标题
c.setFont("Helvetica-Bold", 14)
c.drawString(3*cm, 25*cm, "Document Title")
# 添加正文
c.setFont("Helvetica", 12)
c.drawString(3*cm, 24*cm, "Lorem ipsum dolor sit amet, consectetuer adipiscing elit.")
# 添加图像
c.drawImage("image.png", 3*cm, 20*cm, width=5*cm, height=5*cm)
# 添加表格
data = [('Name', 'ID', 'Desc'),
('John Smith', '123456', 'Cool guy')]
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), 8),
]))
table.wrapOn(c, 9*inch, 6*inch)
table.drawOn(c, 3*cm, 15*cm)
# 保存文档
c.showPage()
c.save()
以上就是生成Word和PDF文档的方法的完整攻略。这些示例仅仅是抛砖引玉,您可以根据自己的需要和喜好进一步探索。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:利用python程序生成word和PDF文档的方法 - Python技术站