如何正确关闭 PDFTron 使用的文件?
How do I properly close a file used by PDFTron?
以下代码导致 System.InvalidOperationException,因为相关文件仍在使用中。 PDFTron 文档中没有关于如何关闭文件的明确指导,但以下会产生异常:
// in my dispose method. _pdfViewWpf is a pdftron.PDF.PDFViewWPF, and _pdfPath is the filepath I set the doc to.
_pdfViewWpf.CloseDoc();
_pdfViewWpf.Dispose();
File.Move(_pdfPath, @"C:\myFilePath\Test.pdf");
我缺少什么才能让 PDFTron 正确释放和关闭文件?
我在 PDFDoc 上缺少 Dispose() 调用,我已将其设置为 PDFViewWPF 上的 Doc。我将其保存在私有成员变量中:
_pdfDoc = new PDFDoc(pdfPath);
并将这一行添加到我的处理方法中:
_pdfViewWpf.CloseDoc();
_pdfViewWpf.Dispose();
if (_pdfDoc != null) _pdfDoc.Dispose();
File.Move(_pdfPath, @"C:\myFilePath\Test.pdf");
现在 File.Move 方法可以正常工作而不会抛出异常。
感谢您对我们指南的反馈,我们会改进这一部分。我们的示例项目中确实有很多示例代码,因此您还可以在其中了解如何实际操作。
对于非交互式 PDF 处理,using
语句是确保在使用 PDFDoc 实例完成后立即释放文件句柄和内存的最简单方法。
对于交互式查看,您可以执行以下操作。
PDFDoc oldDoc = _pdfViewWpf.GetDoc();
_pdfViewWpf.CloseDoc();
// or instead of above line, if you want to reuse the viewer call
//_pdfViewWpf.SetDoc(otherPDFDoc);
if(oldDoc != null) oldDoc.Close();
以下代码导致 System.InvalidOperationException,因为相关文件仍在使用中。 PDFTron 文档中没有关于如何关闭文件的明确指导,但以下会产生异常:
// in my dispose method. _pdfViewWpf is a pdftron.PDF.PDFViewWPF, and _pdfPath is the filepath I set the doc to.
_pdfViewWpf.CloseDoc();
_pdfViewWpf.Dispose();
File.Move(_pdfPath, @"C:\myFilePath\Test.pdf");
我缺少什么才能让 PDFTron 正确释放和关闭文件?
我在 PDFDoc 上缺少 Dispose() 调用,我已将其设置为 PDFViewWPF 上的 Doc。我将其保存在私有成员变量中:
_pdfDoc = new PDFDoc(pdfPath);
并将这一行添加到我的处理方法中:
_pdfViewWpf.CloseDoc();
_pdfViewWpf.Dispose();
if (_pdfDoc != null) _pdfDoc.Dispose();
File.Move(_pdfPath, @"C:\myFilePath\Test.pdf");
现在 File.Move 方法可以正常工作而不会抛出异常。
感谢您对我们指南的反馈,我们会改进这一部分。我们的示例项目中确实有很多示例代码,因此您还可以在其中了解如何实际操作。
对于非交互式 PDF 处理,using
语句是确保在使用 PDFDoc 实例完成后立即释放文件句柄和内存的最简单方法。
对于交互式查看,您可以执行以下操作。
PDFDoc oldDoc = _pdfViewWpf.GetDoc();
_pdfViewWpf.CloseDoc();
// or instead of above line, if you want to reuse the viewer call
//_pdfViewWpf.SetDoc(otherPDFDoc);
if(oldDoc != null) oldDoc.Close();