试想象一下,你正在处理一堆PDF文件,需要从中提取一些信息或者修改其中的内容。如果你不使用Python,你可能需要手动打开每个文件,复制粘贴你需要的内容,然后再保存为一个新的文件。这简直是一场噩梦!但是,有了Python,你可以轻松地编写一个脚本来自动化这个过程,节省大量时间和精力。
那么,Python是如何读取和创建PDF文件的呢?其实,这背后离不开一些强大的第三方库,比如`PyPDF2`。`PyPDF2`可以帮助我们读取、旋转和创建一个全新空白的PDF文件。
让我给你举个例子吧!假设你有一个PDF文件,你想读取其中的所有文本内容。你可以这样做:
# python对pdf格式文件的读取、写入等操作需要通过模块PyPDF2来实现,需要先安装PyPDF2模块,需要安装的版本是3.0以下的,3.0以上的版本存在不兼容的问题
# 安装指定版本的PyPDF2,执行命令:pip install PyPDF2==2.12.1 # Successfully installed PyPDF2-2.12.1
# 导入PyPDF2模块
import PyPDF2
# 读取pdf格式的文件
reader = PyPDF2.PdfFileReader(r"./01_iot-modbus.pdf")
# print(reader) # <PyPDF2._reader.PdfFileReader object at 0x0000018650E45520>
# 读取指定页码的文件,0表示第一页
page = reader.getPage(0)
# 输出当前页面的文本内容
print(page.extractText())
除了读取PDF文件外,Python还可以帮助我们旋转和创建全新空白的PDF文件。你可以这样做:
# 导入PyPDF2模块
import PyPDF2
# 创建读取pdf文件的对象
reader = PyPDF2.PdfFileReader(r"./01_iot-modbus.pdf")
# 创建写入pdf文件的对象
writer = PyPDF2.PdfFileWriter()
# print(reader, writer) # <PyPDF2._reader.PdfFileReader object at 0x000002AF0A2443B0> <PyPDF2._writer.PdfFileWriter object at 0x000002AF0C57BB30>
# 获取pdf文件中所有的页码
# print(reader.numPages) # 12
# 对pdf文件中的所有页码进行遍历
for page_num in range(reader.numPages):
# print(page_num) # 0 1 2 3 4 5 6 7 ...
# 获取当前页码对象
current_page = reader.getPage(page_num)
# 若是奇数页,顺时针旋转90度
if page_num % 2 == 0:
current_page.rotateClockwise(90)
else:
# 若是偶数页,逆时针旋转90度
current_page.rotateCounterClockwise(90)
writer.addPage(current_page)
# 添加空白页面,并且旋转90度
page = writer.addBlankPage()
page.rotateClockwise(90)
# 通过writer对象里面的write方法,将pdf文件做的调整保存到新的文件中
with open(r"./02_旋转-创建空白.pdf", "wb") as file:
writer.write(file)