2013-03-08 67 views
0

目前我想一些.PS轉換編程文件轉換爲PDF - 但我遇到gswin64c,它沒有使用任何教程:(使用ghostscript的創建從PS文件PDF

基本上,我來了了這個至今:?

Dim proc As New Process 

proc.StartInfo.FileName = My.Settings.GhostscriptPath 'path to the ghostscript bin directory 
proc.StartInfo.WorkingDirectory = System.IO.Path.GetDirectoryName("c:\test dire\test.ps") 

'output umschreiben 
proc.StartInfo.RedirectStandardOutput = True 
proc.StartInfo.RedirectStandardError = True 
proc.StartInfo.UseShellExecute = False 

Dim PDfName = System.IO.Path.ChangeExtension("c:\test dire\test.ps", "pdf") 
Dim Args As String = String.Format("-dSAFER -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -sOutputFile='{0}' '{1}'", PDfName, FileName) 
proc.StartInfo.Arguments = Args 
proc.Start() 
proc.WaitForExit() 
Dim Output = proc.StandardOutput.ReadToEnd 
Dim OutputErrors = proc.StandardError.ReadToEnd 
Debug.Print(Output) 
Debug.Print(OutputErrors) 

它運行 - 但ghotscript簡單地噴出一個「沒有這樣的文件或目錄」錯誤並退出需要採取哪些措施來實際運行這個東西

+0

你只是在CLI下執行,所以它不像你在訪問GS API等。在命令提示符下鍵入'gswin64c --help',你會得到一個簡要的描述和指向'Use.htm'文件的指針,你應該在嘗試使用GS之前探索一下。您也可以在嘗試從腳本執行之前,在命令提示符下測試您的命令。 – theta 2013-03-08 12:50:33

回答

1

你的論點串圍繞文件名佔位符使用單引號:

"-dSAFER -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -sOutputFile='{0}' '{1}'" 

單引號,但是,都沒有有效的CMD引號字符,所以命令,因爲它尋找一個文本文件名稱'c:\test dire\test.ps'而不是c:\test dire\test.ps最有可能失敗。請使用雙引號代替:

"-dSAFER -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -sOutputFile=""{0}"" ""{1}""" 

必須將它們與另一個雙引號預先加以轉義。

相關問題