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

本文关键字:pdf 文件 表单 新流程 | 更新日期: 2023-09-27 18:33:59

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

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

我得到的错误是:

发生类型为"System.ComponentModel.Win32Exception"的异常 在系统中.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();
    ...

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

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

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

2)它实际上是pdftoppm的输入参数,你可以在pdftoppm linux手册页找到信息。