代码之家  ›  专栏  ›  技术社区  ›  Alexander Zwitbaum

创建printbatch以打印多个流程文档

  •  1
  • Alexander Zwitbaum  · 技术社区  · 15 年前

    如何成批打印多个流程文档?

    var printDialog = new PrintDialog();
    if(printDialog.ShowDialog() == true) {      
      var xpsDocumentWriter = PrintQueue.CreateXpsDocumentWriter(printDialog.PrintQueue);
    
      foreach(var person in persons) {
        var doc = Application.LoadComponent(new Uri("Template.xaml", UriKind.Relative)) as FlowDocument;
          doc.DataContext = persons;
          var paginator = ((IDocumentPaginatorSource)doc).DocumentPaginator;          
          xpsDocumentWriter.Write(paginator);
        }
      }
    
    1 回复  |  直到 15 年前
        1
  •  1
  •   Michael Damatov    15 年前

    这些都是线程问题。分配 DataContext 确保线程处理其等待队列:

    Dispatcher.CurrentDispatcher.Invoke(
            DispatcherPriority.SystemIdle, new DispatcherOperationCallback(_ => null), null);
    
    推荐文章