112 Stimmen

eine mehrseitige pdf-Datei mit Python in mehrere pdf-Dateien aufteilen?

Ich möchte eine mehrseitige pdf-Datei nehmen und für jede Seite eine eigene pdf-Datei erstellen.

Ich habe heruntergeladen reportlab und habe die Dokumentation durchgesehen, aber sie scheint auf die PDF-Erstellung ausgerichtet zu sein. Ich habe noch nichts über die Verarbeitung von PDF-Dateien selbst gesehen.

Gibt es eine einfache Möglichkeit, dies in Python zu tun?

242voto

user26294 Punkte 5105
from PyPDF2 import PdfFileWriter, PdfFileReader

inputpdf = PdfFileReader(open("document.pdf", "rb"))

for i in range(inputpdf.numPages):
    output = PdfFileWriter()
    output.addPage(inputpdf.getPage(i))
    with open("document-page%s.pdf" % i, "wb") as outputStream:
        output.write(outputStream)

usw.

11voto

DovaX Punkte 795

Ich habe hier eine Lösung vermisst, bei der man das PDF in zwei Teile aufteilt, die aus allen Seiten bestehen, also füge ich meine Lösung an, falls jemand dasselbe sucht:

from PyPDF2 import PdfFileWriter, PdfFileReader

def split_pdf_to_two(filename,page_number):
    pdf_reader = PdfFileReader(open(filename, "rb"))
    try:
        assert page_number < pdf_reader.numPages
        pdf_writer1 = PdfFileWriter()
        pdf_writer2 = PdfFileWriter()

        for page in range(page_number):
            pdf_writer1.addPage(pdf_reader.getPage(page))

        for page in range(page_number,pdf_reader.getNumPages()):
            pdf_writer2.addPage(pdf_reader.getPage(page))

        with open("part1.pdf", 'wb') as file1:
            pdf_writer1.write(file1)

        with open("part2.pdf", 'wb') as file2:
            pdf_writer2.write(file2)

    except AssertionError as e:
        print("Error: The PDF you are cutting has less pages than you want to cut!")

10voto

Nikita Jain Punkte 488

Das PyPDF2-Paket gibt Ihnen die Möglichkeit, ein einzelnes PDF in mehrere aufzuteilen.

import os
from PyPDF2 import PdfFileReader, PdfFileWriter

pdf = PdfFileReader(path)
for page in range(pdf.getNumPages()):
    pdf_writer = PdfFileWriter()
    pdf_writer.addPage(pdf.getPage(page))

    output_filename = '{}_page_{}.pdf'.format(fname, page+1)

    with open(output_filename, 'wb') as out:
        pdf_writer.write(out)

    print('Created: {}'.format(output_filename))

Source : https://www.blog.pythonlibrary.org/2018/04/11/splitting-and-merging-pdfs-with-python/

3voto

sandilya M Punkte 59

Ich weiß, dass der Code nichts mit Python zu tun hat, aber ich wollte dieses Stück R-Code posten, das einfach und flexibel ist und erstaunlich gut funktioniert. Das PDFtools-Paket in R ist erstaunlich, wenn es darum geht, PDFs einfach aufzuteilen und zusammenzuführen.

library(pdftools) #Rpackage
pdf_subset('D:\\file\\20.02.20\\22 GT 2017.pdf',
           pages = 1:51, output = "subset.pdf")

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X