Gibt es Möglichkeiten zum Konvertieren und Kombinieren von Bilddateien in eine PDF-Datei?

Gibt es Möglichkeiten zum Konvertieren und Kombinieren von Bilddateien in eine PDF-Datei?

Ich habe etwa 190 Bilddateien (png und jpg) in einem Verzeichnis. Weitere Informationen: Jedes Bild hat 2500 x 3072 Pixel und ist etwa 500 KB groß.

convertUm sie zu konvertieren und in eine PDF-Datei zu kombinieren, verwende ich den Befehl von ImageMagik:

convert * my.pdf

Das Erstellen einer 80 MB großen PDF-Datei dauert etwa 10 GB (in der Spitze) und 4 Stunden. Ich konnte es zunächst nicht ausführen, weil ich nicht genügend freien Speicherplatz in meiner /tmp(eigentlich in meiner /Partition) hatte. Dann musste ich eine externe Festplatte mit reichlich freiem Speicherplatz finden und die Umgebungsvariable so einstellen, TMPDIRdass sie darauf verweist, und dann hat es geklappt.

Ich frage mich, ob es außer noch eine andere Software gibt, um die Bilder in eine PDF-Datei umzuwandeln und zu kombinieren convert, sodass keine externe Festplatte mehr nötig ist. Oder ist es üblich, dass eine solche Umwandlung und Kombination eine ähnliche Menge an temporärem Speicherplatz auf der Festplatte erfordert?

Weitere Informationen zu den Bilddateien, beispielsweise

$ exiftool 1.jpg 
ExifTool Version Number         : 8.60
File Name                       : 1.jpg
Directory                       : .
File Size                       : 453 kB
File Modification Date/Time     : 2014:11:15 13:41:55-05:00
File Permissions                : rwxrwx---
File Type                       : JPEG
MIME Type                       : image/jpeg
JFIF Version                    : 1.01
Resolution Unit                 : None
X Resolution                    : 1
Y Resolution                    : 1
Image Width                     : 2500
Image Height                    : 3072
Encoding Process                : Baseline DCT, Huffman coding
Bits Per Sample                 : 8
Color Components                : 3
Y Cb Cr Sub Sampling            : YCbCr4:2:0 (2 2)
Image Size                      : 2500x3072

$ exiftool 2.png 
ExifTool Version Number         : 8.60
File Name                       : 2.png
Directory                       : .
File Size                       : 310 kB
File Modification Date/Time     : 2014:11:15 13:50:58-05:00
File Permissions                : rwxrwx---
File Type                       : PNG
MIME Type                       : image/png
Image Width                     : 2500
Image Height                    : 3072
Bit Depth                       : 8
Color Type                      : Grayscale
Compression                     : Deflate/Inflate
Filter                          : Adaptive
Interlace                       : Noninterlaced
Pixels Per Unit X               : 11929
Pixels Per Unit Y               : 11929
Pixel Units                     : Meters
Image Size                      : 2500x3072

Antwort1

Vielleicht ist das weit hergeholt, aber ich verwende pdflatex. Ich erstelle eine Datei (mit einem Skript oder was auch immer) im Stil:

\documentclass{report}
\usepackage{graphicx}
\begin{document}
\includegraphics[width=0.95\textwidth]{img000}\par
\includegraphics[width=0.95\textwidth]{img001}\par

[...]

\includegraphics[width=0.95\textwidth]{img200}\par
\end{document}

Und führen Sie es dann mit aus pdflatex file. Die Komposition geht schnell (und Sie können – wenn Sie LaTeX kennen – problemlos Form und Position der Bilder ändern, Bildunterschriften hinzufügen usw.)

Das Problem ist, dass die Datei normalerweise sehr groß ist. Ich habe sie mit 200 JPGs von 500 KB+ getestet. Der Test dauerte auf meinem i5/16G RAM etwa 7 Sekunden und ergab ein 800 MB großes PDF. Ich versuche, die Größe zu reduzieren, indem ich

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=lowres.pdf file.pdf 

...und es läuft seit 8 Minuten, hat aber nicht viel RAM verbraucht. Zur Komprimierung kann ich nichts sagen, weil gser schlauer ist als ich und festgestellt hat, dass ich dasselbe Bild 200 Mal verwendet habe, also hat er das Ganze auf ein 50-KB-PDF komprimiert ... was eindeutig nicht real ist.

Antwort2

Bedauerlicherweiseconvertändert das Bild vorher, damit der Qualitätsverlust gegenüber dem Original so gering wie jpgmöglich ist img2pdf. Ich verwende diese Befehle:

Eine kürzere Einzeiler-Lösung, die auch nur img2pdfFeatures verwendet

  1. PDF erstellen

    img2pdf *.jp* --output combined.pdf

  2. OCR im Ausgabe-PDF

    ocrmypdf combined.pdf combined_ocr.pdf

Dies waren die ursprünglichen Befehle, allerdings mit mehr Befehlen und mehr erforderlichen Werkzeugen:

1) So erstellen Sie pdfaus jedem jpgBild eine Datei, ohne dass Auflösung oder Qualität verloren gehen:

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

2) So fügen Sie die pdfSeiten zu einer zusammen:

pdftk *.pdf cat output combined.pdf

3) Und zuletzt füge ich eine OCR-Textebene hinzu, die die Qualität des Scans in den PDFs nicht verändert, sodass diese durchsuchbar sind:

pypdfocr combined.pdf  

verwandte Informationen