using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Xps.Packaging;
using System.Printing;
namespace XPS文件管理
{
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
//打开xps文件,显示到documentViewer上
private void btnOpen_Click(object sender, RoutedEventArgs e)
{
XpsDocument doc = new XpsDocument(@"D:\demo.xps", System.IO.FileAccess.Read);
FixedDocumentSequence fds = doc.GetFixedDocumentSequence();
documentViewer1.Document = fds;
}
//打印1
private void btnPrint1_Click(object sender, RoutedEventArgs e)
{
//PrintDialog是System.Windows.Controls下的不是System.Windows.Forms下面
PrintDialog pd = new PrintDialog();
pd.PageRangeSelection = PageRangeSelection.AllPages;
pd.UserPageRangeEnabled = true;
bool? bOK = pd.ShowDialog();// bool? 可空类型
if (bOK == true)
{
XpsDocument doc = new XpsDocument(@"D:\demo.xps", System.IO.FileAccess.Read);
FixedDocumentSequence fds = doc.GetFixedDocumentSequence();
pd.PrintDocument(fds.DocumentPaginator, "Demo #1");
}
}
//打印2 【打印队列,一次可以打印多个文件】
private void btnPrint2_Click(object sender, RoutedEventArgs e)
{
//LocalPrintServer需要引入System.Printing.dll
LocalPrintServer lps = new LocalPrintServer();
PrintQueue pq = lps.DefaultPrintQueue;
//加入打印队列
pq.AddJob("Demo #2", @"D:\demo.xps", false);
}
}
}
源码:点击打开链接