我有一个跨平台 (Python) 应用程序,它需要生成 PDF 第一页的 JPEG 预览。
在 Mac 上,我正在生成sips。我可以在 Windows 上做同样简单的事情吗?
ImageMagick 无论如何都将 PDF->bitmap 转换委托给 GhostScript,所以这里有一个您可以使用的命令(它基于ps:alpha
ImageMagick 中委托列出的实际命令,只是调整为使用 JPEG 作为输出):
gs -q -dQUIET -dPARANOIDSAFER -dBATCH -dNOPAUSE -dNOPROMPT \
-dMaxBitmap=500000000 -dLastPage=1 -dAlignToPixels=0 -dGridFitTT=0 \
-sDEVICE=jpeg -dTextAlphaBits=4 -dGraphicsAlphaBits=4 -r72x72 \
-sOutputFile=$OUTPUT -f$INPUT
其中$OUTPUT
和$INPUT
是输出和输入文件名。调整72x72
到您需要的任何分辨率。(显然,如果您将整个命令写成一行,请去掉反斜杠。)
这有两个好处:
其他需要考虑的事项:对于我测试过的文件,PNG 的压缩效果优于 JPEG。如果要使用 PNG,-sDEVICE=jpeg
请将-sDEVICE=png16m
.
您可以为此使用 ImageMagick 的转换实用程序,请参阅http://studio.imagemagick.org/pipermail/magick-users/2002-May/002636.html中的一些示例 :
Convert taxes.pdf taxes.jpg
将两页 PDF 文件转换为 [2] jpeg 文件:tax.jpg.0, tax.jpg.1
我还可以将这些 JPEGS 转换为缩略图,如下所示:
convert -size 120x120 taxes.jpg.0 -geometry 120x120 +profile '*' thumbnail.jpg
我什至可以将 PDF 直接转换为 jpeg 缩略图,如下所示:
convert -size 120x120 taxes.pdf -geometry 120x120 +profile '*' thumbnail.jpg
这将导致两个页面的 thumbnail.jpg.0 和 thumbnail.jpg.1。
PC 是否可能安装了 Acrobat?我认为 Acrobat 安装了一个 shell 扩展,因此 PDF 文档第一页的预览出现在 Windows 资源管理器的缩略图视图中。您可以通过需要包装的 IExtractImage COM API 自己获取缩略图。VBAccelerator 在 C# 中有一个示例,您可以将其移植到 Python。