文章目录
- 模块安装: pip install PyPDF2 分割、合并PDF import PyPDF2 pdf = PyPDF2.PdfReader(‘xxxx.pdf’) # 打开名为xxxx.pdf的PDF文档 pages = pdf.pages # PDF总页数 writer = PyPDF2.PdfWriter() # 创建新的PDF变量 writer.add_page(pdf.pages[0]) # 将第1页分割到新的PDF writer.add_page(pdf.pages[1]) # 将第2页分割到新的PDF with open(‘xxxx2.pdf’, ‘wb’) as output_pdf: # 将分割出来的页保存为新的PDF文件xxxx2.pdf writer.write(output_pdf) writer2 = PyPDF2.PdfWriter() # 创建新的PDF变量 writer2.add_page(pdf.pages[2]) # 将第3页分割到新的PDF writer2.add_page(pdf.pages[99]) # 将第100页分割到新的PDF with open(‘xxxx3.pdf’, ‘wb’) as output_pdf: # 将分割出来的页保存为新的PDF文件xxxx3.pdf writer2.write(output_pdf)
- 模块安装: pip install PyMuPDF 示例: import fitz writer = fitz.open() # 创建一个空白pdf # 打开1.pdf,并写入新创建的pdf中 pdf = fitz.open(‘1.pdf’) writer.insert_pdf(pdf, start_at=writer.page_count) pdf.close() # 打开2.pdf,并将第1-3页写入新创建的pdf中(页码从0起算) pdf = fitz.open(‘2.pdf’) writer.insert_pdf(pdf, start_at=writer.page_count, from_page=1, to_page=3) pdf.close() # 打开3.pdf,并写入新创建的pdf中 pdf = fitz.open(‘3.pdf’) writer.insert_pdf(pdf, start_at=writer.page_count) pdf.close() writer.save(‘xxxx.pdf’) # 保存为xxxx.pdf writer.close() 分割跟合并PDF的原理是一样的,前者是打开一个PDF文档,创建并保存为多个PDF文档;后者是打开多个PDF文档,创建并保存为一个PDF文档。 使用PyPDF2模块合并pdf文件时常常遇到乱码问题,因此本人更推荐使用fitz模块。 到此这篇关于python实现PDF文档提取,分割与合并操作的文章就介绍到这了,更多相关python PDF文档操作内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客! 您可能感兴趣的文章: Python合并多个PDF文件的完整指南与实践 使用Python对PDF进行拆分与合并的操作方法 Python合并两个PDF文件的两种实现方案 基于Python实现进阶版PDF合并/拆分工具 Python实现PDF信息的精准提取与结构化输出 python实现简单提取PDF文档内文字 Python实现快速从指定页面PDF中提取文本 通过Python提取PDF表格数据的流程步骤
目录
- 一、PDF提取文字/转图片
- 二、分割、合并PDF文档
- 2.1 使用PyPDF2模块
- 2.2 使用fitz模块
提取文字和转图片使用的是fitz模块,模块安装:
pip install PyMuPDF
提取文字
import fitz
pdf = fitz.open('xxxx.pdf') # xxxx.pdf是pdf文件名或路径
pages = pdf.page_count # 获取pdf页数
page = pdf[n] # 获取pdf第n页,n为页码,从0开始
x = page.rect[2] # 获取页宽
y = page.rect[3] # 获取页高
content = page.get_text() # 提取这一整页的文字
# 获取指定区域文字
content = page.get_text(clip=(x1, y1, x2, y2)) # x1为指定区域左上角x坐标,y1区域左上角y坐标,x2为区域右下角x坐标,y2区域右下角y坐标
转图片
import fitz
pdf = fitz.open('xxxx.pdf') # xxxx.pdf是pdf文件名或路径
page = pdf[n] # 获取pdf第n页,n为页码,从0开始
z_x = 3 # 宽度放大比例
z_y = 3 # 高度放大比例
mat = fitz.Matrix(z_x, z_y)
pix = page.get_pixmap(matrix=mat)
pix.save('xxxx.png') # 保存图片为xxxx.png
模块安装:
pip install PyPDF2
分割、合并PDF
import PyPDF2
pdf = PyPDF2.PdfReader('xxxx.pdf') # 打开名为xxxx.pdf的PDF文档
pages = pdf.pages # PDF总页数
writer = PyPDF2.PdfWriter() # 创建新的PDF变量
writer.add_page(pdf.pages[0]) # 将第1页分割到新的PDF
writer.add_page(pdf.pages[1]) # 将第2页分割到新的PDF
with open('xxxx2.pdf', 'wb') as output_pdf: # 将分割出来的页保存为新的PDF文件xxxx2.pdf
writer.write(output_pdf)
writer2 = PyPDF2.PdfWriter() # 创建新的PDF变量
writer2.add_page(pdf.pages[2]) # 将第3页分割到新的PDF
writer2.add_page(pdf.pages[99]) # 将第100页分割到新的PDF
with open('xxxx3.pdf', 'wb') as output_pdf: # 将分割出来的页保存为新的PDF文件xxxx3.pdf
writer2.write(output_pdf)
模块安装:
pip install PyMuPDF
示例:
import fitz
writer = fitz.open() # 创建一个空白pdf
# 打开1.pdf,并写入新创建的pdf中
pdf = fitz.open('1.pdf')
writer.insert_pdf(pdf, start_at=writer.page_count)
pdf.close()
# 打开2.pdf,并将第1-3页写入新创建的pdf中(页码从0起算)
pdf = fitz.open('2.pdf')
writer.insert_pdf(pdf, start_at=writer.page_count, from_page=1, to_page=3)
pdf.close()
# 打开3.pdf,并写入新创建的pdf中
pdf = fitz.open('3.pdf')
writer.insert_pdf(pdf, start_at=writer.page_count)
pdf.close()
writer.save('xxxx.pdf') # 保存为xxxx.pdf
writer.close()
分割跟合并PDF的原理是一样的,前者是打开一个PDF文档,创建并保存为多个PDF文档;后者是打开多个PDF文档,创建并保存为一个PDF文档。
使用PyPDF2模块合并pdf文件时常常遇到乱码问题,因此本人更推荐使用fitz模块。
到此这篇关于python实现PDF文档提取,分割与合并操作的文章就介绍到这了,更多相关python PDF文档操作内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客!
您可能感兴趣的文章:
- Python合并多个PDF文件的完整指南与实践
- 使用Python对PDF进行拆分与合并的操作方法
- Python合并两个PDF文件的两种实现方案
- 基于Python实现进阶版PDF合并/拆分工具
- Python实现PDF信息的精准提取与结构化输出
- python实现简单提取PDF文档内文字
- Python实现快速从指定页面PDF中提取文本
- 通过Python提取PDF表格数据的流程步骤