Wie zeigt Less PDFs an?

Wie zeigt Less PDFs an?

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.shSkript. Überprüfen Sie die LESSOPENUmgebungsvariable.

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. $1ist der Dateiname.

Andere Versionverwendet den folgenden Befehl:

pdftohtml -stdout "$t" | parsehtml -

verwandte Informationen