Anzahl Seiten eines PDFs feststellen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
drnicolas
User
Beiträge: 85
Registriert: Sonntag 24. Juli 2016, 10:32

Ich möchte/muß feststellen wieviele Seiten ein PDF hat.

Geht das mit einer Python-Bibliothek ?

Anschliessend muss das PDFan einer bestimmten Stelle aufgeteilt werden. Es geht mir aber nicht darum immer nach nSeiten zuteien !
Benutzeravatar
pixewakb
User
Beiträge: 1412
Registriert: Sonntag 24. April 2011, 19:43

Das geht mit PyPDF für Python 2.7.

https://pypi.python.org/pypi/pyPdf/1.13

http://pybrary.net/pyPdf/

Falls jemand eine bessere Version für Python 3 kennt, wäre eine Info auch für mich sehr hilfreich. Ich suche da noch; pypdf scheint nicht mehr maintainted zu sein, das Nachfolgeprojekt hat sich verabschiedet :(

Der nachfolgende Code gibt vielleicht einen Eindruck.

Code: Alles auswählen

from pyPdf import PdfFileWriter, PdfFileReader

# output = PdfFileWriter()
input1 = PdfFileReader(file("IMG.pdf", "rb"))

# Seite drehen
for page in range(input1.getNumPages()):
    
    output = PdfFileWriter()
    output.addPage(input1.getPage(page))

    outputStream = file("Dateien "+ str(page) +".pdf", "wb")
    output.write(outputStream)
    outputStream.close()
Sirius3
User
Beiträge: 17753
Registriert: Sonntag 21. Oktober 2012, 17:20

@pixewakb: was soll den die 1 bei input1? Variablennamen durchzunummerieren ist immer eine schlechte Idee, vor allem, wenn es nur eine 1 gibt. file-Objekte erzeugt man üblicherweise durch Aufruf von open. Diese sollten auch irgendwann wieder geschlossen werden, z.B. automatisch mit dem with-Statement. Statt Strings mit + zusammenzustücken, verwende .format. Und Leerzeichen in Dateinamen sind gruslig:

Code: Alles auswählen

with open("Datei_{0:04d}.pdf".format(page), "wb") as output_stream:
    output.write(output_stream)
Benutzeravatar
pixewakb
User
Beiträge: 1412
Registriert: Sonntag 24. April 2011, 19:43

Für Python 3 scheint es das zu geben: https://pypi.python.org/pypi/PyPDF2/1.26.0

@Sirius3: Sorry für den Quellcode. Ich teste gleich mal pyddf2 und dann deinen Vorschlag. Ich brauche solche Skripte schon mal häufiger, weil ich PDFs drehen, zerlegen oder neu zusammensetzen muss, leider ist es meist aus dem Netz zusammengestückelt :? und das dann auch mit wenig Liebe. Die Sache mit open finde ich gut, damit bekam ich die Skripte aber bislang noch nie zum Laufen. Vielleicht klappt es mit deinem Code! Danke!
Antworten