Sicherlich ist das Thema hier ein wenig unpassend, ich versuche es jedoch trotzdem.
ich habe mehrere Pdf-dateien eines Projekts in einem Ordner
Nun habe ich mir ein kleines Pyscript geschrieben welches alle PDFdateien
ein ordners druckt.
Dies geschieht jedoch nur auf einem vordefiniertem Format, also A4 oder A3, etc.
Nun möchte das ganze so erweitern das mein Programm die Formate der PDFs erkennt und sie dann auf die spezifischen Drucker verteilt.
Also die Frage: wie ermittele ich die Pdf-Papierformate einer PDFdatei mittels
PYthon?
papierformat eine pdf datei mittel python ermitteln
Das ginge zum Beispiel mit pyPdf.
Code: Alles auswählen
from pyPdf import PdfFileReader
paper_sizes = { (842, 1190): 'A3',
(595, 842): 'A4',
(420, 595): 'A5',
(729, 1032): 'B4',
(516, 729): 'B5',
(612, 792): 'Letter',
(612, 1008): 'Legal' }
def main():
pdf_file = open('valen_candyhearts.pdf')
reader = PdfFileReader(pdf_file)
box = reader.getPage(0).mediaBox
pdf_file.close()
size = (box[2] - box[0], box[3] - box[1])
print size, paper_sizes[size]
if __name__ == '__main__':
main()
mmmhh Tja also irgendwie ist das ne komische Library...
PYPDF
bekomme immer folgende Fehlermeldung:
ich hab mir die Klasse angeschaut und finde keine Fehler.
woran kann das denn liegen?
PYPDF
bekomme immer folgende Fehlermeldung:
Code: Alles auswählen
Traceback (most recent call last):
papersize.py", line 26, in ?
main()
papersize.py", line 15, in main
reader = PdfFileReader(pdf_file)
File "C:\Py\Lib\site-packages\pyPdf\pdf.py", line 209, in __init__
self.read(stream)
File "C:\Py\Lib\site-packages\pyPdf\pdf.py", line 319, in read
assert line[:5] == "%%EOF"
AssertionError
woran kann das denn liegen?
Hm, ich habe in meinem Beispiel die PDF-Datei nicht als Binärdatei geöffnet. Das sollte man wohl besser machen.
Ansonsten ist entweder das PDF "kaputt" oder ein Fehler in pyPdf. Wenn es mit dem Binärmodus auch nicht klappt, dann solltest Du den Fehler dem Autor von pyPdf melden.
Ansonsten ist entweder das PDF "kaputt" oder ein Fehler in pyPdf. Wenn es mit dem Binärmodus auch nicht klappt, dann solltest Du den Fehler dem Autor von pyPdf melden.