XPS, Windows Vista ile birlikte kullanımı gittikçe yaygınlaşan bir dosya formatı. Word, Excel, Powerpoint dosyalarını XPS formatına çevirerek Office kurulu olmayan bir bilgisayarda dahi Internet Explorer 7 gibi bir tarayıcı üzerinde görüntüleyebiliyoruz. Bu yazıda kullanımı yaygınlaşan XPS formatınındaki dosyaları WPF(Windows Presentation Foundation) uygulamalarında DocumentViewer kontrolüyle nasıl görüntüleyebileceğimizi anlatmaya çalışacağım.
WPF ile gelen kontrollerimizden olan DocumentView üzerinde bir XPS dosyası görüntüleyebilmek için XpsDocument tipinden bir nesneye ihtiyacımız olacaktır. mscorlib.dll'de bulunmayan bu sınıf için ReachFramework.dll'i projemize eklememiz gerekiyor.
ReachFramework.dll'in proje referanslarına eklenmesi
İlgili dll dosyasını projemizin referanslarına ekledikten sonra artık uygulamamıza geçebiliriz. Yapacağımız işlem oldukça basit aslında; penceremize bir tane DocumentViewer kontrolü ekliyor ve pencerenin Loaded event'ine aşağıda gördüğünüz iki satırlık ifadeyi ekliyoruz.
Window1.xaml
<Window x:Class="WpfDocumentViewerXps.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="DocumentViewer ile XPS Dosyalarının Görüntülemesi" Height="320" Width="600">
<Grid>
<DocumentViewer Name="documentViewer1" />
</Grid>
</Window>
Window1.xaml.cs
…
using System.Windows.Xps.Packaging; //Gerekli isim alanı
namespace WpfDocumentViewerXps
{
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
//XpsDocument nesnesi belirtilen yoldaki dosya içeriğini
//GetFixedDocumentSequence metodu ile kontrolümüze sunacaktır
XpsDocument xps = new XpsDocument(@"D:\test.xps", System.IO.FileAccess.Read);
documentViewer1.Document = xps.GetFixedDocumentSequence();
}
}
}
DocumentView'da görüntülenen XPS dokümanı