在通用应用程序中打印

本文关键字:打印 应用程序 | 更新日期: 2023-09-27 18:22:23

我正在开发一个Windows 10通用应用程序,该应用程序需要执行计算并根据结果生成打印输出。我不知道从哪里开始打印。创建新文档最简单的方法是什么?在WPF中,我们有FixedDocument和FlowDocument。我看不到通用应用程序格式的可用内容。

在通用应用程序中打印

声明PrintManagerPrintDocumentPrintManager类型与支持其他Windows打印功能的类型一起位于Windows.Graphics.Printing命名空间中。PrintDocument类型与其他支持为打印准备XAML内容的类型一起位于Windows.UI.Xaml.Printing命名空间中。通过在页面中添加以下using或Imports语句,可以更容易地编写打印代码。

using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;

PrintDocument类用于处理应用程序和PrintManager之间的大部分交互,但它公开了自己的几个回调。在注册期间,创建PrintManagerPrintDocument的实例,并为它们的打印事件注册处理程序。在UWP打印样本中,通过RegisterForPrinting方法执行配准。

public virtual void RegisterForPrinting()
{
   printDocument = new PrintDocument();
   printDocumentSource = printDocument.DocumentSource;
   printDocument.Paginate += CreatePrintPreviewPages;
   printDocument.GetPreviewPage += GetPrintPreviewPage;
   printDocument.AddPages += AddPrintPages;
   PrintManager printMan = PrintManager.GetForCurrentView();
   printMan.PrintTaskRequested += PrintTaskRequested;
}

当用户转到支持的页面时,它会在OnNavigatedTo方法中启动注册。

protected override void OnNavigatedTo(NavigationEventArgs e)
{
   // Initalize common helper class and register for printing
   printHelper = new PrintHelper(this);
   printHelper.RegisterForPrinting();
   // Initialize print content for this scenario
   printHelper.PreparePrintContent(new PageToPrint());
   // Tell the user how to print
   MainPage.Current.NotifyUser("Print contract registered with customization, use the Print button to print.", NotifyType.StatusMessage);
}

当用户离开页面时,请断开打印事件处理程序的连接。如果你有一个多页应用程序,并且没有断开打印,当用户离开页面,然后返回页面时,会引发异常。

您可以从应用程序中阅读更多关于打印的信息,也可以找到提示:提示本主题中的大多数示例都基于打印示例。要查看完整的代码,请从GitHub上的Windows通用示例库下载通用Windows平台(UWP)打印示例

GetPrintPreviewPage事件为每个页面激活一次,当我返回到未激活的页面时。我使用此代码来保持当前预览页面。

private异步void PrintDoc_GetPreviewPage(对象p_sender,GetPreviewPageEventArgs p_args){SelectedPagePreview=p_args.PageNumber;

我正在Windows8.1&平板电脑x64。