【发布时间】:2014-03-26 14:10:17
【问题描述】:
我的 Excel VBA 宏创建了一个包含以下行的 gs.cmd 文件:
"C:\Program Files\gs\gs9.10\bin\gswin64c.exe" @gsparams
echo %ProgramFiles%
pause
然后执行Shell "gs.cmd"。
Ghostscript 生成的 PDF 文件缺少一些链接,控制台显示 C:\Program Files (x86)。
如果我从“开始”菜单启动cmd.exe 并执行相同的gs.cmd 脚本,则生成的PDF 文件是正确的并且控制台显示C:\Program Files。
它包含许多 36"x24" CAD 图纸的 PDF 文件,其中大部分是矢量内容和一些大位图,在 pdfmarks 文件中定义了数百个书签和数千个链接。
我看到的执行之间的唯一区别是一个似乎是 32 位,另一个似乎是 64 位。
我不明白为什么 Ghostscript 在 64 位实例中可以完美地完成工作,但在 32 位实例中可以正确完成大部分工作,只是错过了大约 5% 的链接的创建。我希望它要么失败要么工作。
我搜索了一下是否可以让Shell 在 64 位环境中运行,但没有找到解决方案。
我该如何解决这个问题?
【问题讨论】:
-
@yms:我也不明白这个问题。我只是想列出测试和运行环境之间的差异。我尝试了
Shell "gs.cmd"和Shell "cmd /c gs.cmd",结果是一样的。也许 Ghostscript 使用了一些环境变量? -
有趣...确实可能是这样。
标签: excel vba pdf cmd ghostscript