当前位置: 代码网 > it编程>前端脚本>Python > python实现PDF文档提取,分割与合并操作

python实现PDF文档提取,分割与合并操作

2026年02月16日 Python 我要评论
一、pdf提取文字/转图片提取文字和转图片使用的是fitz模块,模块安装:pip install pymupdf提取文字import fitz pdf = fitz.open('xxxx.pdf')

一、pdf提取文字/转图片

提取文字和转图片使用的是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

二、分割、合并pdf文档

2.1 使用pypdf2模块

模块安装:

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)

2.2 使用fitz模块

模块安装:

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文档操作内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com