2

サービス モードで C# アプリケーションを実行しています。そして、odfをswf形式に変換するためにpdf2swfツールを使用しています。PDFに保存された画像は変換中です。しかし、pdfに追加するテストがサービスモードで変換されない場合。しかし、UI モード (Consoleapplication.exe) として実行すると、すべてが変換されます。

        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();

よろしくサンギータ

4

3 に答える 3

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();
于 2014-04-14T06:23:37.437 に答える