我的Excel VBA宏一個64位的命令執行殼Ghostscript的創建的文件gs.cmd
含有下列行:上從Excel VBA
"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
。
該PDF文件包含許多36「x24」CAD圖紙,其中主要是矢量內容和一些大的位圖,其中包含數百個書籤和數千個在pdfmarks文件中定義的鏈接。
我在執行過程中看到的唯一差別是一個似乎是32位而另一個是64位。
我不明白爲什麼Ghostscript在64位實例中做出了完美的工作,但是在32位實例中正確執行了大部分工作,並且僅僅錯過了大約5%鏈接的創建。我希望它要麼失敗,要麼工作。
我搜索了一下,看看我是否可以讓Shell
在64位環境中運行,但我沒有找到解決方案。
我該如何解決這個問題?
@yms:我也不明白這個問題。我只是想列出測試和運行環境之間的差異。我嘗試了'Shell'gs.cmd「'和'Shell」cmd/c gs.cmd「',它們都是一樣的。也許Ghostscript使用一些環境變量? – stenci
有趣...確實可能是這種情況。 – yms