WPF 浏览PDF 文件

很长时间没写文章感觉手有点生了,前段时间忙的要死公事、家事、私事,事事操心。还好现在有些时间可以继续写博客了。本篇将为大家演示如何在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。完成添加双击控件进入设计模式。

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

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

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

  将该COM 控件拖入User Control 。

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

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

  打开控件程序,修改构造函数。将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。

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

<Window x:Class="WpfPDFReader.MainWindow"

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

Title="WPF PDF Reader" Height="350" W
idth="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” 选择一个PDF ,这样一个简单的WPF PDF Reader 就完成了。

  源代码:WpfPDFReader.zip

时间: 2014-12-25
Tags: 选择, name, nbsp, user

WPF 浏览PDF 文件的相关文章

一起谈.NET技术,WPF 浏览PDF 文件

     很长时间没写文章感觉手有点生了,前段时间忙的要死公事.家事.私事,事事操心.还好现在有些时间可以继续写博客了.本篇将为大家演示如何在WPF 程序中浏览PDF 文件,本例将通过Adobe PDF Reader COM 组件.WinForm 与WPF 集成方面的工具实现PDF 浏览功能. 用户控件      打开VS2010,新建项目(WpfPDFReader),右键项目添加User Control(用户控件).因为Adobe PDF Reader COM 组件是不支持WPF的,为此我们需

Win8阅读器如何直接浏览pdf文件

  Win8"阅读器"应用直接打开pdf文件 在Win8的开始屏幕中,我们可以看到醒目的桔色的"阅读器"应用图标,直接点击它即可打开应用. 图示:点击Win8开始屏幕中的桔色"阅读器"应用图标 点击桔色的"阅读器"应用图标后,Win8系统会打开"阅读器"应用.在这里我们可以到文件夹路径中选择我们需要打开的文件,也可以看到曾经打开过的文件.    图示:用Win8系统自带"阅读器"应用打开

ie10-如何实现在WIN8 RT上使用IE10 在线浏览PDF文件

问题描述 如何实现在WIN8 RT上使用IE10 在线浏览PDF文件 我有一个WEB项目,用户使用的是surface rt的ie10,其中需要实现的一个功能是要在线浏览pdf文件.由于metro的ie10不支持插件,每次点击pdf都要提示下载,因此无法实现这个功能. 网上能查到的方法是将pdf转化为swf,然后通过flexpaper查看,这个方法虽然能实现,但是在iis上发布以后,pdf2swf.exe的运行需要使用管理员权限才能正常使用,这点我们的网络管理不能允许,这个方法就不能用了. 另外一

PDF文件怎么打开?PDF阅读器下载推荐

PDF是一种由Adobe公司开发的电子文件格式,在日常办公中,很多电子书.产品说明.公司文档都内容都会被制作成PDF文件.由于我们的操作系统默认是不支持打开PDF文件的,所以PDF文件怎么打开就成了很多用户的疑问.其实只要在我们的电脑中安装一款好用的PDF阅读器,就可以轻松阅读PDF文件中的内容了.另外,现在手机和平板电脑的用途越来越广泛,也有不少用户会在手机或平板电脑上浏览PDF文件,那么,在移动设备上又该如何选择PDF阅读器呢? PDF文件怎么打开?PDF阅读器下载推荐 电脑PDF阅读器下载

PDF文件怎么打开?

PDF是一种由Adobe公司开发的电子文件格式,在日常办公中,很多电子书.产品说明.公司文档都内容都会被制作成PDF文件.由于我们的操作系统默认是不支持打开PDF文件的,所以PDF文件怎么打开就成了很多用户的疑问.其实只要在我们的电脑中安装一款好用的PDF阅读器,就可以轻松阅读PDF文件中的内容了.另外,现在手机和平板电脑的用途越来越广泛,也有不少用户会在手机或平板电脑上浏览PDF文件,那么,在移动设备上又该如何选择PDF阅读器呢? PDF文件怎么打开?PDF阅读器下载推荐        下一页

在网页上浏览“PDF”怎么样???

问题描述 问题一:在网页上浏览"PDF"文件应该怎么实现?有没有什么插件可以使用?问题二:用户根据条件检索PDF文件,然后查看下载.类似百度文库.那么PDF文件应该如何存储?是存储在数据库中,还是文件夹中?问题三:如果存储在数据库中?有没有什么特别要注意的地方? 解决方案 解决方案二:PDF应该存储在数据库中吧,应该有类似的插件可以用.解决方案三:在线浏览pdf应该用flash吧.存储在数据库中,一般使用二进制流,减少空间的使用.使用时在转换一下即可.解决方案四:(1)AdobeRea

mfc求助-如何在MFC中通过点击按钮浏览并打开PDF文件

问题描述 如何在MFC中通过点击按钮浏览并打开PDF文件 void Cpigai::OnNewpaper() {BROWSEINFO blnfo;ZeroMemory(&blnfosizeof(blnfo));blnfo.lpszTitle=_T(""请选择源文件路径:"");LPITEMIDLIST lpDlist;lpDlist=SHBrowseForFolder(&blnfo);if(lpDlist!=NULL){TCHAR chPath[25

WPF中使用文件浏览对话框的几种方式

原文:WPF中使用文件浏览对话框的几种方式 WPF本身并没有为我们提供文件浏览的控件, 也不能直接使用Forms中的控件,而文件浏览对话框又是我们最常用的控件之一. 下面是我实现的方式 方式1: 使用win32控件OpenFileDialog ? 1 2 3 4 5 6 7 Microsoft.Win32.OpenFileDialog ofd = new Microsoft.Win32.OpenFileDialog(); ofd.DefaultExt = ".xml"; ofd.Fil

iOS下PDF文件的浏览和涂鸦效果的简单实现_IOS

浏览PDF的效果方法一:利用webview 复制代码 代码如下: -(void)loadDocument:(NSString *)documentName inView:(UIWebView *)webView  {      NSString *path = [[NSBundle mainBundle] pathForResource:documentName ofType:nil];      NSURL *url = [NSURL fileURLWithPath:path];      N