进程无法打开pdf文件c#

时间:2017-03-08 09:05:39

标签: c# windows pdf-conversion

在Windows应用程序中,我需要运行另一个应用程序的tetpdflib。该tetpdflib仅在命令提示符下运行。当我将exe拖放到命令提示符时,它将执行。这是我的代码:

Process tetmlProcess = new Process();
tetmlProcess.StartInfo.CreateNoWindow = true;
tetmlProcess.StartInfo.UseShellExecute = false;
tetmlProcess.StartInfo.RedirectStandardError = true;
tetmlProcess.StartInfo.RedirectStandardInput = true;
tetmlProcess.StartInfo.WorkingDirectory = @"C:\Users\sw_chn\Documents\PDFlib\TET 5.0 32-bit\bin";
tetmlProcess.StartInfo.FileName = @"C:\Users\sw_chn\Documents\PDFlib\TET 5.0 32-bit\bin\tet.exe";
string args1 = @"tet -m wordplus D:\DailyWork\March\JOURNAL-ISSUE_6_3924-3930.pdf";
tetmlProcess.StartInfo.Arguments = args1;
tetmlProcess.Start();
StreamReader news = tetmlProcess.StandardError;
string err = news.ReadToEnd();
Console.WriteLine(err);
Console.ReadLine();

我有以下错误:

  

无法打开PDF文件' tet'阅读

如何从中恢复?

1 个答案:

答案 0 :(得分:1)

您的Start Arguments再次包含程序名称,导致此错误。

只需更改代码

即可
Process tetmlProcess = new Process();
// ...
tetmlProcess.StartInfo.WorkingDirectory = @"C:\Users\sw_chn\Documents\PDFlib\TET 5.0 32-bit\bin";
tetmlProcess.StartInfo.FileName = @"C:\Users\sw_chn\Documents\PDFlib\TET 5.0 32-bit\bin\tet.exe";
// removing "tet" in Arguments
string args1 = @"-m wordplus D:\DailyWork\March\JOURNAL-ISSUE_6_3924-3930.pdf";
tetmlProcess.StartInfo.Arguments = args1;
tetmlProcess.Start();
// ...

结论

manual包含这样的示例

tet --format utf16 --outfile file.utf16 file.pdf

这里tet映射为系统中的环境变量,代表应用程序的完整路径。