相关:pdf 相关的 python 包
1. 安装 pypdf2
pip install pypdf2
2. 分割文件
# -*- coding: utf-8 -*-
from PyPDF2 import PdfFileReader, PdfFileWriter
import sys
def split_single_pdf(read_file, start_page, end_page, pdf_file):
fp_read_file = open(read_file, 'rb')
pdf_output = PdfFileWriter() # 实例一个 PDF文件编写器
pdf_input = PdfFileReader(fp_read_file) # 将要分割的PDF内容格式话
for i in range(start_page, end_page + 1):
print("get page : [{0}]".format(i))
page = pdf_input.getPage(i)
page.scaleTo(int(14.22 / 2.54 * 72), int(19.90 / 2.54 * 72))
pdf_output.addPage(page)
with open(pdf_file, 'wb') as sub_fp:
pdf_output.write(sub_fp)
print(f'完成分割{start_page}页-{end_page}页,保存为{pdf_file}!')
if "__main__" == __name__:
if len(sys.argv) < 5:
print("Usage: {0} srcfile startpage endpage newfile", sys.argv[0])
sys.exit(1)
split_single_pdf(sys.argv[1], int(sys.argv[2]) - 1, int(sys.argv[3]) - 1, sys.argv[4])
3. 合并文件
# -*- coding:utf-8 -*-
from PyPDF2 import PdfFileMerger
import os
import sys
def merge_pdf(files, target):
merger = PdfFileMerger()
for file in files: #从所有文件中选出pdf文件合并
if file[-4:] == ".pdf":
print("add file [{0}]".format(file))
merger.append(open(file, 'rb'))
with open(target, 'wb') as fout: #输出文件为newfile.pdf
merger.write(fout)
if "__main__" == __name__:
if len(sys.argv) < 3:
print("Usage: {0} part1 ... target".format(sys.argv[0]))
sys.exit(1)
merge_pdf(sys.argv[1:-1], sys.argv[-1])