高效生成巨大pdf文件的缩略图?
在我正在开发的一个系统中,我们正在生成缩略图,作为工作流程的一部分。 有时pdf文件相当大(打印大小为3m2),并且可能包含巨大的位图图像 是否有能够生成缩略图的程序针对处理如此大的pdf文件的内存占用进行了优化 生成的缩略图可以是png或jpg。是我在所有CLI图形中使用的,因此它可能适用于您:高效生成巨大pdf文件的缩略图?,pdf,memory,thumbnails,Pdf,Memory,Thumbnails,在我正在开发的一个系统中,我们正在生成缩略图,作为工作流程的一部分。 有时pdf文件相当大(打印大小为3m2),并且可能包含巨大的位图图像 是否有能够生成缩略图的程序针对处理如此大的pdf文件的内存占用进行了优化 生成的缩略图可以是png或jpg。是我在所有CLI图形中使用的,因此它可能适用于您: convert foo.pdf foo-%png 这将生成三个单独的PNG文件: foo-0.png foo-1.png foo-2.png 要仅创建一个缩略图,请将PDF视为一个数组([0]是第
convert foo.pdf foo-%png
这将生成三个单独的PNG文件:
foo-0.png
foo-1.png
foo-2.png
要仅创建一个缩略图,请将PDF视为一个数组([0]
是第一页,[1]
是第二页,以此类推):
由于您担心内存问题,使用-cache
选项可以限制内存使用:
-缓存阈值像素缓存可用的内存兆字节
图像像素存储在内存中
直到内存达到阈值兆字节
消耗。后续像素操作
缓存在磁盘上。操作到
内存速度明显加快,但
如果您的计算机没有
您需要足够的可用内存
可能需要调整此阈值
价值观
因此,要缩略PDF文件并调整其大小,可以运行此命令,该命令的最大内存使用量应为20mb左右:
convert -cache 20 foo.pdf[0] -resize 10%x10% foo-thumb.png
或者您可以使用-density
来指定输出密度(900将其放大很多):
你在乎吗?目前价格合理的服务器有512 GB ram。支持以1200 dpi的速度存储超过9000英寸(250米)平方的全彩未压缩位图。使用磁盘对性能的影响很大 当然,如果您有3m²PDF,也可以指定一个
-密度
参数。否则…默认值是每英寸72点…让我做一些计算…2400万像素的图像…那太好了。我还要添加-调整大小。@Blender:是的。但是-density
是在调用作为外部命令的委托(可以是Ghostscript)时应用的。也许代理不能有内存限制?我没有任何大的PDF可以尝试,但我想Ghostscript有一个限制内存的选项(可能是convert
pipes)。它的大小是否正确?我还没有处理过这么大的PDF文件,所以可能它会让其他有同样问题的人受益。
convert -cache 20 foo.pdf[0] -resize 10%x10% foo-thumb.png
convert -cache 20 foo.pdf[0] -density 900 foo-thumb.png