352 votes

Convertir un répertoire de fichiers JPEG en un seul document PDF

J'ai de nombreux fichiers JPEG dans un répertoire, et je veux les convertir en PDF et les concaténer pour en faire un seul document.

Comment cela peut-il être fait ?

Je préfère utiliser la ligne de commande, car ce processus sera plus rapide.

7voto

tanius Points 5309

La solution suivante s'appuie également sur l'outil ImageMagick's convert mais est un peu plus sophistiqué car :

  • Il permet à toutes les images d'avoir des dimensions différentes, tout en gardant la même taille de page PDF de sortie (A4 dans l'exemple ci-dessous).
  • Il centre les images sur la page du PDF.
  • Il vous permet de garantir un espace minimum entre les bordures d'image et les bordures de page du PDF, afin de permettre l'impression du PDF sans problème.
  • Il ne modifie pas les données de l'image. (Ainsi, la qualité de l'image n'est pas affectée, le fichier PDF a à peu près la même taille que l'image, et vous pouvez ré-extraire les images originales plus tard avec pdfimages -j file.pdf img .) Pour l'instant, cela ne fonctionne qu'avec les PNG - voir le commentaire de @dma_k ci-dessous.

Instructions :

  1. Utilisez mon script de cette réponse pour convertir chaque image en son propre fichier PDF d'une page au format A4 avec une bordure de 5 % tout autour.
  2. Concaténation de tous vos fichiers PDF d'une page avec PDFtk comme suit :

    pdftk *.pdf cat output out.pdf

0voto

Paul Williams Points 7390

Bien que convert fasse le travail, il essaie d'ouvrir tous les fichiers sources ensemble et si vous avez beaucoup de fichiers et que vous n'avez pas une énorme quantité de RAM, vous pouvez l'épuiser.

Comme alternative, vous pouvez exécuter les commandes suivantes dans un terminal tout en étant dans le dossier où se trouvent les fichiers jpg.

ls *.jpg | xargs -I% img2pdf -o %.pdf % 

Cela permet de convertir chaque image en un pdf d'une seule page, une par une, sans surcharger le système. Ensuite :

pdfunite *.pdf output.pdf && rm *.jpg.pdf 

Cela permet de fusionner les pdf en un seul et de supprimer les pages uniques.

0voto

jaga-matrix Points 131

Utilisation de img2pdf vous pouvez le faire.
Mais parfois vous pouvez avoir besoin que vos images soient converties en document dans un ordre par timestamp ou par taille ou par nom.Pour rendre cela possible ce script fait ce travail.

ls -trQ | tr '\n' ' ' | sed 's/$/\ --output\ mydoc.pdf/' | xargs img2pdf

À la place de mydoc.pdf, entrez le nom du fichier de sortie que vous souhaitez.
Option de ls commande( au lieu de -tr utilisez-les en fonction de vos besoins)

  • -S trier par taille de fichier, le plus grand en premier
  • -t trier par temps de modification, le plus récent en premier
  • -X trier par ordre alphabétique par extension d'entrée
  • -r dans l'ordre inverse lors du tri

0voto

nojevive Points 1030

C'est humble - mais la taille du fichier peut exploser - pour éviter d'exploser vous pouvez faire ces étapes :

a) D'abord vous devez exporter avec "gimp" les fichiers *.jpeg en fichiers *.jpg. (jpeg est le format Apple - jpeg et jpg ne sont PAS les mêmes !). Le fichier jpg aura besoin d'un petit passepartout blanc ou noir (=frame).

b) Avec Android et l'application "photocompress" je compresse les fichiers jpg à taille inférieure à 300 KBytes chacun.

c) puis de retour sur le bureau d'Ubuntu, vous pouvez éditer ces fichiers avec Libre-Office et créer un pdf-map avec eux.

Quelqu'un sait-il comment cela fonctionne de a) à c) simplement en terminal ?

L'effet secondaire de ceci est qu'il peut arriver, à cause d'une taille d'octet correcte le destinataire avec un mauvais $mickrosaft a alors des affiches, mais ce n'est pas votre faute.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X