
Tengo alrededor de 190 archivos de imagen (png y jpg) en un directorio. Para más información, cada imagen tiene 2500 x 3072 píxeles y unos 500 KB.
Utilizo el comando convert
de ImageMagik para convertirlos y combinarlos en un archivo pdf:
convert * my.pdf
Se necesitan unos 10 GB (en su punto máximo) y 4 horas para crear un archivo pdf de 80 MB.
En primer lugar, no pude ejecutarlo porque no tengo suficiente espacio libre en mi /tmp
(en realidad, en mi /
partición). Luego tuve que encontrar un disco duro externo con abundante espacio libre y configurar la variable de entorno TMPDIR
para que apuntara a él, y luego lo logré.
Me pregunto si existe algún otro software para convertir y combinar las imágenes en un archivo pdf además convert
, para eliminar la necesidad de un disco duro externo. ¿O es típico que dicha conversión y combinación requiera una cantidad similar de espacio temporal del disco?
Más información de los archivos de imagen, por ejemplo,
$ 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
Respuesta1
Tal vez sea una posibilidad remota, pero lo uso pdflatex
. Creo un archivo (con script o lo que sea) del 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}
Y luego ejecútelo con pdflatex file
. La composición es rápida (y puedes fácilmente, si conoces LaTeX, cambiar la forma y la posición de las imágenes, agregar títulos, etc.)
El problema es que el archivo normalmente es muy grande; Probé con 200 jpg de 500K+. La ejecución tomó alrededor de 7 segundos en mi ram i5/16G y arrojó un PDF de 800Mbytes. Estoy tratando de reducir su tamaño usando
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=lowres.pdf file.pdf
...y ha estado funcionando durante 8 minutos, pero no ha utilizado mucha RAM. No puedo comentar sobre la compresión porque gs
es más inteligente que yo y descubrió que estaba usando la misma imagen 200 veces, así que la comprimí en un PDF de 50k... lo cual claramente no es real.
Respuesta2
Desafortunadamenteconvert
cambia la imagen antes para tener una pérdida mínima de calidad del original jpg
que necesita usar img2pdf
, yo uso estos comandos:
Una solución de una sola línea más corta que también utiliza solo img2pdf
funciones
Hacer PDF
img2pdf *.jp* --output combined.pdf
OCR el PDF de salida
ocrmypdf combined.pdf combined_ocr.pdf
Estos fueron los comandos originales con más comandos y más herramientas necesarias:
1) Esto para crear un pdf
archivo con cada jpg
imagen sin pérdida de resolución ni calidad:
ls -1 ./*jpg | xargs -L1 -I {} img2pdf {} -o {}.pdf
2) Esto para concatenar las pdf
páginas en una sola:
pdftk *.pdf cat output combined.pdf
3) Y por último agrego una capa de texto con OCR que no cambia la calidad del escaneo en los archivos PDF para que se puedan buscar:
pypdfocr combined.pdf