使用新流程在表单中打开 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();
...
您可能想查看链接 C# System.diagnostics.process.startinfo 。但是关于你的问题:
1)输入E:'Test'test2.pdf
似乎很奇怪,而是应该是要执行的进程,就像HelloWorld.exe
的链接示例一样。我查看了您帖子的存储库,而是pdftoppm
。
2)它实际上是pdftoppm
的输入参数,你可以在pdftoppm linux手册页找到信息。