WPF 中使用 Adobe PDF Reader 显示PDF时内存泄漏问题
有个小需求需要在wpf 桌面应用中显示pdf 文件,没有其他针对pdf编辑的功能。为了图方便就使用了adobe pdf reader 的com组件啦。
新建个pdf显示的用户控件:
工具箱拖动过来,设置好Dock为Fill, 重写构造函数,新增pdf文件路径传入参数:
/// <summary> /// 此用户控件使用后,注意释放资源,防止内存泄漏!!!!!! /// </summary> public partial class PdfViewer : UserControl { public PdfViewer(string fileName) { InitializeComponent(); this.axAcroPDF1.LoadFile(fileName); } }
在使用的窗口放入winform 控件的容器
<WindowsFormsHost x:Name="winFormHost" />
使用如下:
winFormHost.Child = new PdfViewer(pdfPath);
窗口关闭以后注意释放这个 winFormHost 容器,以免内存成倍增加,最终显示 “The maximum number of files are already open.No other files can be opened or printed until some are closed.” 这样的错误!
//释放pdf资源防止内存泄漏 winFormHost.Dispose();
作者:Nodes
声明:对于转载分享我是没有意见的,出于对博客园社区和作者的尊重一定要保留原文地址哈。
致读者:一直没有写博客的习惯,现在写些小东西主要是培养写博客的习惯,如有错误,望能指出,一起学习进步!