0

我目前正在尝试以编程方式将一些 .ps 文件转换为 pdf - 但我遇到了 gswin64c,它没有任何可用的教程:(

基本上,到目前为止,我想出了这个:

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 只是发出“没有这样的文件或目录”错误并退出。实际运行这个东西需要做什么?

4

1 回答 1

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}"""

必须通过在它们前面加上另一个双引号来逃避它们。

于 2013-03-10T14:21:07.717 回答