【问题标题】:Convert pdf to image with imagemagick and get the list of outputted files使用 imagemagick 将 pdf 转换为图像并获取输出文件列表
【发布时间】:2019-12-24 20:33:48
【问题描述】:

我找到了如何使用 convert 命令将我的 pdf 转换为 png 文件。这很棒,因为开箱即用,它为 pdf 中的每个页面创建了一个图像,这正是我所需要的。问题是我事先不知道我的 pdf 有多少页,所以我不知道 convert 创建了多少页。我在互联网上看了又看,还阅读了 imagemagick 网站,但找不到合适的方式来输出我需要的信息。

我需要一个非常简单的输出,如下所示:

$ convert in.pdf out.png
out-0.png
out-1.png
out-2.png
...

【问题讨论】:

    标签: imagemagick


    【解决方案1】:

    在 ImageMagick 中,只需执行以下操作:

    identify in.pdf
    
    in.pdf[0] PDF 256x256 256x256+0+0 16-bit sRGB 139350B 0.000u 0:00.002
    in.pdf[1] PDF 256x256 256x256+0+0 16-bit sRGB 139350B 0.010u 0:00.001
    in.pdf[2] PDF 256x256 256x256+0+0 16-bit sRGB 139350B 0.010u 0:00.000
    


    或者如果你只想要名字,那么

    identify -format "%f[%p]\n" in.pdf
    
    in.pdf[0]
    in.pdf[1]
    in.pdf[2]
    


    或者如果您只想知道页数:

    identify -format "%n\n" in.pdf | head -n 1
    
    3
    


    注意没有管道到头,你会得到 3 重复 3 次

    https://imagemagick.org/script/identify.php

    https://imagemagick.org/script/escape.php

    【讨论】:

    • 对不起,我没有看到你的答案——我的浏览器一定已经缓存了这个页面!不管怎样,祝你“圣诞快乐”
    • 没问题,马克。同样回馈你,也祝你新年快乐。
    • 谢谢@fmw42。回到您的解决方案的缺点是我必须发出第二个命令。现在可以了。奇怪的是convert命令不能输出自己创建的文件名!
    • @Guillaume Bois 我不明白你的评论。你到底想做什么?如果您想使用 -set 文件名,ImageMagick 可以输出输入名称。见imagemagick.org/Usage/basics/#mogrify_convert。但这与知道输出图像的数量有什么关系?
    • @fmw42 看看我的问题,我需要什么,这很清楚。 -set filename 似乎修改了输出文件名。我不需要那个。默认输出文件名对我来说没问题。我只需要convert 命令来输出它创建的内容,这样我就可以处理输出,并且可以说,在数据库中插入所有 N 个文件。如果我不明白,我必须恢复到您的解决方案并检查identify pdf 文件中有多少页然后使用convert 创建 N 个文件并 假设 一切按计划进行...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-14
    • 1970-01-01
    • 2011-09-29
    • 2013-05-17
    • 2011-01-11
    相关资源
    最近更新 更多