Konvertieren Sie ein Verzeichnis mit JPEG-Dateien in ein einziges PDF-Dokument

242

Ich habe viele JPEG-Dateien in einem Verzeichnis und möchte sie in PDF konvertieren und zu einem einzigen Dokument zusammenfügen.

Wie geht das?

Ich würde es vorziehen, die Befehlszeile zu verwenden, da dieser Prozess schneller sein wird.

Liebesgeschwindigkeit
quelle

Antworten:

358

imagemagickVerwenden Sie aus dem Paket den convertBefehl:

convert *.jpg pictures.pdf

Sie erhalten ein einzelnes PDF mit allen jpg im aktuellen Ordner.

Installieren Sie IM mit:

sudo apt-get install imagemagick

Quelle: Stapelüberlauf

Bearbeiten: Beachten Sie, dass Bilder in einer anderen Reihenfolge angezeigt werden, wenn sie nicht nummeriert sind. Wenn Sie 10 oder mehr haben, müssen Sie diese mit der Endung filename01.jpg ... filename99.jpg usw. benennen. Die führenden Nullen sind für die richtige Reihenfolge erforderlich. Wenn Sie 100 oder mehr 001 ... 999 haben.

rosch
quelle
1
Der Joker hat bei mir nicht funktioniert, ich musste die @ Alex-Lösung verwenden.
Eusebius
2
@Eusebius Wenn der Platzhalter für Sie mit convert nicht funktioniert, können Sie einen Oneliner wiefor f in *.jpg; do convert "$f" "$f.pdf"; done; pdftk *.pdf cat output final.pdf
Elder Geek
1
GrphicMagickBenutzer sollten laufengm convert *.jpg pictures.pdf
Michaelbn
Vielleicht sind meine JPG-Dateien zu groß und zu zahlreich, aber dabei wurde fast sofort so viel RAM verbraucht, dass mein 16-GB-System zu tauschen begann.
RonJohn
8
Beachten Sie, dass diese Methode jetzt möglicherweise zu einem not authorizedFehler führt. Siehe diese verwandte Frage (und Antworten) .
Jani Uusitalo
31
convert `ls -1v` file.pdf
  • Hiermit wird jeweils eine Datei in einer "natürlichen Reihenfolge" (1,2,3 ...) aufgelistet und die Konvertierung fortgesetzt.
Alex
quelle
1
Ich habe es versucht und es hat bei mir nicht funktioniert. Zahlreiche Fehler weisen darauf hin, dass dies möglicherweise mit Leerzeichen in den Dateinamen zu tun hat.
Elder Geek
5
Führen Sie zuerst einen Musteraustausch durch, um das Leerzeichenproblem zu beheben: for ThisFile in * .jpg; mache mv "$ ThisFile" "$ {ThisFile // / _}"> / dev / null 2> & 1; d
Simon Mattes
20

Arbeitete für mich (ABER Warnung! Deaktiviert die Komprimierung und das resultierende PDF wird groß sein!):

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

oder auch:

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

Von ubuntuforums.org +compresshilft das dabei, nicht zu hängen. HINWEIS: Mit der Option + Komprimieren wird die Komprimierung deaktiviert. Die Maschine, an der ich zu der Zeit arbeitete, schien "für immer" zu hängen (ich habe jedoch nicht für immer gewartet, um es herauszufinden), ohne die Option "+ Komprimieren". Ihr Kilometerstand kann ziemlich unterschiedlich sein! RTFM auf imagemagick.org Option -compress , experimentieren Sie vielleicht mit -compress <type>, wenn Sie langsame Komprimierungs- / Hängeprobleme haben, um herauszufinden, was für Sie funktionieren wird.

Gaoithe
quelle
13
Verwenden Sie die +compressOption NICHT mit dem convertoben vorgeschlagenen Befehl! Tatsächlich wird die gesamte Komprimierung deaktiviert, sodass Sie ein PDF erhalten, das zehnmal größer als das ursprüngliche JPEG ist. Geben Sie nur keine Komprimierungsoptionen an und verwenden convertSie das JPEG-Format (Input Compression Format), das in diesem Fall die beste Option für die Dateigröße ist. Quelle: http://www.imagemagick.org/script/command-line-options.php#compress
Das ist nicht intuitiv! Vielen Dank S Minddal. Das hat bei mir funktioniert. Ich nehme an, dass die Maschine, die ich benutzte, damals ein Problem mit der Komprimierung hatte. Ich werde die Antwort anpassen.
Gaoithe
2
so $ converet *.jpg file.pdffunktionierte gut mit kleinerer Dateigröße als mit +compressArgument
Doktorat
18

Leider convertändert sich die Bildqualität vor dem "Packen" in das PDF. Um einen minimalen Qualitätsverlust zu erzielen, ist es besser, das Original jpgin die PDF-Datei einzufügen, die Sie verwenden müssen img2pdf.

Ich benutze diese Befehle:

  1. Mit diesem Befehl wird pdfaus jedem jpgBild eine Datei erstellt, ohne dass Auflösung oder Qualität verloren gehen:

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

  2. Dieser Befehl verknüpft die pdfSeiten zu einem Dokument:

    pdftk * .pdf cat output combined.pdf

  3. Und zum Schluss füge ich eine OCR-Textebene hinzu, die die Qualität des Scans in den PDFs nicht ändert, sodass sie durchsuchbar sind:

    pypdfocr kombiniert.pdf

    Eine Alternative zur Verwendung von pypdfocr:

    ocrmypdf kombiniert.pdf kombiniert_ocr.pdf

Eduard Florinescu
quelle
1
Großartige Methode! Der einzige Nachteil ohne Komprimierung wäre, dass die resultierende PDF-Dateigröße sehr hoch ist (das heißt, etwas größer als alle Bilder zusammen). Aber es lohnt sich, wenn das zu konvertierende Dokument wirklich wichtig ist!
Gokul NC
1
Dies funktionierte einwandfrei, nachdem der convertVersuch fehlgeschlagen war, einen Vorgang auszuführen, der in der Sicherheitsrichtlinie "PDF" nicht zulässig ist.
Matthias Braun
12

Öffnen Sie die JPG- oder PNG-Datei mit LibreOffice Writer und exportieren Sie sie als PDF.

Ich hoffe, das ist eine einfache Möglichkeit, PDF zu exportieren.

user359154
quelle
Ja! LibreOffice ist der beste Weg, um Bilddateien als PDF zu exportieren. Wir haben die volle Kontrolle über die PDF-Ausgabe, einschließlich des Seitenlayouts, der Größenänderung importierter Dateien, optionaler Kopf- und Fußzeilen und mehr ... Vielen Dank an user359154 für den cleveren Vorschlag!
8

Die folgende Lösung basiert ebenfalls auf ImageMagick convert, ist jedoch etwas ausgefeilter, weil:

  • Alle Bilder können unterschiedliche Abmessungen haben, während die Größe der PDF-Ausgabeseite gleich bleibt (A4 im folgenden Beispiel).
  • Die Bilder werden auf der PDF-Seite zentriert.
  • Damit können Sie einen Mindestabstand zwischen Bildrändern und PDF-Seitenrändern gewährleisten, um das PDF problemlos drucken zu können.
  • Die Bilddaten werden nicht geändert. (Damit die Bildqualität nicht beeinträchtigt wird, hat die PDF-Datei ungefähr die gleiche Dateigröße wie das Bild und Sie können die Originalbilder später mit erneut extrahieren pdfimages -j file.pdf img.) Derzeit funktioniert dies nur mit PNG - siehe den Kommentar von @dma_k unten .

Anleitung:

  1. Verwenden Sie mein Skript aus dieser Antwort , um jedes Bild in eine eigene einseitige PDF-Datei mit A4-Seitengröße und 5% umlaufendem Rand zu konvertieren.
  2. Verknüpfen Sie all Ihre einseitigen PDF-Dateien mit PDFtk wie folgt:

    pdftk *.pdf cat output out.pdf
    
Tanius
quelle
2
Dieser Befehl zeigt , dass (zumindest bei den Versionen auf Ubuntu 16.04 geliefert) Bilddaten sind betroffen: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
Ich habe mit GraphicsMagick gespielt und festgestellt, dass es eine Neukomprimierung von Bildern durchführt . Die Qualität des resultierenden JPEG-Bildes auf der PDF-Seite ist viel schlechter. Im Moment ist es also am sichersten, PNG-Bilder hinzuzufügen - sie werden korrekt eingefügt. Siehe auch diesen Beitrag .
dma_k
-3

Ich habe http://convert-my-image.com/ verwendet. Das Positive ist, dass Sie (auf derselben Site, aber auf einer anderen Seite) ein Archiv von Bildern bereitstellen und diese mit dem gemeinsamen PDF verknüpfen können

Alen
quelle
3
Dieser Vorschlag weist mindestens drei Probleme auf: (1) Er ist langsam, da die Bilder auf die Website hochgeladen und das resultierende PDF heruntergeladen werden. (2) Ihre Daten werden an jeden weitergegeben, der diese Website betreibt, und an jeden, der gegen diese Website verstoßen hat, und an jeden, der sich in der Leitung befindet. (3) Es ist keine Befehlszeilenlösung.
Sampablokuper