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

242

J'ai beaucoup de fichiers JPEG dans un répertoire et je veux les convertir en PDF et les concaténer ensemble pour créer un seul document.

Comment cela peut-il être fait?

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

lovespeed
la source

Réponses:

358

Dans le imagemagickpackage, utilisez la convertcommande:

convert *.jpg pictures.pdf

Vous obtiendrez un seul fichier PDF contenant tous les jpg du dossier actuel.

Installez IM avec:

sudo apt-get install imagemagick

source: stackoverflow

Éditer: Notez que les images ne seront pas dans un ordre spécifique si elles ne sont pas numérotées. si vous en avez 10 ou plus, vous devez les nommer en terminant filename01.jpg ... filename99.jpg etc. Les zéros de gauche sont requis pour un ordre correct. Si vous avez 100 ou plus, 001 ... 999.

rosch
la source
1
Utiliser le joker ne fonctionnait pas pour moi, je devais utiliser la solution de @ Alex.
Eusebius
2
@ Eusebius si le joker ne fonctionne pas pour vous avec convert, vous pouvez utiliser un oneliner du genrefor f in *.jpg; do convert "$f" "$f.pdf"; done; pdftk *.pdf cat output final.pdf
Elder Geek
1
GrphicMagickles utilisateurs devraient courirgm convert *.jpg pictures.pdf
michaelbn
Peut-être que mes fichiers jpg sont trop volumineux et trop nombreux, mais cela a presque immédiatement consommé tellement de RAM que mon système de 16 Go a commencé à permuter.
RonJohn
8
Notez que cette méthode peut maintenant entraîner une not authorizederreur. voir cette question connexe (et les réponses) .
Jani Uusitalo
31
convert `ls -1v` file.pdf
  • Ce ls listera un fichier une fois dans un "ordre naturel" (1,2,3 ...) et procédera à la conversion.
Alex
la source
1
J'ai essayé cela et cela n'a pas fonctionné pour moi. de nombreuses erreurs indiquent qu'il pourrait avoir quelque chose à voir avec des espaces dans les noms de fichiers.
Elder Geek
5
Pour résoudre le problème des espaces, effectuez d’abord un remplacement de modèle: pour ThisFile in * .jpg; do mv "$ ThisFile" "$ {ThisFile // / _}"> / dev / null 2> & 1; d
Simon Mattes
20

A travaillé pour moi (MAIS, avertissement! Désactive la compression et le PDF résultant sera volumineux!):

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

ou même:

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

De ubuntuforums.org, le +compressaide à ne pas accrocher. NOTE: le + compresse désactive la compression. La machine sur laquelle je travaillais à l'époque semblait être suspendue «pour toujours» (je n'ai pas attendu longtemps pour le savoir) sans l'option + compress. Votre kilométrage peut varier un peu! RTFM sur imagemagick.org option -compress , essayez éventuellement -compress <type> si vous rencontrez des problèmes de compression lente / blocage pour trouver ce qui fonctionnera pour vous.

Gaoithe
la source
13
N'utilisez PAS l' +compressoption avec la convertcommande comme suggéré ci-dessus! En fait, il désactive toute compression, ce qui vous laisse un PDF 10 fois plus volumineux que le JPEG d'origine. Il suffit de ne pas spécifier les options de compression, et convertira avec le format de compression d'entrée (JPEG) qui, dans ce cas, est la meilleure option en termes de taille de fichier. Source: http://www.imagemagick.org/script/command-line-options.php#compress
Ce n'est pas intuitif! Merci S Minddal. Cela a fonctionné pour moi. Je suppose que la machine que j'utilisais a eu un problème de compression à ce moment-là. Je vais ajuster la réponse.
Gaoithe
2
donc $ converet *.jpg file.pdfbien travaillé avec une taille de fichier plus petite qu'avec un +compressargument
doctorat
18

Malheureusement, convertla qualité de l'image change avant de "compresser" celle-ci dans le PDF. Donc, pour avoir une perte de qualité minimale, il est préférable de mettre l'original jpgdans le PDF que vous devez utiliser img2pdf.

J'utilise ces commandes:

  1. Cette commande permet de créer un pdffichier à partir de chaque jpgimage sans perte de résolution ni de qualité:

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

  2. Cette commande va concaténer les pdfpages en un seul document:

    pdftk * .pdf sortie chat combinée.pdf

  3. Enfin, j’ajoute un calque de texte OCRed qui ne modifie pas la qualité de l’analyse dans les fichiers PDF, de sorte qu’il peut être interrogé:

    pypdfocr combiné.pdf

    Une alternative à l'utilisation de pypdfocr:

    ocrmypdf combine.pdf combine_ocr.pdf

Eduard Florinescu
la source
1
Super méthode! Le seul inconvénient, sans compression, serait que la taille du fichier .pdf résultant sera très élevée (c'est-à-dire légèrement plus grande que toutes les images combinées). Mais cela en vaut la peine si le document que vous convertissez est vraiment important!
Gokul NC
1
Cela a bien fonctionné après l' convertéchec de "tentative d'exécution d'une opération non autorisée par la politique de sécurité` PDF '' ".
Matthias Braun
12

Ouvrez un fichier jpg ou png avec LibreOffice Writer et exportez-le au format PDF.

J'espère que c'est un moyen simple d'exporter du pdf.

utilisateur359154
la source
Oui! LibreOffice est le meilleur moyen d’exporter des fichiers image au format PDF. Nous avons un contrôle total sur la sortie PDF, y compris la mise en page, le redimensionnement des fichiers importés, les en-têtes et les pieds de page facultatifs et plus encore ... Merci beaucoup à user359154 pour cette astucieuse suggestion!
8

La solution suivante s'appuie également sur celle d'ImageMagick convertmais est un peu plus sophistiquée car:

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

Instructions:

  1. Utilisez mon script à partir de cette réponse pour convertir chaque image en son propre fichier PDF d’une page avec un format de page A4 et une bordure de 5%.
  2. Concaténez tous vos fichiers PDF d'une page avec PDFtk comme suit:

    pdftk *.pdf cat output out.pdf
    
Tanius
la source
2
Cette commande montre que (au moins avec les versions fournies sur Ubuntu 16.04) les données d'image sont affectées: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
Je jouais avec GraphicsMagick et j'ai remarqué qu'il effectue une recompression d'image . La qualité de l’image JPEG obtenue sur une page PDF est bien pire. Donc, pour le moment, le moyen le plus sûr consiste à ajouter des images PNG - elles sont insérées correctement. Voir ce post aussi.
dma_k
-3

J'ai utilisé http://convert-my-image.com/ La chose positive que vous pouvez fournir (le même site mais une page différente) une archive d'images et les concaténer au pdf commun

Alen
la source
3
Cette suggestion a au moins trois problèmes: (1) elle sera lente en raison du téléchargement des images sur le site Web et du téléchargement du fichier PDF résultant; (2) il expose vos données à quiconque exploite ce site Web, ainsi qu'à toute personne susceptible d'avoir violé ce site Web, et à quiconque se trouvant sur le réseau; (3) ce n'est pas une solution de ligne de commande.
Sampablokuper