彩票走势图

在WPF 程序中浏览PDF 文件

转帖|其它|编辑:郝浩|2011-03-18 15:43:43.000|阅读 1350 次

概述:本篇将为大家演示如何在WPF 程序中浏览PDF 文件,本例将通过Adobe PDF Reader COM 组件、WinForm 与WPF 集成方面的工具实现PDF 浏览功能。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

  本篇将为大家演示如何在WPF 程序中浏览PDF 文件,本例将通过Adobe PDF Reader COM 组件、WinForm 与WPF 集成方面的工具实现PDF 浏览功能。

  用户控件

  打开VS2010,新建项目(WpfPDFReader),右键项目添加User Control(用户控件)。因为Adobe PDF Reader COM 组件是不支持WPF的,为此我们需要将它放到WinForm 控件中。所以,在列表中需要选择User Control,而不是User Control(WPF)。这里我将控件命名为:AdobeReaderControl.cs。完成添加双击控件进入设计模式。 

AddUserCtl

  在工具箱里选择添加组件,在COM 组件列表中点选“Adobe PDF Reader”。

SelectCom

  AcroPDFLib 和AxAcroPDFLib 库会自动添加到项目中。

Reference

  添加成功后会在工具箱里看到下图所示的控件。

Toolbox

  将该COM 控件拖入User Control 。

AddCom

  控件默认名称为:axAcroPDF1,可按需要自行更改。

ComName

Dock属性设置为“Fill”,这样可以使控件自动适应窗口尺寸。

Dock

  打开控件程序,修改构造函数。将PDF 文件传入控件并进行加载。

using System.Windows.Forms;

namespace WpfPDFReader
{
     public partial class AdobeReaderControl : UserControl
     {
         public AdobeReaderControl(string fileName)
         {
             InitializeComponent();

             this.axAcroPDF1.LoadFile(fileName);
         }
     }
}  

  到此用户控件就基本完成了,下面开始WPF 部分的开发。

  WPF

  由于要将上面的WinForm 控件加载到WPF 程序中,所以先要为WPF 添加WindowsFormsIntegration。

WinForm

 

  打开XAML 在 中添加Button 和WindowsFormsHost 控件,其中Button 用来启动文件目录窗口,从中选择要浏览的PDF文件;WindowsFormsHost 则用于嵌入WinForm 控件。

<Window x:Class="WpfPDFReader.MainWindow"
         xmlns="//schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="//schemas.microsoft.com/winfx/2006/xaml"
         Title="WPF PDF Reader" Height="350" Width="525">
     <Grid>
         <Button Content="Open File" Click="Button_Click" Width="100" Height="30" 
                 VerticalContentAlignment="Center" VerticalAlignment="Top" 
                 Margin="0,10,0,0"/>
         <WindowsFormsHost x:Name="winFormHost" Margin="0,46,0,0" />
     </Grid>
</Window>

  下面来完成Button 点击事件,将通过OpenFileDialog 选择的PDF 文件路径及名称传入AdobeReaderControl 用户控件中,并将该控件添加到WindowsFormsHost。

private string openFileName;
private OpenFileDialog openFileDialog;

private void Button_Click(object sender, RoutedEventArgs e)
{
     openFileDialog = new OpenFileDialog();
     openFileDialog.DefaultExt = "pdf";
     openFileDialog.Filter = "pdf files (*.pdf)|*.pdf";

     DialogResult result = openFileDialog.ShowDialog();

     if (result == System.Windows.Forms.DialogResult.OK)
     {
         openFileName = openFileDialog.FileName;

         AdobeReaderControl pdfCtl = new AdobeReaderControl(openFileName);
         winFormHost.Child = pdfCtl;                
     }
     else
     {
         return;
     }
}  

  F5看下效果,点击“Open File&rdquo; 选择一个PDF ,这样一个简单的WPF PDF Reader 就完成了。

Reader


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn

文章转载自:博客园

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP