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

时间:2016-01-04 16:30:26

标签: macos pdf tiff ghostscript

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

for (int fileNum = files.Count-1; fileNum >= 0; fileNum--) { //Assign file within the loop var file = files[fileNum]; DateTime creationDate = file.TimeCreated.ToLocalTime(); DateTime currentTime = DateTime.Now; TimeSpan elapsedTime = currentTime.Subtract(creationDate); int fileAge = elapsedTime.Minutes; int maxTime = 1; if (fileAge > maxTime) { file.DeleteObject(); } }

是否可以顺利地完成相应的

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

PS:我在OSX上

1 个答案:

答案 0 :(得分:0)

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

#!/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 文件中运行它。