Como less exibe PDFs?

Como less exibe PDFs?

Eu tentei vários programas: pdftotext, pdf2txt.py, ... Todos eles podem extrair texto de PDFs, mas aquele que está fazendo o melhor trabalho é o bom e velho less: o texto do PDF tem um layout adequado. Como menos está fazendo isso? Está usando alguma biblioteca ou o processamento de PDF está integrado?

Estou perguntando porque gostaria de utilizar esta funcionalidade de forma programática, sem necessariamente ter que rodar menos como um programa externo (estou fazendo python).

Meu sistema é:

» 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

Responder1

Sua distribuição provavelmente está usando o lesspipe.shscript popular. Verifique a LESSOPENvariável de ambiente.

Este script existe em muitas variações. Estou olhando a versão do Gentoo. Nele você encontrará a seguinte linha:

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

Isso significa que ele tentará esses comandos na ordem exibida. $1é o nome do arquivo.

Outra versãousa o seguinte comando:

pdftohtml -stdout "$t" | parsehtml -

informação relacionada