Formas de converter e combinar arquivos de imagem em um arquivo pdf?

6

Eu tenho cerca de 190 arquivos de imagem (png e jpg) em um diretório. Para mais informações, cada imagem tem 2500 x 3072 pixels e cerca de 500KB.

Eu uso o comando convert do ImageMagik para convertê-los e combiná-los em um arquivo pdf:

convert * my.pdf

São necessários 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 no meu /tmp (na verdade, na minha partição / ). Então eu tive que encontrar um HDD externo com abundante espaço livre, e definir a variável de ambiente TMPDIR para apontar para ele e, em seguida, conseguiu.

Gostaria de saber se existe algum outro software para converter e combinar as imagens em um arquivo PDF além de convert , de modo a eliminar a necessidade de um disco rígido externo? Ou é típico que tal conversão e combinação requeira uma quantidade similar de espaço temporário do 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
    
por Tim 15.11.2014 / 21:37

2 respostas

2

Talvez seja um pouco difícil, 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, em seguida, execute-o com pdflatex file . A composição é rápida (e você pode facilmente --- se você conhece o LaTeX --- mudar a forma e posição das imagens, adicionar legendas, etc ...)

O problema é que o arquivo normalmente é muito grande; Eu testei com 200 jpg de 500K + --- a corrida levou cerca de 7 segundos no meu i5 / 16G e deu um PDF de 800Mbyte. Eu estou tentando reduzir seu tamanho usando

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=lowres.pdf file.pdf 

... e tem funcionado 8 minutos, mas não usou muita memória RAM. Eu não posso comentar sobre a compressão porque gs é mais inteligente do que eu e descobri que eu estava usando a mesma imagem 200 vezes, então comprimi a coisa para um PDF de 50k ... o que claramente não é real.

    
por 15.11.2014 / 22:59
0

Infelizmente, convert altera a imagem antes para ter uma perda mínima de qualidade do original jpg você precisa usar img2pdf , eu uso este comando:

1) Isso transforma um arquivo pdf em cada jpg imagem sem perda de resolução ou qualidade:

ls -1 ./*jpg | xargs -L1 -I {} img2pdf {} -o {}.pdf

2) Isso para concatenar as páginas pdf em uma:

pdftk *.pdf cat output combined.pdf

3) E, por último, adiciono uma camada de texto com OCR que não altera a qualidade da verificação nos PDFs para que possam ser pesquisáveis:

pypdfocr combined.pdf  
    
por 13.01.2018 / 17:37