在Excel VBA的64位命令shell上执行Ghostscript



我的Excel VBA宏创建了一个包含以下行的gs.cmd文件:

"C:Program Filesgsgs9.10bingswin64c.exe" @gsparams
echo %ProgramFiles%
pause

然后执行Shell "gs.cmd"

Ghostscript生成的PDF文件缺少几个链接,控制台显示C:Program Files (x86)

如果我从开始菜单中启动cmd.exe并执行相同的gs.cmd脚本,则生成的PDF文件是正确的,并且控制台显示C:Program Files

它的PDF文件包含许多36"x24"的CAD绘图,主要是矢量内容和一些大的位图,在pdfmarks文件中定义了数百个书签和数千个链接。

我看到的唯一不同的执行是一个似乎是32位,另一个是64位。

我不明白为什么Ghostscript在64位实例中做了一个完美的工作,但在32位实例中正确地完成了大部分工作,它只是错过了大约5%的链接的创建。我希望它要么失败,要么成功。

我搜索了一下,看看是否可以让Shell在64位环境中运行,但我没有找到解决方案。

我该如何解决这个问题?

创建第二个.cmd文件来启动你想要的cmd版本怎么样?

它可能看起来像这样:

发射器。cmd:

%SYSTEMROOT%System32cmd.exe /c c:tempgs.cmd

32位版本的cmd.exe将在64位系统的%SYSTEMROOT%Syswow64中。在32位系统上,我猜脚本将使用唯一可用的cmd.exe (%SYSTEMROOT%System32cmd.exe),所以没有问题。

最新更新