PDF Infos auslesen (Schriften und Version)

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
HelmutPanzer
User
Beiträge: 2
Registriert: Montag 19. August 2013, 21:13

Hallo,

erstmal "Hallo!" ... nun aber zu meiner Frage ;-)

Ich suche eine Möglichkeit PDF Informationen auszulesen. Speziell benötige ich Informationen zu den enthaltenen Schriften und ob diese eingebettet sind oder halt nicht sowie in welcher PDF-Version die PDF vorliegt. Versucht habe ich es mit pypdf2 (getdocumentinfo), hier sind aber nur ganz allgemeine Infos zu finden (Autor etc.).

Hat jemand eine Idee? Vielen Dank schon einmal im Voraus und Schöne Grüße,

Helmut
mutetella
User
Beiträge: 1695
Registriert: Donnerstag 5. März 2009, 17:10
Kontaktdaten:

Vielleicht hilft Dir PDFMiner weiter...?

mutetella
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit ;-) )
BlackJack

@HelmutPanzer: Mit der Anbindung an `libpoppler` geht das zum Beispiel:

Code: Alles auswählen

#!/usr/bin/python
#-*- coding: utf-8 -*-
import os
from poppler import document_new_from_file, FontInfo


def main():
    filename = 'pandas.pdf'
    url = 'file://' + os.path.abspath(filename)
    document = document_new_from_file(url, None)
    print document.props.format,
    print (document.props.format_major, document.props.format_minor)
    page_count = document.get_n_pages()
    font_info = FontInfo(document)
    font_iterator = font_info.scan(page_count)
    if font_iterator:
        while True:
            print font_iterator.get_name(), ':', font_iterator.is_embedded()
            if not font_iterator.next():
                break


if __name__ == '__main__':
    main()
Ausgabe:

Code: Alles auswählen

PDF-1.4 (1L, 4L)
NimbusSanL-Bold : True
NimbusSanL-BoldItal : True
NimbusRomNo9L-Regu : True
NimbusRomNo9L-Medi : True
NimbusMonL-Regu : True
NimbusRomNo9L-ReguItal : True
NimbusMonL-Bold : True
NimbusMonL-ReguObli : True
CMMI10 : True
CMR10 : True
CMMI7 : True
CMSY7 : True
CMR7 : True
CMSY10 : True
CMEX10 : True
NimbusRomNo9L-MediItal : True
NimbusSanL-Regu : True
HelmutPanzer
User
Beiträge: 2
Registriert: Montag 19. August 2013, 21:13

Hallo,

vielen Dank für eure Antworten. BlackJacks Version sieht genau so aus, wie ich es gern hätte. Ich bekomme nur poppler nicht installiert. Vielleicht kann mir wer Tipps geben. Es geht schon los, dass ich keine richtige Version finde bzw. nicht weiß welche ich nutzen sollte ...

Also meine Konfiguration: Python 3.3 und Windows 8. Ich habe zwar einige Pakete versucht zu installieren, aber es fehlen immer irgenwelche "Dinge" (sorry bin Neuling ;-). Wäre nett, wenn mir jemand ein Pfad zum Package schicken könnten, ggf. auch zu denen, die ich zusätzlich benötige (ich las etwas von "sip"?).

Vielen Dank schon einmal und schöne Grüße
Helmut
Antworten