Jak wyświetla się mniej plików PDF?

52

Wypróbowałem kilka programów: pdftotext, pdf2txt.py, ... Wszystkie z nich mogą wyodrębniać tekst z plików PDF, ale ten, który robi lepszą robotę, jest dobry less: tekst z pliku PDF ma odpowiedni układ. Jak mniej to robi? Czy korzysta z jakiejś biblioteki, czy jest wbudowane przetwarzanie plików PDF?

Pytam, ponieważ chciałbym korzystać z tej funkcji programowo, bez konieczności uruchamiania mniejszej liczby programów zewnętrznych (robię Python).

Mój system to:

» 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
Dangonfast
źródło

Odpowiedzi:

63

Twoja dystrybucja prawdopodobnie używa popularnego lesspipe.shskryptu. Sprawdź LESSOPENzmienną środowiskową.

Ten skrypt istnieje w wielu odmianach. Patrzę na wersję Gentoo. W nim znajdziesz następujący wiersz:

*.ps|*.pdf) ps2ascii "$1" || pstotext "$1" || pdftotext "$1" ;;

Oznacza to, że wypróbuje te polecenia w wyświetlonej kolejności. $1to nazwa pliku.

Inna wersja używa następującego polecenia:

pdftohtml -stdout "$t" | parsehtml -
Daniel B.
źródło
15
Dzięki, okazuje się, że używapdftotext -layout $1 -
Dangonfast
@ jeckyll2hide Czy znalazłeś wytłumaczenie dla lepszych wyników za mniej?
vvy
@vvy Prawdopodobnie -layoutprzełącznik. ;)
Daniel B