使用 Ghostscript 自动转换文件夹中的每个文件

Use Ghostscript to convert every file in a folder automatically

目前我正在使用此命令将文件 X.pdf 转换为 X.tif 。

gs -q -sDEVICE=tiffg4 -r300 -dBATCH -dPDFFitPage -dNOPAUSE -sOutputFile=tif/X.tif pdf/X.pdf

是否有一种平滑的方法来做相当于

gs -q -sDEVICE=tiffg4 -r300 -dBATCH -dPDFFitPage -dNOPAUSE -sOutputFile=tif/*.tif pdf/*.pdf 就像搜索查询一样? (我用 * 替换了 X)它显然不适用于此方法,但也许有类似的语法? 还是我必须写一个批处理文件或类似的东西?

PS:我在 OSX

尝试在包含子目录 tifpdf 的目录中将其另存为 tif2pdf:

#!/bin/bash

# Change into the "tif" directory to find the input files
cd tif || { echo ERROR: Subdirectory tif not found; exit 1; }

# Loop through all files ending in ".tif"
for f in *.tif; do

   # Determine output filename
   out=${f%%tif}
   out="../pdf/${out}pdf"

   # Show the command we would run
   echo gs -q -sDEVICE=tiffg4 -r300 -dBATCH -dPDFFitPage -dNOPAUSE -sOutputFile="$out" "$f"
done

然后进入终端中的那个目录并使这个脚本可执行:

chmod +x tif2pdf

然后 运行 它与:

./tif2pdf

目前,它什么都不做,只是向您展示它会做什么。如果您喜欢它组成的命令的外观,请编辑脚本并删除倒数第二行中的单词 echo 并再次 运行 以实际进行转换。

示例输出

gs -q -sDEVICE=tiffg4 -r300 -dBATCH -dPDFFitPage -dNOPAUSE -sOutputFile=../pdf/a.pdf a.tif
gs -q -sDEVICE=tiffg4 -r300 -dBATCH -dPDFFitPage -dNOPAUSE -sOutputFile=../pdf/b.pdf b.tif

我建议 运行先将其 COPY 您的文件。