2013-03-08 3 views
0

PDF로 프로그램 파일에 PS 파일에서 PDF를 만들 고스트 스크립트 사용 -하지만, 내가 올 기본적으로 :(나는 현재 일부 .PS 변환하려고

어떠한 사용할 수있는 튜토리얼이 없습니다 gswin64c로 실행하고 .?하지만 ghotscript 단순히 "그런 파일 또는 디렉터리"오류 및 종료 결선하지 무엇 실제로이 일을 RUN으로 수행해야 할

+0

방금 ​​CLI에서 실행 중이므로 GS API에 액세스하는 것과는 다릅니다. 명령 프롬프트에서'gswin64c --help'를 입력하면 GS로 무엇인가를 시도하기 전에 조금 탐험해야하는'Use.htm' 파일에 대한 간단한 설명과 포인터가 있습니다. 스크립트에서 실행하기 전에 명령 프롬프트에서 명령을 테스트 할 수도 있습니다. – theta

답변

1

귀하의 인수 문자열 -

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) 

그것은 실행 : 지금까지 최대 파일 이름 주위에 작은 따옴표를 사용합니다. 자리 표시 자 :

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

다른 큰 따옴표를 앞에 붙여서 이스케이프 처리해야합니다.

관련 문제