Ich habe mehrere Programme ausprobiert: pdftotext, pdf2txt.py, … Alle können Text aus PDFs extrahieren, aber das Programm, das die beste Arbeit leistet, ist das gute alte less
: Der Text aus dem PDF hat ein ordentliches Layout. Wie macht Less das? Verwendet es eine Bibliothek oder ist die PDF-Verarbeitung integriert?
Ich frage, weil ich diese Funktionalität programmgesteuert verwenden möchte, ohne Less unbedingt als externes Programm ausführen zu müssen (ich verwende Python).
Mein System ist:
» less --version
less 458 (GNU regular expressions)
Copyright (C) 1984-2012 Mark Nudelman
less comes with NO WARRANTY, to the extent permitted by law.
For information about the terms of redistribution,
see the file named README in the less distribution.
Homepage: http://www.greenwoodsoftware.com/less
» uname -a
Linux polyphemus 3.13.0-53-generic #89-Ubuntu SMP Wed May 20 10:34:39 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
Antwort1
Ihre Distribution verwendet wahrscheinlich das beliebte lesspipe.sh
Skript. Überprüfen Sie die LESSOPEN
Umgebungsvariable.
Dieses Skript gibt es in vielen Varianten. Ich schaue mir die Gentoo-Version an. Darin finden Sie die folgende Zeile:
*.ps|*.pdf) ps2ascii "$1" || pstotext "$1" || pdftotext "$1" ;;
Das bedeutet, dass diese Befehle in der angezeigten Reihenfolge ausprobiert werden. $1
ist der Dateiname.
Andere Versionverwendet den folgenden Befehl:
pdftohtml -stdout "$t" | parsehtml -