我正在将 .txt 文件转换为 pdf 并需要向用户显示 pdf。为此,我创建了一个临时 .pdf 文件并创建了一个打开文件的进程。当安装了 adobe acrobat 时,这可以正常工作。当没有默认应用程序时,这将失败。就我而言,pdf 在 Internet Explorer 中打开,我得到No process is associated with this object exception。有没有其他方法可以找出文件何时关闭,以便我以后可以删除它。
我的代码是这样的。
HtmlToPdf htmlToPdf = new HtmlToPdf(pdfPrintOptions);
string tmpFileName = "zx" + DateTime.Now.Ticks + "x.pdf";
//Iron pdf does not handle in-memory pdf viewing
//convert it to pdf
htmlToPdf.RenderHTMLFileAsPdf(fileWithPath).SaveAs(tmpFileName);
// TempFileCollection tmpFileCollection = new TempFileCollection();
//Use windows process to open the file
Process pdfViewerProcess = new Process
{
EnableRaisingEvents = true, StartInfo = {FileName = tmpFileName}
};
pdfViewerProcess.Start();
pdfViewerProcess.WaitForExit(); **Failing in this line**
//Delete temporary file after the viewing windows is closed
if (File.Exists(tmpFileName))
{
File.Delete(tmpFileName);
}
类似的问题似乎没有提供解决此问题的方法。任何帮助将不胜感激。谢谢。