【问题标题】:Get a preview JPEG of a PDF on Windows?在 Windows 上获取 PDF 的预览 JPEG?
【发布时间】:2010-09-05 06:09:28
【问题描述】:

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

在 Mac 上,我正在生成 sips。我可以在 Windows 上做同样简单的事情吗?

【问题讨论】:

    标签: python windows image pdf


    【解决方案1】:

    您可以为此使用 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
    

    这将导致两个缩略图.jpg.0 和 thumbnail.jpg.1 页面。

    【讨论】:

      【解决方案2】:

      PC 是否可能安装了 Acrobat?我认为 Acrobat 安装了一个 shell 扩展,因此 PDF 文档第一页的预览出现在 Windows 资源管理器的缩略图视图中。您可以通过需要包装的 IExtractImage COM API 自己获取缩略图。 VBAccelerator has an example in C# 可以移植到 Python。

      【讨论】:

        【解决方案3】:

        ImageMagick 无论如何都将 PDF->位图转换委托给 GhostScript,所以这里有一个您可以使用的命令(它基于 ImageMagick 中 ps:alpha 委托列出的实际命令,只是调整为使用 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 调整为您需要的任何分辨率。 (显然,如果您将整个命令写成一行,请去掉反斜杠。)

        这有两个好处:

        1. 您不再需要安装 ImageMagick。并不是说我反对 ImageMagick(我非常喜欢它),但我相信简单的解决方案。
        2. ImageMagick 执行两步转换。首先是 PDF->PPM,然后是 PPM->JPEG。这样,转换是一步完成的。

        需要考虑的其他事项:对于我测试过的文件,PNG 的压缩效果优于 JPEG。如果要使用 PNG,请将 -sDEVICE=jpeg 更改为 -sDEVICE=png16m

        【讨论】:

        • GS 依赖现在是否仍然有效(ImageMagick 7 已经发布)
        猜你喜欢
        • 1970-01-01
        • 2011-12-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-07-15
        • 2023-03-12
        • 1970-01-01
        相关资源
        最近更新 更多