2009-06-25 13 views
1

Wie kann man mehrere Fließdokumente in einer Charge drucken? Der folgende Code sollte verschiedene Dokumente drucken, aber das gleiche ausdrucken. Dieses Beispiel funktioniert nur dann einwandfrei, wenn Sie auf dem xps-Drucker drucken.Druckbatch zum Drucken von mehreren Fließdokumenten erstellen

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); 
    } 
    } 

Antwort

1

Dies sind Threading-Probleme. Stellen Sie nach dem Zuweisen der DataContext sicher, dass der Thread seine Warteschlange bearbeitet:

Dispatcher.CurrentDispatcher.Invoke(
     DispatcherPriority.SystemIdle, new DispatcherOperationCallback(_ => null), null); 
Verwandte Themen