Como menos exibe PDFs?

52

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

Eu estou perguntando porque eu gostaria de usar esta funcionalidade programaticamente, sem necessariamente ter que executar 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
    
por dangonfast 09.06.2015 / 21:53

1 resposta

62

Sua distribuição provavelmente está usando o popular script lesspipe.sh . Verifique a variável de ambiente LESSOPEN .

Este script existe em muitas variações. Estou olhando para 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ão usa o seguinte comando:

pdftohtml -stdout "$t" | parsehtml -
    
por 09.06.2015 / 22:05

Tags