¿Cómo puedo convertir una serie de imágenes a un PDF desde la línea de comandos en Linux? [cerrado]

215

Tengo un servidor de escaneo que escribí en cgi / bash y quiero poder convertir un montón de imágenes (todas en una carpeta) a un pdf desde la línea de comandos. ¿Cómo se puede hacer eso?

Jakob Weisblat
fuente
Consulte también ¿Cómo generar un PDF a partir de una serie de imágenes? en superusuario.
zrajm
77
Use img2pdf , no ImageMagick. ImageMagick decodifica el JPEG, lo que resulta en una pérdida de generación y es 10–100 veces más lento que img2pdf.
Robert Fleming
1
sudo apt-get install gscan2pdf Para un uso simple y fácil.
M Haziq
1
img2pdf $(find . -iname '*.jpg' | sort -V) -o ./document.pdfle dará document.pdftodas las imágenes con extensión jpg o JPG en el directorio actual: una imagen por página. document.pdftendrá todas las imágenes ordenadas como páginas de forma natural ( -Vopción para sort), por lo que no es necesario agregar ceros al numerar los archivos de imagen.
Jimmix

Respuestas:

411

Usando imagemagick , puedes probar:

convert page.png page.pdf

O para múltiples imágenes:

convert page*.png mydoc.pdf
Marvin Pinto
fuente
77
¿Qué pasa si la página * .png no ordena las imágenes de la manera que desea? por ejemplo, page_1.png, page_2.png ... page_10.png -> page_10 aparecerá antes de page_1
vcarel
38
Para ordenar los archivos, puede usar:ls page*.png | sort -n | tr '\n' ' ' | sed 's/$/\ mydoc.pdf/' | xargs convert
GaloisPlusPlus
26
Para su información, casi nunca necesita usar lsnada aparte de mostrar archivos ... es decir, no analice su salida. findEs una herramienta mucho más adecuada. Aquí hay un ejemplo convert $(find -maxdepth 1 -type f -name 'page*.png' | sort -n | paste -sd\ ) output.pdf. Tenga en cuenta que el comando antes mencionado no funcionará si sus nombres de ruta contienen espacios. La adición de personajes que deben escaparse hace las cosas un poco más complicadas.
Seis
20
Esto es simple y funciona muy bien, ¡gracias! Para evitar generar grandes archivos PDF, use algo comoconvert -compress jpeg -quality 85 *.png out.pdf
jlh
13
ImageMagick decodifica el JPEG, lo que resulta en una pérdida de generación . Use img2pdf en su lugar; También es 10–100 veces más rápido.
Robert Fleming