Вы можете использовать PyPDF2 (pip install PyPDF2)
Предполагается, что вы индексируете от 1:
from PyPDF2 import PdfFileWriter, PdfFileReader
def split_pdf(input_path, output_path, pages):
input = PdfFileReader(open(input_path, "rb"))
output = PdfFileWriter()
for page in pages:
output.addPage(input.getPage(page - 1))
with open(output_path, "wb") as stream:
output.write(stream)
Использование:
pages = [1, 2, 3, 4] # for specific pages (1, 2, 3, 4)
pages = range(1, 5) # for a range (1, 2, 3, 4)
split_pdf("input.pdf", "output.pdf", pages)