在 for 循环中使用 Ghostscript
Use Ghostscript in for loop
我需要将数百个 pdf 文件合并成一个新的大文件。在此代码中,我尝试遍历文件顺序列表并将它们添加到新的 pdf 文件中。
但结果不是我需要的,因为只有循环中的最后一个 pdf 文件被复制到 output.pdf。我的代码有什么问题?
for /F "tokens=*" %%A in (fileorder.txt) do (
echo +++++ %%A ++++++
D:\GS\gs9.02\bin\gswin32c.exe ^
-o output.pdf ^
-sDEVICE=pdfwrite ^
-dColorConversionStrategy=/LeaveColorUnchanged ^
-dEncodeColorImages=false ^
-dEncodeGrayImages=false ^
-dEncodeMonoImages=false ^
output.pdf ^
%%A ^
-dFIXEDRESOLUTION
pause
)
所以我自己找到了解决方案:
使用此代码,我创建了一个空 temp.pdf,我需要将最后一个循环的输出保存到我的输入文件中。
copy NUL EmptyFile.txt
ren EmptyFile.txt temp.pdf
for /F "tokens=*" %%A in (fileorder.txt) do (
D:\GS\gs9.02\bin\gswin32c.exe ^
-o output.pdf ^
-sDEVICE=pdfwrite ^
-dColorConversionStrategy=/LeaveColorUnchanged ^
-dEncodeColorImages=false ^
-dEncodeGrayImages=false ^
-dEncodeMonoImages=false ^
temp.pdf ^
%%A ^
-dFIXEDRESOLUTION
copy /b/v/y output.pdf temp.pdf
)
del temp.pdf
但正如 rojo 指出的那样:这是更好的解决方案:
D:\GS\gs9.02\bin\gswin32c.exe ^
-o output.pdf ^
-sDEVICE=pdfwrite ^
-dColorConversionStrategy=/LeaveColorUnchanged ^
-dEncodeColorImages=false ^
-dEncodeGrayImages=false ^
-dEncodeMonoImages=false ^
@fileorder.txt ^
-dFIXEDRESOLUTION
我需要将数百个 pdf 文件合并成一个新的大文件。在此代码中,我尝试遍历文件顺序列表并将它们添加到新的 pdf 文件中。 但结果不是我需要的,因为只有循环中的最后一个 pdf 文件被复制到 output.pdf。我的代码有什么问题?
for /F "tokens=*" %%A in (fileorder.txt) do (
echo +++++ %%A ++++++
D:\GS\gs9.02\bin\gswin32c.exe ^
-o output.pdf ^
-sDEVICE=pdfwrite ^
-dColorConversionStrategy=/LeaveColorUnchanged ^
-dEncodeColorImages=false ^
-dEncodeGrayImages=false ^
-dEncodeMonoImages=false ^
output.pdf ^
%%A ^
-dFIXEDRESOLUTION
pause
)
所以我自己找到了解决方案: 使用此代码,我创建了一个空 temp.pdf,我需要将最后一个循环的输出保存到我的输入文件中。
copy NUL EmptyFile.txt
ren EmptyFile.txt temp.pdf
for /F "tokens=*" %%A in (fileorder.txt) do (
D:\GS\gs9.02\bin\gswin32c.exe ^
-o output.pdf ^
-sDEVICE=pdfwrite ^
-dColorConversionStrategy=/LeaveColorUnchanged ^
-dEncodeColorImages=false ^
-dEncodeGrayImages=false ^
-dEncodeMonoImages=false ^
temp.pdf ^
%%A ^
-dFIXEDRESOLUTION
copy /b/v/y output.pdf temp.pdf
)
del temp.pdf
但正如 rojo 指出的那样:这是更好的解决方案:
D:\GS\gs9.02\bin\gswin32c.exe ^
-o output.pdf ^
-sDEVICE=pdfwrite ^
-dColorConversionStrategy=/LeaveColorUnchanged ^
-dEncodeColorImages=false ^
-dEncodeGrayImages=false ^
-dEncodeMonoImages=false ^
@fileorder.txt ^
-dFIXEDRESOLUTION