我有一个 WPF 应用程序,它使用标准的 WebBrowser 控件实现了一个简单的 Web 浏览器。当用户导航到 PDF 文档时,该文档将在 MSIE 的标准 Adobe Reader 插件的 WebBrowser 控件中内嵌显示。现在我需要以编程方式打印文件。我该怎么做?
我知道 Adobe Reader 有一个带有打印命令的 COM 接口。这个接口在 MSIE 插件中也可用吗?如何从我只能访问 WebBrowser 控件的 WPF 代码访问它?
感谢您的建议!
我有一个 WPF 应用程序,它使用标准的 WebBrowser 控件实现了一个简单的 Web 浏览器。当用户导航到 PDF 文档时,该文档将在 MSIE 的标准 Adobe Reader 插件的 WebBrowser 控件中内嵌显示。现在我需要以编程方式打印文件。我该怎么做?
我知道 Adobe Reader 有一个带有打印命令的 COM 接口。这个接口在 MSIE 插件中也可用吗?如何从我只能访问 WebBrowser 控件的 WPF 代码访问它?
感谢您的建议!
这是您在 WPF WebBrowser 控件中打印文档的方式,无论它是 HTML 还是 PDF:
private void Print_Click(object sender, RoutedEventArgs e)
{
// Try to print it as Html
var doc = webBrowser.Document as IHTMLDocument2;
if (doc != null)
{
doc.execCommand("Print", true, 0);
return;
}
// Try to print it as PDF
var pdfdoc = webBrowser.Document as AcroPDFLib.AcroPDF;
if (pdfdoc != null)
{
pdfdoc.Print();
}
}
对于 PDF 打印,您必须将 AcroPDFLib 添加到项目的引用中。