如何将图像文件转换并合并为 pdf 文件?

如何将图像文件转换并合并为 pdf 文件?

我的目录中有大约 190 个图像文件(png 和 jpg)。有关详细信息,每个图像都有 2500 x 3072 像素,大约 500KB。

我使用 ImageMagik 中的命令convert将它们转换并组合成 pdf 文件:

convert * my.pdf

创建 80MB 的 pdf 文件大约需要 10GB(高峰时)和 4 小时。 /tmp我首先无法运行它,因为我的(实际上是我的/分区中)没有足够的可用空间。然后我必须找到一个具有充足可用空间的外部硬盘,并将环境变量设置TMPDIR为指向它,然后就成功了。

我想知道除了 pdf 之外,是否还有其他软件可以将图像转换并合并为 pdf 文件convert,从而无需外接硬盘?或者这种转换和组合是否通常需要磁盘上类似数量的临时空间?

图像文件的更多信息,例如,

$ 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

答案1

也许是一个远景,但我使用pdflatex.我创建一个以下样式的文件(带有脚本或其他内容):

\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}

然后用 运行它pdflatex file。构图速度很快(而且你可以轻松地——如果你了解 LaTeX——改变图像的形状和位置,添加标题等......)

问题是该文件通常很大;我用 500K+ 的 200 张 jpg 进行了测试——在我的 i5/16G 内存上运行大约需要 7 秒,并给出了 800Mbyte 的 PDF。我试图通过使用来减小它的大小

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

...它已经运行了 8 分钟,但没有使用大量 RAM。我无法评论压缩,因为gs它比我聪明,发现我使用同一张图像 200 次,因此将其压缩为 50k PDF……这显然不是真实的。

答案2

很遗憾convert更改之前的图像,以便将jpg您需要使用的原始图像的质量损失降到最低img2pdf,我使用以下命令:

一种较短的单衬管解决方案,也仅使用img2pdf特征

  1. 制作PDF

    img2pdf *.jp* --output combined.pdf

  2. OCR 输出 PDF

    ocrmypdf combined.pdf combined_ocr.pdf

这是原始命令,需要更多命令和更多工具:

1) 这是为了将pdf每个jpg图像创建一个文件,而不会损失分辨率或质量:

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

2)这将pdf页面连接成一个:

pdftk *.pdf cat output combined.pdf

3)最后我添加了一个OCRed文本层,它不会改变pdf中的扫描质量,因此它们可以被搜索:

pypdfocr combined.pdf  

相关内容