目录
在Python中生成PDF文件可以使用多种库,其中最常用的是reportlab和fpdf。以下是使用这两个库生成PDF文件的示例代码:
一:使用reportlab库
1:写入文字信息
from reportlab.pdfgen import canvas
创建一个PDF文件
pdf = canvas.Canvas("example.pdf")
在PDF文件中添加文本
pdf.drawString(100, 750, "Hello, World!")
保存PDF文件
pdf.save()
2:写入图片信息
from reportlab.lib.pagesizes import letter
from reportlab.lib.units import inch
from reportlab.pdfgen import canvas
from reportlab.platypus import Image
创建一个PDF文件并设置页面大小
pdf = canvas.Canvas("example.pdf", pagesize=letter)
加载图像文件
image_path = "path/to/your/image.jpg" # 替换为您的图像文件的路径
image = Image(image_path)
计算图像的尺寸并将其插入到PDF中
image.drawOn(pdf, 0, 0, scale=1, angle=0)
保存PDF文件
pdf.save()
3:创建新页面
from reportlab.pdfgen import canvas
创建一个PDF文件
pdf = canvas.Canvas("example.pdf")
添加一页
pdf.showPage()
保存PDF文件
pdf.save()
4:设置标题
from reportlab.lib.pagesizes import letter
from reportlab.lib.units import inch
from reportlab.pdfgen import canvas
from reportlab.platypus import Paragraph, Spacer, PageBreak, getSampleStyleSheet
创建一个PDF文件并设置页面大小
pdf = canvas.Canvas("example.pdf", pagesize=letter)
创建一个段落对象并设置标题内容
title = "我的标题" # 替换为你想要的标题内容
paragraph = Paragraph(title, style=styles["Heading1"]) # 使用Heading1样式,你可以根据需要选择其他样式
将段落对象添加到故事对象中
story = [paragraph]
在PDF中添加故事对象,并添加一个页面分隔符
pdf.addFromList(story, pagebreakbefore=True) # 在添加故事对象之前先添加一个页面分隔符
保存PDF文件
pdf.save()
二:使用使pdf库
1:写入文字信息
from fpdf import FPDF
创建一个PDF对象
pdf = FPDF()
添加一页
pdf.add_page()
在PDF中添加文本
pdf.set_font("Arial", size=12)
pdf.cell(200, 10, txt="Hello, World!", ln=True)
保存PDF文件
pdf.output("example.pdf")
2:写入图片信息
from fpdf import FPDF
创建一个PDF对象
pdf = FPDF()
添加一页
pdf.add_page()
加载图像文件
image_path = "path/to/your/image.jpg" # 替换为您的图像文件的路径
pdf.image(image_path, x=0, y=0, w=500, h=600) # 设置图像的位置和大小
保存PDF文件
pdf.output("example.pdf")
3:创建新页面
from fpdf import FPDF
创建一个PDF对象
pdf = FPDF()
添加一页
pdf.add_page()
保存PDF文件
pdf.output("example.pdf")
4:设置标题
from fpdf import FPDF
创建一个PDF对象
pdf = FPDF()
添加一页
pdf.add_page()
设置标题
pdf.set_font("Arial", size=14) # 设置字体和字号
pdf.cell(0, 10, txt="标题", ln=True, align='C') # 添加标题,居中对齐
保存PDF文件
pdf.output("example.pdf")