Seite 1 von 1
PDF Dateien mit Python auslesen
Verfasst: Freitag 16. Juni 2006, 21:26
von SigMA
moien
Gibt es eine Möglichkeit mit Python eine PDF Datei auszulesen?!
hab im Forum und bei Google nichts gefunden :/
würde mich über Hilfe freuen

SigMA
Verfasst: Freitag 16. Juni 2006, 21:33
von BlackJack
Wenn "auslesen" gleichbedeutend ist mit "text extrahieren" dann würde ich das Kommandozeilenprogramm `pdftotext` von
XPdf von Python aus aufrufen.
Verfasst: Freitag 16. Juni 2006, 21:36
von SigMA
*notier* das ist schon mal ne Lösung
Aber gibt es auch noch eine mehr Plattform unabhängigere?!
Verfasst: Samstag 17. Juni 2006, 11:08
von BlackJack
Wie unabhängig soll's denn sein? Es gibt `pdftotext` als Quelltext und Links zu Binaries für Linux, DOS/Windows, Solaris, FreeBSD, OS/2, OpenVMS, MacOS X, und NetBSD auf der
Download-Seite.
Verfasst: Samstag 17. Juni 2006, 19:09
von SigMA
Es geht vorallem um das herraus Parsen der META Daten und dafür eignet es sich nicht so gut. Man kann par mit nem gaaaaaaaaaa*1000nz bösen QuickHack es als HTML machen und dann da die META Daten raus holen aber das ist 1) langsam und
2) einfach zu ekelhaft um es zu machen^^
SigMA
Verfasst: Sonntag 18. Juni 2006, 11:00
von BlackJack
Für Metadaten ist `pdfinfo` von den `xpdf`-Tools zuständig.
Code: Alles auswählen
$ pdfinfo CoArray_Python.pdf
Title: LNCS 3149 - Co-array Python: A Parallel Extension to the Python Language
Subject: Euro-Par 2004 Parallel Processing
Author: Craig E. Rasmussen, Matthew J. Sottile, Jarek Nieplocha, Robert W. Numrich, and Eric Jones
Producer: Acrobat Distiller 5.0.5 (Windows)
CreationDate: Mon Dec 20 11:10:08 2004
ModDate: Wed Dec 22 12:08:51 2004
Tagged: no
Pages: 6
Encrypted: no
Page size: 439 x 666 pts
File size: 108647 bytes
Optimized: yes
PDF version: 1.4
Kann man sich auch als RDF XML ausgeben lassen.
Eine weitere externe Lösung wäre
pdftk:
Code: Alles auswählen
$ pdftk CoArray_Python.pdf dump_data
InfoKey: Title
InfoValue: LNCS 3149 - Co-array Python: A Parallel Extension to the Python Language
InfoKey: Producer
InfoValue: Acrobat Distiller 5.0.5 (Windows)
InfoKey: Author
InfoValue: Craig E. Rasmussen, Matthew J. Sottile, Jarek Nieplocha, Robert W. Numrich, and Eric Jones
InfoKey: Subject
InfoValue: Euro-Par 2004 Parallel Processing
InfoKey: ModDate
InfoValue: D:20041222120851+01'00'
InfoKey: CreationDate
InfoValue: D:20041220111008Z
PdfID0: 99516261b52c495aa6db34acbe4e3fdf
PdfID1: abfaca3213d5bbbe56c2ae66029b71b
NumberOfPages: 6
BookmarkTitle: 1 Introduction
BookmarkLevel: 1
BookmarkPageNumber: 1
BookmarkTitle: 2 Co-array Python Implementation
BookmarkLevel: 1
BookmarkPageNumber: 2
BookmarkTitle: 2.1 Implementation Details
BookmarkLevel: 2
BookmarkPageNumber: 3
BookmarkTitle: 3 Co-array Python Example
BookmarkLevel: 1
BookmarkPageNumber: 3
BookmarkTitle: 4 Future Work
BookmarkLevel: 1
BookmarkPageNumber: 5
BookmarkTitle: Acknowledgments
BookmarkLevel: 1
BookmarkPageNumber: 5
BookmarkTitle: References
BookmarkLevel: 1
BookmarkPageNumber: 6
Ich sehe gerade das es seit knapp zwei Wochen eine Python-Lösung gibt.
pyPdf kann jetzt auch Meta-Informationen lesen. Allerdings kann das Modul nicht alle PDFs lesen, bei manchen gibt's Ausnahmen. Zum Beispiel bei dem PDF das ich oben als Beispiel benutzt habe.
Ansonsten hier ein Snippet:
Code: Alles auswählen
from pyPdf import PdfFileReader
pdf_file = open('test.pdf', 'rb')
pdf = PdfFileReader(pdf_file)
info = pdf.getDocumentInfo()
for key in ('title', 'author', 'subject', 'creator'):
print getattr(info, key)
pdf_file.close()
Verfasst: Sonntag 18. Juni 2006, 20:16
von SigMA
Dankeschön

Das letzte hab ich gesucht ;D