我的目录中有大约 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
特征
制作PDF
img2pdf *.jp* --output combined.pdf
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