2009-06-25 12 views
1

複数のフロードキュメントをバッチで印刷する方法は? 次のコードは異なる文書を印刷する必要がありますが、同じ文書を印刷してください。このサンプルは、xpsプリンターに印刷する場合に限り、かなりうまく動作します。複数のフロードキュメントを印刷するprintbatchを作成する

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

これはスレッドの問題です。 DataContextを割り当てた後、スレッドが待機キューを処理していることを確認します。

Dispatcher.CurrentDispatcher.Invoke(
     DispatcherPriority.SystemIdle, new DispatcherOperationCallback(_ => null), null); 
関連する問題