WPF:WPF显示PDF文档
生活随笔
收集整理的這篇文章主要介紹了
WPF:WPF显示PDF文档
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
簡述
??軟件的幫助文檔可借助第三方軟件如PDF Reader、Adobe PDF等顯示,但客戶機上需安裝此類軟件。WPF開發的軟件可借助第三方庫 MoonPdf 將PDF文檔加載顯示到軟件窗口中(Dll下載地址,GitHub源碼地址)。
MoonPdf庫使用方式:
代碼
PDFViewer.xaml
<UserControl x:Class="NovelRPS.PdfViewer"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mpp="clr-namespace:MoonPdfLib;assembly=MoonPdfLib"mc:Ignorable="d" ><Grid><!-- ContextMenu --><Grid.ContextMenu><ContextMenu><MenuItem x:Name="ZoomToOrigin" Header="100%" Click="ZoomToOrigin_Click"></MenuItem><MenuItem x:Name="SinglePage" Header="單頁" Click="SinglePage_Click"></MenuItem><MenuItem x:Name="DoublePage" Header="雙頁" Click="DoublePage_Click"></MenuItem></ContextMenu></Grid.ContextMenu><Border><!-- 參考:https://www.cnblogs.com/yang-fei/p/4885570.html --><mpp:MoonPdfPanel x:Name="pdfViewer" MaxZoomFactor="2.5" ViewType="SinglePage" PageRowDisplay="ContinuousPageRows" PageMargin="0,2,4,2" AllowDrop="True"></mpp:MoonPdfPanel></Border></Grid> </UserControl>PDFViewer.cs
using MoonPdfLib; //記得引用此命名空間public partial class PdfViewer : UserControl{private bool m_bLoaded = false;public PdfViewer(){InitializeComponent();}public bool LoadPdfDoc( string strPdfPath ){try{this.pdfViewer.OpenFile( strPdfPath );this.pdfViewer.Zoom( 1.0 );m_bLoaded = true;}catch{m_bLoaded = false;}return m_bLoaded;}private void ZoomToOrigin_Click( object sender, RoutedEventArgs e ){if ( !m_bLoaded )return;this.pdfViewer.Zoom( 1.0 );}private void SinglePage_Click( object sender, RoutedEventArgs e ){if ( !m_bLoaded )return;this.pdfViewer.ViewType = ViewType.SinglePage;}private void DoublePage_Click( object sender, RoutedEventArgs e ){if ( !m_bLoaded )return;this.pdfViewer.ViewType = ViewType.Facing;}}調用PdfViewer,及HelpWin窗口類:HelpWin.xaml
<Window x:Class="NovelRPS.HelpWin"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:local="clr-namespace:NovelRPS"Title="HelpWin" Background="#FF212121" WindowState="Maximized" Topmost="True" WindowStyle="None" ResizeMode="NoResize"> <Grid><Grid.RowDefinitions><RowDefinition Height="66"></RowDefinition><RowDefinition></RowDefinition></Grid.RowDefinitions><!-- Title --><Label x:Name="Title" Grid.Row="0" Background="#FF414141" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch" Padding="0"><DockPanel><Image DockPanel.Dock="Left" Source="Images/SubPageLogo.png"></Image><Image x:Name="ImgClose" DockPanel.Dock="Right" Source="Images/Close.png" MouseDown="ImgClose_MouseDown"></Image><StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center"><Image Source="Images/Setting/Help.png" Width="30"></Image><Label Content="幫助" FontSize="26" FontWeight="Bold"></Label></StackPanel></DockPanel></Label><!-- Content --><Label Grid.Row="1" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch"><local:PdfViewer x:Name="PDFView" Loaded="PDFView_Loaded"/></Label></Grid> </Window>HelpWin.cs
public partial class HelpWin : Window{private string m_strPdfPath = AppDomain.CurrentDomain.BaseDirectory + "help.pdf"; public HelpWin(){InitializeComponent();}private void ImgClose_MouseDown( object sender, MouseButtonEventArgs e ){this.Close();}private void PDFView_Loaded( object sender, RoutedEventArgs e ){if ( !this.PDFView.LoadPdfDoc( m_strPdfPath ) ){MessageBox.Show( "打開幫助文檔失敗,請重試!" );}}}效果
轉載于:https://blog.51cto.com/weiyuqingcheng/2323929
總結
以上是生活随笔為你收集整理的WPF:WPF显示PDF文档的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安卓基本控件及应用总结
- 下一篇: 设计模式及相关