📅  最后修改于: 2023-12-03 14:49:50.841000             🧑  作者: Mango
PDF(Portable Document Format)文档是一种常见的文档类型,用于在几乎任何设备和操作系统上以一致的格式和样式显示文档。Python提供了多种库来编辑和生成PDF文档,这些库可以使您以编程方式生成PDF文档,添加文本、图像和其他元素,以及从其他文件格式转换为PDF。
PyPDF2库是Python编辑PDF文档的一种灵活而强大的方式,可以读取、拆分、合并、旋转页面和加密PDF文件,还可以添加文本、图片和水印。
import PyPDF2
# 打开PDF文件
pdf_file = open('sample.pdf', 'rb')
# 读取PDF内容
pdf_reader = PyPDF2.PdfFileReader(pdf_file)
# 获取PDF文件的总页数
page_count = pdf_reader.getNumPages()
print(f'There are {page_count} pages in this PDF document.')
# 获取特定页面的内容
page = pdf_reader.getPage(0)
print(page.extractText())
# 添加水印
watermark_file = open('watermark.pdf', 'rb')
watermark_reader = PyPDF2.PdfFileReader(watermark_file)
watermark_page = watermark_reader.getPage(0)
pdf_writer = PyPDF2.PdfFileWriter()
for page_num in range(page_count):
page = pdf_reader.getPage(page_num)
page.mergePage(watermark_page)
pdf_writer.addPage(page)
# 输出到新的PDF文件
output_file = open('sample_watermarked.pdf', 'wb')
pdf_writer.write(output_file)
# 关闭文件句柄
pdf_file.close()
watermark_file.close()
output_file.close()
ReportLab是一种Python编辑PDF文档的流行选择,它可以生成PDF文档、图形、条形码和图表,以及添加文本、图像和表格。它还可以与其他库(如Django)完美集成,提供了一些高级的排版功能。
# 必须先安装reportlab
!pip install reportlab
from reportlab.pdfgen import canvas
# 新建PDF流
pdf_stream = canvas.Canvas('sample_reportlab.pdf')
# 添加文本
pdf_stream.drawString(10, 800, 'Hello ReportLab!')
# 添加图形
pdf_stream.setStrokeColorRGB(0.2, 0.5, 0.3)
pdf_stream.rect(50, 50, 100, 100)
# 输出PDF文件
pdf_stream.save()
WeasyPrint是一种使用HTML和CSS生成PDF文档的Python库,特别适合需要使用从Web生成的数据创建PDF的项目。
# 必须先安装weasyprint
!pip install weasyprint
import weasyprint
# 从URL加载网页
url = 'https://www.baidu.com'
pdf_file = weasyprint.HTML(url).write_pdf()
# 从HTML文件加载网页
html_string = '<h1>Hello WeasyPrint!</h1>'
pdf_file = weasyprint.HTML(string=html_string).write_pdf()
# 从CSS文件加载样式
pdf_file = weasyprint.HTML(url).write_pdf(stylesheets=['style.css'])
# 输出PDF文件
with open('sample_weasyprint.pdf', 'wb') as f:
f.write(pdf_file)
Python是一种功能强大的语言,可以使您更轻松地编辑和生成PDF文档。本文介绍了三种库PyPDF2、ReportLab和WeasyPrint,它们提供了不同的功能和方法,可以根据您的需要选择最适合您的库。