2009-09-11 6 views
0

Je suis l'impression d'un FlowDocument en utilisant le code suivant:Imprimer FlowDocument bloc sur les différentes pages

 PrintDialog dialog = new PrintDialog(); 
     var value = dialog.ShowDialog(); 

     if (value.HasValue && value.Value == true) 
     { 
      XpsDocumentWriter writer = PrintQueue.CreateXpsDocumentWriter(dialog.PrintQueue); 
      PageImageableArea imageArea = dialog.PrintQueue.GetPrintCapabilities().PageImageableArea; 
      PrintTicket ticket = dialog.PrintTicket; 

      if (writer != null && imageArea != null) 
      { 
       DocumentPaginator paginator = (doc as IDocumentPaginatorSource).DocumentPaginator; 
       paginator.PageSize = new Size((double)ticket.PageMediaSize.Width, (double)ticket.PageMediaSize.Height); 
       var padding = doc.PagePadding; 
       doc.PagePadding = new Thickness(
         Math.Max(imageArea.OriginWidth, padding.Left), 
         Math.Max(imageArea.OriginHeight, padding.Top), 
         Math.Max((double)ticket.PageMediaSize.Width - (double)(imageArea.OriginWidth + imageArea.ExtentWidth), padding.Right), 
         Math.Max((double)ticket.PageMediaSize.Height - (double)(imageArea.OriginHeight + imageArea.ExtentHeight), padding.Bottom)); 
       doc.ColumnWidth = double.PositiveInfinity; 
       // Send DocumentPaginator to the printer. 
       writer.Write(paginator); 
      } 
     } 

Maintenant, je veux imprimer un bloc séparé de doc à la page différente, comment puis-je faire cela?

Répondre

0

Vous pouvez utiliser l'élément ou l'élément MSDN.

Selon ce que vous voulez vraiment faire, vous devrez ajouter un bloc à la doc:

doc.AddBlocks(newblock) 
Questions connexes