我希望我的 Ghostscript 输出以更高数字开头的 PNG 页面名称,例如“31”。如何?

Posted

技术标签:

【中文标题】我希望我的 Ghostscript 输出以更高数字开头的 PNG 页面名称,例如“31”。如何?【英文标题】:I want my Ghostscript to output PNG pagenames starting with a higher number, e.g. "31". How? 【发布时间】:2010-08-10 00:44:00 【问题描述】:

我想使用 Ghostscript 从 PDF 创建约 330 个 PNG 文件(我作为礼物赠送的相册)。现在我想把这些照片放到网上。我知道使用-sOutputFile=somename--%03d.png 的方法,它会按照somename--001.pngsomename--002.png 等模式为我提供编号的PNG 文件名。但是,我想在网上再放大约25-30 张图片,这些应该有编号较低的名称。

问题:我需要转换后的 PDF 输出的文件名以“31”开头,即somename--031.png。如果我使用 Ghostscript 编号方法,我必须手动重命名所有 PNG 文件...*shudder*。 有没有办法让 Ghostscript 的编号以“031”开头? %03d 的一些隐藏参数可能吗?

【问题讨论】:

【参考方案1】:

我不知道%03d 表示法有任何隐藏参数,以使其以偏移量开始编号方案。

但是,这里有一个技巧可以实现您想要的,这比手动重命名所有 ~330 个 PNG 文件要少得多。

像这样运行 Ghostscript 命令:

gs \
 -o somename--%03d.png \
 -sDEVICE=png \
 -c "showpage showpage showpage" \
 -f photobook.pdf

注意到 3 个showpage 参数了吗?实际上,这会将 3 个空页面插入 Ghostscript 使用的代码流中。只有在这些之后,它才会处理您的 photobook.pdf -- 文件编号将从“4”开始。您现在可以丢弃前 3 个 .png 文件,或者用其他图片覆盖它们... :-)

要使其以“31”开头,您必须插入显示页的 30 倍。

或者,为了更容易,您还可以创建一个 30 页的 PDF 帮助文件,其中包含如下的空白页面:

gs \
 -o 30-empty.pdf \
 -sDEVICE=pdfwrite \
 -c "1 1 30  showpage  for"

然后运行

gs \
 -o somename--%03d.png \
 -sDEVICE=png \
  30-empty.pdf \
  photobook.pdf

【讨论】:

以上是关于我希望我的 Ghostscript 输出以更高数字开头的 PNG 页面名称,例如“31”。如何?的主要内容,如果未能解决你的问题,请参考以下文章

从更高版本中删除 GhostScript 字体文件夹?

如何使用 GhostScript 设置 PDF 文件的输出图像大小限制

Ghostscript 输出保存位置

以更高的效率将嵌套数组中的值添加到唯一列表中

编辑:Ghostscript 可以给我二进制数据而不是输出到目录吗?

通过子进程调用 GhostScript 无法创建输出文件