Convierta un directorio de archivos JPEG en un solo documento PDF

242

Tengo muchos archivos JPEG en un directorio, y quiero convertirlos a PDF y concatenarlos juntos para hacer un solo documento.

¿Cómo se puede hacer esto?

Preferiría usar la línea de comando, ya que este proceso será más rápido.

velocidad del amor
fuente

Respuestas:

358

Desde el imagemagickpaquete, use el convertcomando:

convert *.jpg pictures.pdf

Obtendrá un único pdf que contiene todos los jpg en la carpeta actual.

Instalar IM con:

sudo apt-get install imagemagick

fuente: stackoverflow

Editar: tenga en cuenta que las imágenes estarán fuera de orden específico si no están numeradas. si tiene 10 o más, debe nombrarlos terminando filename01.jpg ... filename99.jpg etc. Los ceros iniciales son necesarios para realizar un pedido correcto. Si tiene 100 o más 001 ... 999.

rosch
fuente
1
Usar el comodín no funcionó para mí, tuve que usar la solución de @ Alex.
Eusebio
2
@Eusebius si el comodín no funciona para ti con la conversión, puedes usar un delineador comofor f in *.jpg; do convert "$f" "$f.pdf"; done; pdftk *.pdf cat output final.pdf
Elder Geek
1
GrphicMagicklos usuarios deben ejecutargm convert *.jpg pictures.pdf
michaelbn
Tal vez mis archivos jpg son demasiado grandes y numerosos, pero hacer eso casi de inmediato consumió tanta RAM que mi sistema de 16 GB comenzó a intercambiarse.
RonJohn
8
Tenga en cuenta que este método ahora puede provocar un not authorizederror; vea esta pregunta relacionada (y respuestas) .
Jani Uusitalo
31
convert `ls -1v` file.pdf
  • Esto enumerará un archivo por vez en un "orden natural" (1,2,3 ...) y procederá con la conversión.
Alex
fuente
1
Intenté esto y no funcionó para mí. numerosos errores indican que podría tener algo que ver con espacios en los nombres de archivo.
Élder Geek
55
Para ocuparse del problema de los espacios, primero realice un reemplazo de patrón: para ThisFile en * .jpg; hacer mv "$ ThisFile" "$ {ThisFile // / _}"> / dev / null 2> & 1; d
Simon Mattes
20

Me funcionó (¡PERO advertencia! Desactiva la compresión y el PDF resultante será grande):

convert page1.jpg page2.jpg +compress file.pdf

o incluso:

convert -rotate 90 page\*.jpg +compress file.pdf

Desde ubuntuforums.org, +compressayuda a que no se cuelgue. NOTA: la compresa + desactiva la compresión. La máquina en la que estaba trabajando en ese momento parecía colgarse "para siempre" (aunque no esperé una eternidad para descubrirlo) sin la opción + comprimir. ¡Su millaje puede variar bastante! RTFM en la opción imagemagick.org -compress , tal vez experimente con -compress <type> si tiene problemas lentos de compresión / bloqueo para averiguar qué funcionará para usted.

gaoithe
fuente
13
¡NO use la +compressopción con el convertcomando como se sugirió anteriormente! De hecho, deshabilita toda la compresión, dejándolo con un PDF 10 veces más grande que el JPEG original. Simplemente no especifique las opciones de compresión e convertirá con el formato de compresión de entrada (JPEG), que en este caso es la mejor opción de tamaño de archivo. Fuente: http://www.imagemagick.org/script/command-line-options.php#compress
Eso no es intuitivo! Gracias S Minddal. Eso funcionó para mí. Supongo que la máquina que estaba usando tenía un problema al hacer la compresión entonces. Ajustaré la respuesta.
Gaoithe
2
de modo $ converet *.jpg file.pdffuncionado bien con el tamaño de archivo más pequeño que con el +compressargumento
doctorado
18

Desafortunadamente, convertcambia la calidad de la imagen antes de "empaquetarla" en el PDF. Por lo tanto, para tener una pérdida mínima de calidad, es mejor poner el original jpgen el PDF, debe usarlo img2pdf.

Yo uso estos comandos:

  1. Este comando es hacer un pdfarchivo de cada jpgimagen sin pérdida de resolución o calidad:

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

  2. Este comando concatenará las pdfpáginas en un documento:

    pdftk * .pdf salida de gato combinado.pdf

  3. Y finalmente, agrego una capa de texto OCRed que no cambia la calidad del escaneo en los archivos PDF para que puedan buscarse:

    pypdfocr combine.pdf

    Una alternativa al uso pypdfocr:

    ocrmypdf combine.pdf combine_ocr.pdf

Eduard Florinescu
fuente
1
Gran método! La única desventaja sin compresión sería que el tamaño de archivo .pdf resultante será muy alto (es decir, un poco más grande que todas las fotos combinadas). ¡Pero vale la pena si el documento que está convirtiendo es realmente importante!
Gokul NC
1
Esto funcionó bien después de convertfallar con el "intento de realizar una operación no permitida por la política de seguridad 'PDF'".
Matthias Braun
12

Abra el archivo jpg o png con LibreOffice Writer y expórtelo como PDF.

Espero que esta sea una forma sencilla de exportar pdf.

usuario359154
fuente
¡Si! LibreOffice es la mejor manera de exportar archivos de imagen a PDF. Tenemos control total de la salida de PDF, incluido el diseño de la página, el cambio de tamaño de los archivos importados, los encabezados y pies de página opcionales y mucho más ... ¡Muchas gracias a user359154 por su inteligente sugerencia!
8

La siguiente solución también se basa en ImageMagick's convertpero es un poco más sofisticada porque:

  • Permite que todas las imágenes tengan diferentes dimensiones, manteniendo el tamaño de página de salida PDF igual (A4 en el ejemplo a continuación).
  • Centra las imágenes en la página PDF.
  • Le permite garantizar un espacio mínimo entre los bordes de la imagen y los bordes de la página PDF, para permitir imprimir el PDF sin problemas.
  • No cambia los datos de la imagen. (Por lo tanto, la calidad de la imagen no se ve afectada, el archivo PDF tiene aproximadamente el mismo tamaño de archivo que la imagen, y puede volver a extraer las imágenes originales más adelante pdfimages -j file.pdf img). Por el momento, esto solo funciona con PNG: vea el comentario de @dma_k a continuación .

Instrucciones:

  1. Use mi script de esta respuesta para convertir cada imagen en su propio archivo PDF de una página con un tamaño de página A4 y un borde del 5% alrededor.
  2. Concatene todos sus archivos PDF de una página con PDFtk de la siguiente manera:

    pdftk *.pdf cat output out.pdf
    
Tanius
fuente
2
Este comando muestra que (al menos con las versiones suministradas en Ubuntu 16.04) los datos de la imagen se ven afectados:convert some.jpg -format pdf -compress jpeg generated.pdf ; pdfimages -j generated.pdf generated.pdf ; diff -sq some.jpg generated.pdf-000.jpg
Stéphane Gourichon
2
Estaba jugando con GraphicsMagick y me di cuenta de que realiza la recompresión de imágenes . La calidad de la imagen JPEG resultante en la página PDF es mucho peor. Por lo tanto, en este momento, la forma más segura es agregar imágenes PNG: se insertan correctamente. Ver esta publicación también.
dma_k
-3

He usado http://convert-my-image.com/ Lo positivo que puedes proporcionar (el mismo sitio pero diferente página) un archivo de imágenes y concatenarlas al pdf común

Alen
fuente
3
Esta sugerencia tiene al menos tres problemas: (1) será lenta, debido a que sube las imágenes al sitio web y descarga el PDF resultante; (2) expone sus datos a quien administra ese sitio web, y a cualquiera que haya violado ese sitio web, y a cualquier persona en el cable; (3) no es una solución de línea de comandos.
sampablokuper