1. 应用场景
- 将一个大的PDF文件,可以是购物的电子发票(含很多页的商品明细)等,提取首页。
- 。。。。。。
2. 心路历程
2.1 尝试过的方法
- 百度在线工具,各类工具网站,生成的文件带水印,需要注册会员,果断放弃。
- PDF阅读器,需要安装工具。
2.2 最终选择
一言不合,直接开码——通过python的第三方库实现。
2.3 选择理由
免费!免费!免费!
灵活!灵活!灵活!
享受!享受!享受!
3. 代码示例
#!/usr/bin/python3
# -- coding: utf-8 --
"""
Description:拆分PDF文件,每页生成一个独立的PDF文件
Author: 每天可乐
Email: 123@example.com
Date: 2024年4月15日
Version: 1.0
Dependencies:
- PyPDF2
- os
Usage:
python3 split_pdf.py
"""
import os
import PyPDF2
def split_pdf(input_pdf_path, output_folder):
# 打开PDF文件
with open(input_pdf_path, 'rb') as input_file:
pdf_reader = PyPDF2.PdfReader(input_file)
for page_num in range(len(pdf_reader.pages)):
# 创建一个PDF writer对象,用于写入每一页
pdf_writer = PyPDF2.PdfWriter()
# 将当前页面添加到writer中
pdf_writer.add_page(pdf_reader.pages[page_num])
# 定义输出文件名
output_filename = f'{output_folder}/page_{page_num + 1}.pdf'
# 写入PDF文件
with open(output_filename, 'wb') as output_file:
pdf_writer.write(output_file)
# 输入文件
input_pdf = 'fa3cbf676bb04d39b85c3844e43c7ae1.pdf'
# 输出文件夹
output_dir = '/tmp/fa3cbf676bb04d39b85c3844e43c7ae1_files'
# 创建输出文件夹
if not os.path.exists(output_dir):
os.makedirs(output_dir)
split_pdf(input_pdf, output_dir)