2009-09-08 7 views
2

J'imprime une grille WPF. Tant que les données tiennent sur une page, tout fonctionne bien. Mais parfois, la grille contient plus de données. Par conséquent, j'ai besoin de diviser la grille en plusieurs pages. Quelqu'un peut-il m'aider?Comment imprimer WPF Grid paginé?

Mon code ressemble à ceci (le visuel est la grille).

var printCapabilities = printDialog.PrintQueue.GetPrintCapabilities(printDialog.PrintTicket); 

var size = new Size(printCapabilities.PageImageableArea.ExtentWidth, 
    printCapabilities.PageImageableArea.ExtentHeight); 

visual.Measure(size); 
visual.Arrange(new Rect(new Point(printCapabilities.PageImageableArea.OriginWidth, 
    printCapabilities.PageImageableArea.OriginHeight), size)); 

printDialog.PrintVisual(visual, "Print ListView"); 

Dois-je essayer un autre contrôle? J'ai essayé WPF Toolkit DataGrid, mais je n'ai pas réussi à l'imprimer. J'ai entendu quelque chose d'un document de flux, cela peut-il m'aider?

Cordialement
Oliver Hanappi

+0

Salut! J'utilise maintenant un FlowDocument qui, bien sûr, prend en charge la pagination. Malheureusement, le fractionnement des colonnes sur plusieurs pages est toujours un problème: http://stackoverflow.com/questions/1420162/how-to-print-a-wpf-flow-document-table-across-multiple-pages-if-there- sont-trop-homme –

Répondre

1

On dirait que vous voulez utiliser PrintDocument au lieu de PrintVisual. Vous devrez probablement implémenter votre propre classe DocumentPaginator pour diviser votre grille en documents imprimables séparés.