赞
踩
当在Python中操作PDF时,有几种常见的方法,每种方法都有其独特的优点和用例。在本文中,我们将深入探讨这些方法,并提供丰富的示例代码,以帮助大家更好地理解如何使用这些技术。
PyPDF2是一个流行的Python库,用于处理PDF文件。它允许你合并、拆分、旋转和提取PDF文档的内容。
以下是一些基本的示例代码:
import PyPDF2 # 合并两个PDF文件 def merge_pdfs(file1, file2, output): pdf_writer = PyPDF2.PdfFileWriter() pdf_reader1 = PyPDF2.PdfFileReader(file1) pdf_reader2 = PyPDF2.PdfFileReader(file2) for page_num in range(pdf_reader1.numPages): page = pdf_reader1.getPage(page_num) pdf_writer.addPage(page) for page_num in range(pdf_reader2.numPages): page = pdf_reader2.getPage(page_num) pdf_writer.addPage(page) with open(output, 'wb') as merged_file: pdf_writer.write(merged_file) # 拆分PDF文件 def split_pdf(input_file, output_folder): pdf_reader = PyPDF2.PdfFileReader(input_file) for page_num in range(pdf_reader.numPages): pdf_writer = PyPDF2.PdfFileWriter() page = pdf_reader.getPage(page_num) pdf_writer.addPage(page) output_file = f'{output_folder}/page_{page_num + 1}.pdf' with open(output_file, 'wb') as single_page_file: pdf_writer.write(single_page_file) # 调用示例 merge_pdfs('document1.pdf', 'document2.pdf', 'merged_document.pdf') split_pdf('large_document.pdf', 'output_folder')
reportlab是一个强大的PDF生成库,它允许从头开始创建PDF文档,包括文本、图形和表格。
以下是一个简单的例子:
from reportlab.pdfgen import canvas
def create_pdf(output_file):
c = canvas.Canvas(output_file)
c.drawString(72, 800, "Hello, this is a sample PDF created with reportlab.")
c.showPage()
c.save()
# 调用示例
create_pdf('sample_reportlab.pdf')
PyMuPDF是一个用于渲染PDF文件的库,可以用于提取文本和图像信息。
以下是一个简单的示例:
import fitz # PyMuPDF的Python绑定 def extract_text_images(pdf_file): doc = fitz.open(pdf_file) for page_num in range(doc.page_count): page = doc[page_num] # 提取文本 text = page.get_text("text") print(f"Text on page {page_num + 1}:\n{text}\n") # 提取图像 for img_index, img in enumerate(page.get_images(full=True)): img_index += 1 base_image = doc.extract_image(img) image_bytes = base_image["image"] image_name = f"page_{page_num + 1}_image_{img_index}.png" with open(image_name, "wb") as image_file: image_file.write(image_bytes) # 调用示例 extract_text_images('document.pdf')
PDFMiner是一个用于提取PDF文本的强大库,它支持高级的文本提取和布局分析。
以下是一个简单的示例:
from pdfminer.high_level import extract_text
def extract_text_from_pdf(pdf_file):
text = extract_text(pdf_file)
print(f"Text extracted from the PDF:\n{text}")
# 调用示例
extract_text_from_pdf('document.pdf')
FPDF是一个轻量级的Python库,用于在PDF文档中添加文本、图形和页面。
以下是一个简单的创建PDF文档的示例:
from fpdf import FPDF class PDFGenerator(FPDF): def header(self): self.set_font('Arial', 'B', 12) self.cell(0, 10, 'My PDF Document', 0, 1, 'C') def chapter_title(self, num, label): self.set_font('Arial', 'B', 12) self.cell(0, 10, 'Chapter %d : %s' % (num, label), 0, 1, 'L') def chapter_body(self, body): self.set_font('Arial', '', 12) self.multi_cell(0, 10, body) # 创建PDF文档 pdf = PDFGenerator() pdf.add_page() pdf.chapter_title(1, 'Introduction') pdf.chapter_body('This is the introduction to my PDF document.') pdf.chapter_title(2, 'Chapter 1') pdf.chapter_body('This is the content of chapter 1.') # 保存PDF文档 pdf.output('generated_document.pdf')
PDFKit是一个基于wkhtmltopdf工具的Python库,可以将HTML内容转换为PDF文档。这在需要动态生成报告或将网页内容保存为PDF时非常有用。
以下是一个简单的例子:
import pdfkit
def html_to_pdf(html_content, output_pdf):
pdfkit.from_string(html_content, output_pdf)
# 调用示例
html_content = "<html><body><h1>Hello, PDFKit!</h1><p>This is a sample HTML content.</p></body></html>"
html_to_pdf(html_content, 'html_to_pdf_output.pdf')
PyPDF2不仅可以用于合并和拆分PDF,还可以用于对PDF页面进行旋转。
以下是一个旋转PDF页面的简单示例:
import PyPDF2 def rotate_pdf(input_pdf, output_pdf, rotation_angle): pdf_writer = PyPDF2.PdfFileWriter() pdf_reader = PyPDF2.PdfFileReader(input_pdf) for page_num in range(pdf_reader.numPages): page = pdf_reader.getPage(page_num) page.rotateClockwise(rotation_angle) pdf_writer.addPage(page) with open(output_pdf, 'wb') as rotated_file: pdf_writer.write(rotated_file) # 调用示例 rotate_pdf('document.pdf', 'rotated_document.pdf', 90)
PDFMerger是一个简单易用的库,专门用于合并PDF文件。
以下是一个示例:
from PyPDF2 import PdfMerger
def merge_pdfs_with_pdfmerger(files, output_file):
merger = PdfMerger()
for pdf_file in files:
merger.append(pdf_file)
merger.write(output_file)
merger.close()
# 调用示例
pdf_files = ['file1.pdf', 'file2.pdf', 'file3.pdf']
merge_pdfs_with_pdfmerger(pdf_files, 'merged_files.pdf')
在本文中,我们分享了Python中操作PDF的多种方法,涵盖了PyPDF2、reportlab、PyMuPDF、PDFMiner、FPDF、PDFKit、PyPDF2、PDFMerger等库的应用。通过丰富的示例代码,学习了合并、拆分、文本提取、HTML转换、页面旋转和PDF合并等常见操作。这些工具和技术为处理PDF文件提供了灵活而强大的手段,能够根据具体需求选择适当的方法。
无论是生成报告、处理文档还是转换HTML内容,Python的生态系统都提供了多样化的解决方案。通过阅读本文,不仅可以了解每种方法的基本原理,还能够通过示例代码深入理解其实际应用。在处理PDF的日常任务中,选择适当的工具和技术将极大地提高工作效率。
以上就是“Python玩转PDF:几招搞定的高效操作方法”的全部内容,希望对你有所帮助。
关于Python技术储备
学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!
一、Python所有方向的学习路线
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、Python必备开发工具
三、Python视频合集
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
四、实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
五、Python练习题
检查学习结果。
六、面试资料
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
最后祝大家天天进步!!
上面这份完整版的Python全套学习资料已经上传至CSDN官方,朋友如果需要可以直接微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。