2010-11-20 31 views
6

¿Cómo puedo usar ambos ls y convertir para transformar todos los archivos de imágenes en un directorio a un pdf? También necesito poner los archivos en un cierto orden, por ejemplo, archivos como AA1.png, AA11.png deben respetar este orden lógico.Bash convertir a pdf

La actualización (ls) y (conversión) están disponibles, pero ¿cómo puedo usarlos juntos?

+0

Qué quiere decir archivos PDF separados o un único archivo PDF? – Orbling

+0

Necesito un solo pdf – danidacar

Respuesta

7

Convertir en un solo PDF se puede hacer en un solo comando:

convert -compress jpeg *.jpg my-jpegs.pdf 

recuerde incluir la bandera -compress jpeg, o Va a guardar las imágenes sin comprimir y dar como resultado una masiva PDF.

ImageMagick (a través de convert) requiere la instalación de Ghostscript (gs) para procesar archivos PDF, creo. Tenga cuidado con los problemas de memoria si agrega muchos archivos JPEG a la vez.

En cuanto a su orden lógica, puede usar ls en combinación con convert para obtener la lista ordenada.

Algo a lo largo de las líneas de:

convert -compress jpeg `ls *.png` my-jpegs.pdf 

Ver ls --help para las diversas opciones de clasificación disponibles.

+0

Buen consejo, pero el orden de clasificación es el problema. – danidacar

+0

Bien, he agregado más para su problema de clasificación. – Orbling

+0

El 'ls' en los backticks no está haciendo nada útil por sí mismo. Sin embargo, si agrega una opción de clasificación útil, podría estar justificado. – tripleee

0
for image in `ls *.png`; do 
    # call convert or whatever here 
    convert $image `basename $image .png`.pdf 
done 
+0

Necesito un solo archivo pdf con todas las imágenes. Ordenar por nombre (orden lógico image1.png, image2.png, ... image11.png) – danidacar

+1

El 'ls' en los backticks es un antipattern. 'para la imagen en * .png; do ... 'es a la vez más simple y más correcto. – tripleee

4

https://gitlab.mister-muffin.de/josch/img2pdf

En todas las soluciones propuestas que implican ImageMagick (es decir convert), los datos JPEG consigue completamente decodificada y recodificada. Esto da como resultado generation loss, así como el rendimiento "diez a cien" veces peor que img2pdf.

+0

No puedo ver una licencia en este código. ¿Lo escribiste tú mismo? ¿Es MIT, GPL, etc.? – Orbling

+0

No escribí eso. La dirección de correo electrónico de su autor está oculta en su test_comp.sh si desea contactarlo. –

+0

No particularmente, simplemente pensé que no se puede usar generalmente sin una licencia. Lo cual es una pena, ya que sin duda es útil. – Orbling

1

Si usted tiene una gran cantidad de archivos:

convert -limit memory 1 -limit map 1 *.jpg foo.pdf 

see here

o con compresión

convert -limit memory 1 -limit map 1 -compress jpeg -quality 85 *.jpg foo.pdf