
Tenho cerca de 190 arquivos de imagem (png e jpg) em um diretório. Para mais informações, cada imagem possui 2.500 x 3.072 pixels e cerca de 500 KB.
Eu uso o comando convert
do ImageMagik para convertê-los e combiná-los em um arquivo pdf:
convert * my.pdf
Demora cerca de 10 GB (no pico) e 4 horas para criar um arquivo PDF de 80 MB.
Em primeiro lugar, não consegui executá-lo porque não tenho espaço livre suficiente na minha /tmp
(na verdade, na minha /
partição). Então tive que encontrar um disco rígido externo com espaço livre abundante e definir a variável de ambiente TMPDIR
para apontar para ele, e então consegui.
Gostaria de saber se existe algum outro software para converter e combinar as imagens em um arquivo pdf além do convert
, de forma a eliminar a necessidade de um disco rígido externo? Ou é típico que tal conversão e combinação exijam uma quantidade semelhante de espaço temporário no disco?
Mais informações dos arquivos de imagem, por exemplo,
$ exiftool 1.jpg
ExifTool Version Number : 8.60
File Name : 1.jpg
Directory : .
File Size : 453 kB
File Modification Date/Time : 2014:11:15 13:41:55-05:00
File Permissions : rwxrwx---
File Type : JPEG
MIME Type : image/jpeg
JFIF Version : 1.01
Resolution Unit : None
X Resolution : 1
Y Resolution : 1
Image Width : 2500
Image Height : 3072
Encoding Process : Baseline DCT, Huffman coding
Bits Per Sample : 8
Color Components : 3
Y Cb Cr Sub Sampling : YCbCr4:2:0 (2 2)
Image Size : 2500x3072
$ exiftool 2.png
ExifTool Version Number : 8.60
File Name : 2.png
Directory : .
File Size : 310 kB
File Modification Date/Time : 2014:11:15 13:50:58-05:00
File Permissions : rwxrwx---
File Type : PNG
MIME Type : image/png
Image Width : 2500
Image Height : 3072
Bit Depth : 8
Color Type : Grayscale
Compression : Deflate/Inflate
Filter : Adaptive
Interlace : Noninterlaced
Pixels Per Unit X : 11929
Pixels Per Unit Y : 11929
Pixel Units : Meters
Image Size : 2500x3072
Responder1
Talvez seja um tiro no escuro, mas eu uso pdflatex
. Eu crio um arquivo (com um script ou qualquer outro) do estilo:
\documentclass{report}
\usepackage{graphicx}
\begin{document}
\includegraphics[width=0.95\textwidth]{img000}\par
\includegraphics[width=0.95\textwidth]{img001}\par
[...]
\includegraphics[width=0.95\textwidth]{img200}\par
\end{document}
E então execute-o com pdflatex file
. A composição é rápida (e você pode facilmente --- se você conhece LaTeX --- alterar a forma e a posição das imagens, adicionar legendas, etc...)
O problema é que o arquivo normalmente é muito grande; Testei com 200 jpg de 500K+ --- a execução demorou cerca de 7 segundos na minha memória RAM i5/16G e gerou um PDF de 800Mbyte. Estou tentando reduzir seu tamanho usando
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=lowres.pdf file.pdf
...e está funcionando há 8 minutos, mas não usou muita RAM. Não posso comentar sobre a compactação porque gs
é mais inteligente do que eu e descobri que estava usando a mesma imagem 200 vezes, então comprimi a coisa em um PDF de 50k... o que claramente não é real.
Responder2
Infelizmenteconvert
altera a imagem antes para ter a mínima perda de qualidade do original que jpg
você precisa usar img2pdf
, eu uso estes comandos:
Uma solução mais curta de um liner também usando apenas img2pdf
recursos
Criar PDF
img2pdf *.jp* --output combined.pdf
OCR do PDF de saída
ocrmypdf combined.pdf combined_ocr.pdf
Estes foram os comandos originais com mais comandos e mais ferramentas necessárias:
1) Isso para criar um pdf
arquivo de cada jpg
imagem sem perda de resolução ou qualidade:
ls -1 ./*jpg | xargs -L1 -I {} img2pdf {} -o {}.pdf
2) Isso para concatenar as pdf
páginas em uma:
pdftk *.pdf cat output combined.pdf
3) E por último adiciono uma camada de texto OCR que não altera a qualidade da digitalização nos PDFs para que possam ser pesquisados:
pypdfocr combined.pdf