2014-04-09 2 views
2

서비스 모드에서 C# 응용 프로그램을 실행하고 있습니다. 그리고 난 swf 형식으로 odf를 변환하는 pdf2swf 도구를 사용하고 있습니다. pdf에 저장된 이미지가 변환 중입니다. 그러나 pdf에 추가하는 테스트가 서비스 모드에서 변환되지 않는 경우. 그러나 UI 모드 (Consoleapplication.exe)로 실행하면 모든 것이 변환됩니다.pdf2swf를 사용하여 pdf의 텍스트 내용을 변환하지 않았습니다.

 string inputFileName = this.Filename; 
     string outputFileName = inputFileName.Replace("pdf", "swf"); 
     StringBuilder sb = new StringBuilder(); 

     sb.AppendFormat("{0} -o {1}", inputFileName, outputFileName); 
     string executingDirPath = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase).Replace("file:\\", ""); 
     string dataDirectoryPath = Path.Combine(executingDirPath, "pdf2swf.exe"); 
     ProcessStartInfo psi = new ProcessStartInfo(dataDirectoryPath, sb.ToString()); 
     psi.UseShellExecute = false; 

     System.Diagnostics.Process pdf2swf = new System.Diagnostics.Process(); 
     pdf2swf.StartInfo = psi; 
     pdf2swf.Start(); 
     pdf2swf.WaitForExit(); 
     pdf2swf.Close(); 
     pdf2swf.Dispose(); 

감사 상 기사

답변

1

나는 최근에 비슷한 문제에 직면했다. 쉘없이 내 서버에서 실행되는 관리 권한이있는 별도의 콘솔 응용 프로그램 (Consoleapplication.exe)을 추가하여이 문제를 해결했습니다.

또한 pdf2swf의 최신 버전으로 업그레이드하십시오.

2

프로세스를 사용하여 pdf2swf.ext를 시작하는 데 몇 가지 권한 문제가있을 수 있습니다.이 문제를 해결하고 배치 파일을 작성한 다음 프로세스별로 배치 파일을 실행하는 다른 방법을 사용했습니다.

배치 파일 샘플 : 프로그램

c: 
cd C:\Program Files (x86)\SWFTools\ 
pdf2swf.exe -f -T 9 -t "%1" -o "%2" 

코드 : 참고로

Process p = new Process(); 
string path = basePath + "/plugin/ConvertToSwf.bat";//batch file path 
ProcessStartInfo pi = new ProcessStartInfo(path, filePath + " " + swfPath);//passing the file path and converted file path to batch file 
pi.UseShellExecute = false; 
pi.RedirectStandardOutput = true; 
p.StartInfo = pi; 
p.Start(); 
p.WaitForExit(); 
0

. 나는 최근에이 문제를 안고있다. (글꼴은 임베디드되지 않았지만 실제로는 변환 된 swf에서 모든 텍스트가 빠져있다.) 나를 위해 고쳐진 점은 다음과 같이 설정하는 것이 었습니다 :

pi.UseShellExecute = false; 

그리고 작업 디렉토리를 설정하십시오.

pi.WorkingDirectory = "C:\windows\temp"; // path where read & write is