Diário de Bordo Mudanças Recentes www.dedalu.art.brTagsRSS RSS

ScanToPDF

Tenho aqui em casa um scanner da HP equipado com ADF (alimentador automático de documentos). Resolvi pesquisar uma maneira prática de converter rapidamente várias páginas escaneadas em PDF, sem sair do MeuLinux.

Uma solução que encontrei foi o gscan2pdf.

Mas, quando estou com preguiça de usar o mouse, uso alguns comandos no shell ou meu script hscantopdf.sh

hscantopdf

Escaneia documento com múltiplas páginas e converte para PDF.

Requisitos

Todos, exceto talvez o unpaper, você encontra na sua distribuição.

Opções

'''hscantopdf''' [OPÇÕES]

[-h | --help]
Mostra a ajuda.
[-v | --version]
Mostra a versão atual.

Omita as opções abaixo para usar o modo interativo:

[-a | --adf]
seleciona o alimentador automático (ADF) no scanimage.
[-ad | --adfduplex]
seleciona o ADF em modo frente e verso (Duplex) no scanimage. ;; O modo ADF Duplex deve ser suportado pelo scanner e pelo driver.
[-aed | --adfemulduplex]
emula o modo ADF Duplex, pedindo para realimentar o ADF.
[-c | --corte] GEOMETRIA | 0
seleciona a área a ser cortada (abra uma das imagens num programa gráfico para definir).
GEOMETRIA
LARGURAxALTURA[+-]X[+-]Y (p.ex. 1654x2339+0+0 é a geometria do formato A4 em 200dpi).
0
desativa o corte.
[-r | --rotacao] ÂNGULO | 0
rotaciona o documento de acordo com o grau; para a direita, valor positivo; para a esquerda, negativo (p.ex. 90, -90).
0
desativa a rotação.
[-l | --layout] 1|2
Informa se há uma ou duas páginas por folha.
1
uma página por folha.
2
duas páginas por folha (cada página original gerará duas novas).

Funcionamento

  1. Escaneia as imagens usando o comando scanimage
    1. as páginas são salvas em seqüência, no formato pgm (cinza), como scan_00001.pgm, scan_00002.pgm etc.
  2. Corta e rotaciona as páginas escaneadas usando o comando convert
    1. as páginas ajustadas são salvas como corte_00001.pgm, corte_00002.pgm etc.
  3. Ajusta as páginas, usando o comando unpage
    1. as páginas ajustadas são salvas como unpage_00001.pgm, unpage_00002.pgm etc.;
    2. caso a opção --layout for 2, então cada página corte_ dará origem a duas páginas unpage_ (corte_00001.pgm → unpage_00001.pgm, unpage_00002.pgm; corte_00002.pgm → unpage_00003.pgm, unpage_00004.pgm etc.)
  4. Converte tudo para .tif usando o comando pnmtotiff
    1. as páginas convertidas são salvas como pagina_00001.tif, pagina_00002.tif etc.
  5. Une todas as paginas_*.tif usando o comando tiffcp
    1. todas as páginas reunidas formam o arquivo todas_as_paginas.tif.
  6. Converte todas_as_paginas.tif para pdf
    1. o resultado final é todas_as_paginas.pdf.

É um script bem sujo, cria e deixa para trás muitos arquivos. Deixei assim pois me permite retomar o processo em qualquer ponto, manualmente. Futuras versões do script automatizarão essa retomada.

Download