安装 PyPDF2:
pip install pypdf2分割 PDF 文件的 Python 代码:
# -*- coding: utf-8 -*-
import os
import sys
from PyPDF2 import PdfFileReader, PdfFileWriter
def splitPdf(filename, page):
print("src file [{0}], page [{1}-{2}], sub file [{3}]".format(filename, page[0], page[1], page[2]))
srcFile = open(filename, 'rb')
pdfReader = PdfFileReader(srcFile)
targetFile = page[2]
if os.path.exists(targetFile):
return 1
filePageNum = pdfReader.getNumPages()
if filePageNum <= page[0] or filePageNum < page[1]:
return 2
pdfWriter = PdfFileWriter()
for p in range(page[0] - 1, page[1]):
pdfPage = pdfReader.getPage(p)
pdfWriter.addPage(pdfPage)
with open(targetFile, 'wb') as fp:
pdfWriter.write(fp)
return 'ok'
if "__main__" == __name__:
filename = sys.argv[1]
pages = list()
for arg in sys.argv[2:]:
page = list()
if '-' in arg: # page 1-2
page.append(int(arg.split('-')[0]))
page.append(int(arg.split('-')[1]))
else: # only page 3
page.append(int(arg))
page.append(int(arg))
page.append(filename[:-4] + '_' + arg + filename[-4:]) # sub file name
pages.append(page)
for page in pages:
splitPdf(filename, page)源 PDF 文件分割之前:
$ ls -l
-rw-r--r--@ 1 118597 3 22 14:35 a-pdf-file.pdf
-rw-r--r-- 1 1227 3 22 14:43 split.py执行切割文件的命令:
$ python split.py a-pdf-file.pdf 1-2 3 5-6 # 把文件的第1-2页,第3页,第5-6页从a-pdf-file.pdf 中切割出来切割文件后的效果:
$ ls -l
-rw-r--r--@ 1 118597 3 22 14:35 a-pdf-file.pdf
-rw-r--r-- 1 67994 3 22 14:51 a-pdf-file_1-2.pdf
-rw-r--r-- 1 41257 3 22 14:51 a-pdf-file_3.pdf
-rw-r--r-- 1 62294 3 22 14:51 a-pdf-file_5-6.pdf其中 a-pdf-file_1-2.pdf、a-pdf-file_3.pdf、a-pdf-file_5-6.pdf 三个文件就是按页切割后的文件

版权声明:本文为fengbohello原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。