使用新流程打开表单中的pdf文件

时间:2016-02-09 20:49:52

标签: c# pdf

我对c#非常陌生,对于一个项目,我已经下载了一些由tixiv撰写的代码 从 https://www.das-labor.org/trac/browser/microcontroller/src-atmel/laserExposer/PC_Frontend?order=name

我试图在表单中打开pdf文件。

我得到的错误是:

  

类型' System.ComponentModel.Win32Exception'的例外情况发生了   在System.dll中但未在用户代码中处理其他信息:   系统找不到指定的文件如果有处理程序   这个例外,程序可以安全地继续。

问题1.
我对这条线感到困惑:

p.StartInfo.FileName = "E:/Test/test2.pdf";

我可以使用空字符串,还是需要定义上面的特定文件和位置?

问题2.以下陈述中的开关(-f 1 -l 1 -r 600)是什么意思?

p.StartInfo.Arguments = "-mono -f 1 -l 1 -r 600 " + openPdfDialog.FileName + " E:/Documents/Eagle Projects/Testing/";

问题3.捕获此异常的正确方法是什么?

private void openFileDialog1_FileOk(object sender, CancelEventArgs e)
{
    Process p = new Process();
    // Redirect the output stream of the child process.
    // StartInfo Gets or sets the properties to pass to the Start method of the Process.
    p.StartInfo.UseShellExecute = false;                    // UseShellExecute Setting this property to false enables you to redirect input, output, and error streams.
    p.StartInfo.RedirectStandardOutput = true;              // true if output should be written to Process.StandardOutput;
    p.StartInfo.FileName = "E:/Test/test2.pdf";             // The default is an empty string.
    p.StartInfo.Arguments = "-mono -f 1 -l 1 -r 600 " + openPdfDialog.FileName + " E:/Documents/Eagle Projects/Testing/";
    p.Start();
    // Do not wait for the child process to exit before
    // reading to the end of its redirected stream.

    // Read the output stream first and then wait.
    string output = p.StandardOutput.ReadToEnd();
    p.WaitForExit();


    FileInfo f = new FileInfo("c:\\Windows\\Temp\\-000001.pbm");
    StreamReader s = f.OpenText();
    ...

1 个答案:

答案 0 :(得分:0)

您可以查看链接C# System.diagnostics.process.startinfo。但关于你的问题:

1)输入是E:\Test\test2.pdf似乎很奇怪,而应该是要执行的过程,就像HelloWorld.exe的链接示例一样。我查看了帖子的存储库,而不是pdftoppm

2)它实际上是pdftoppm的输入参数,您可以在pdftoppm linux man page找到信息