2010-07-28 3 views
1

Nous avons une application Winforms complexe, chaque formulaire pouvant contenir plusieurs sous-formulaires et nécessitant l'impression des données contenues dans ces formulaires.Complexe d'impression Winforms

Actuellement, nous utilisons le contrôle PrintDocument. Pour chaque formulaire (ou élément de formulaire) que nous cherchons à imprimer, nous appelons la méthode Control.DrawToBitmap(), puis nous l'appelons à l'objet Graphics lors de l'impression. Cela fonctionne principalement, et nous avons une solution de contournement pour imprimer tout le contenu des formulaires avec un contenu défilant.

Cependant, nous éprouvons 2 problèmes.

1) La qualité de l'impression est très faible et, dans de nombreux cas, à peine lisible; Et

2) L'impression semble tout à fait différentes en fonction de la résolution de l'écran de l'utilisateur

Existe-t-il des bonnes solutions pour l'impression des formulaires C#? Sûrement, c'est un problème qui a été résolu avant? J'adorerais une méthode qui ne nécessite pas que je réimplémente essentiellement le frontal (comme avec Crystal Reports)

Répondre

2

Vous pouvez augmenter la taille des bitmaps/renvois que vous dessinez. Si la résolution bitmap est faible, elle ne sera pas bonne sur un papier imprimé. Les moniteurs ont de la chance s'ils ont plus de 120 pixels/points par pouce, et bien que la plupart des imprimantes puissent imprimer à 150 dpi, le réglage par défaut des imprimantes est généralement de 300/600 dpi. Je ne sais pas si les mesures PageUnit ont un effet sur la sortie en utilisant le PrintDocument, mais j'utilise GraphicsUnit.Point pour dessiner sur la surface. (Bien sûr, ne faites pas que le bitmap soit trop grand ou la vitesse d'impression diminuera ou échouera en raison de la quantité de données envoyées à l'imprimante).