Como faço o download de um PDF e, em seguida, emito um trecho de texto?

0

Minha conta de água da cidade é enviada por e-mail todos os meses como um link para o PDF atual hospedado em seu servidor. Por isso, posso facilmente descarregar este PDF sempre que quiser. Como faço para pegar esse PDF e extrair o saldo da minha conta? E-mail, ou mensagens de texto ou algo assim.

    
por ThatChrisGuy 21.01.2015 / 18:14

2 respostas

1

O código varia dependendo dos detalhes, mas a abordagem geral seria:

  • Faça login no site (?)
  • Faça o download da página com o link para o arquivo usando wget ou curl
  • Obtenha o link para o pdf da página
  • Faça o download do arquivo usando wget ou curl
  • Extraia o texto do pdf com pdftotext do poppler-utils ou similar
  • Use grep ou mais para obter os dados desejados do resultado do texto

A parte mais complicada seria o processo de login, se necessário.

Ao comentar, você não precisa fazer login e ter um URL fixo, o que simplifica isso. Podemos baixar o PDF e usar o conteúdo de texto diretamente para extrair os dados. Abaixo está um exemplo para extrair uma linha de um arquivo pdf de amostra. Essa linha contém a palavra ghostview e um número de versão, que pode ser usado como valor de exemplo.

$ u='http://www.wave.org.au/jupgrade/images/sample.pdf'
$ curl -s "$u" | pdftotext - - | grep 'ghostscript '
• ghostscript ≥ 5.10 (for example from Red Hat Contrib) and ghostview

O próximo passo poderia ser extrair o valor numérico simples.

    
por 21.01.2015 / 18:24
0

Talvez seja possível usar pdftotext :

$ pdftotext -layout transaction.pdf - | grep -C1 amount
                 19876.0
amount paid

O programa faz parte do pacote poppler-utils , que pode ser instalado usando:

sudo apt-get install poppler-utils

A opção -layout é usada para fazer com que pdftotext adira ao layout do PDF da melhor forma possível (caso contrário, o amount paid no layout da tabela do meu PDF estará muito longe da quantidade na forma de texto).

    
por 21.01.2015 / 18:23