关于python:在Windows上获取PDF的JPEG预览?

关于python:在Windows上获取PDF的JPEG预览?

Get a preview JPEG of a PDF on Windows?

我有一个跨平台(Python)应用程序,需要生成PDF第一页的JPEG预览。

在Mac上,我正在饮酒。我可以在Windows上执行类似的简单操作吗?


ImageMagick无论如何都会将PDF->位图转换委派给GhostScript,因此可以使用以下命令(它基于ImageMagick中ps:alpha委托列出的实际命令,刚刚将其调整为使用JPEG作为输出):

1
2
3
4
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调整为所需的任何分辨率。 (很显然,如果您将整个命令写成一行,请去掉反斜杠。)

这很好,有两个原因:

  • 您无需再安装ImageMagick。并不是说我对ImageMagick有什么反对(我很喜欢),但我相信简单的解决方案。
  • ImageMagick进行两步转换。首先是PDF-> PPM,然后是PPM-> JPEG。这样,转换是一步。
  • 要考虑的其他事项:对于我测试过的文件,PNG的压缩比JPEG更好。如果要使用PNG,请将-sDEVICE=jpeg更改为-sDEVICE=png16m


    您可以为此使用ImageMagick的convert实用程序,请参阅http://studio.imagemagick.org/pipermail/magick-users/2002-May/002636.html中的一些示例

    1
    Convert taxes.pdf taxes.jpg

    Will convert a two page PDF file into [2] jpeg files: taxes.webp.0,
    taxes.webp.1

    I can also convert these JPEGS to a thumbnail as follows:

    1
    convert -size 120x120 taxes.jpg.0 -geometry 120x120 +profile '*' thumbnail.jpg

    I can even convert the PDF directly to a jpeg thumbnail as follows:

    1
    convert -size 120x120 taxes.pdf -geometry 120x120 +profile '*' thumbnail.jpg

    This will result in a thumbnail.webp.0 and thumbnail.webp.1 for the two
    pages.


    PC是否可能已安装Acrobat?我认为Acrobat安装了外壳扩展程序,因此PDF文档首页的预览显示在Windows资源管理器的缩略图视图中。您可以通过IExtractImage COM API自己获取缩略图,您需要将其package。 VBAccelerator在C#中有一个示例,您可以将其移植到Python。


    推荐阅读