djedjeska
Messages postés90Date d'inscriptionmercredi 21 novembre 2007StatutMembreDernière intervention25 mai 2013
-
23 mai 2013 à 18:14
Utilisateur anonyme -
25 mai 2013 à 17:52
Bonjour à tous,
j'ai un problème concernant l'impression d'une image,
j'ai trouvé quelques liens sur internet mais aucun n'a résolu mon problème...
J'essaye d'imprimer une image mais je perds toujours en qualité peu importe les options que je mets pour mon objet graphics...
Voici mon code :
Private WithEvents PageImprimée As New Printing.PrintDocument
Private Sub PBImprimer_Click(sender As System.Object, e As System.EventArgs) Handles PBImprimer.Click
PrintDialog1.Document = PageImprimée
PrintDialog1.AllowSomePages = True
PrintDialog1.ShowHelp = True
PrintDialog1.Document = PageImprimée
If PrintDialog1.ShowDialog = DialogResult.OK Then
PageImprimée.Print()
End If
End Sub
Private Sub document_PrintPage(ByVal sender As Object, _
ByVal e As System.Drawing.Printing.PrintPageEventArgs) _
Handles PageImprimée.PrintPage
e.graphics.Clear(Color.White)
e.graphics.SmoothingMode = Drawing2D.SmoothingMode.HighQuality
e.graphics.TextRenderingHint = Drawing.Text.TextRenderingHint.AntiAlias
e.graphics.CompositingQuality = Drawing2D.CompositingQuality.HighQuality
e.graphics.PixelOffsetMode = Drawing2D.PixelOffsetMode.HighQuality
e.graphics.InterpolationMode = Drawing2D.InterpolationMode.HighQualityBicubic
e.graphics.PageUnit = GraphicsUnit.Display
Tableau.DrawToBitmap(ImageTableau, New Rectangle(0, 0, Tableau.Width, Tableau.Height))
e.graphics.DrawImage(ImageTableau, New Rectangle(TableauL, TableauT, TableauW, TableauH))
End Sub
Sachant que Tableau est un datagridview avec plusieurs lignes et colonnes et du texte à l'intérieur
A l'impression, j'obtiens un tableau flou, alors que lorsque j'imprime du texte, ou une image de grande taille que je rétrécie, j'obtiens une impression très nette...
Merci d'avance pour vos réponses, et si je n'ai pas été clair je peux évidemment apporter des précisions.
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 23 mai 2013 à 18:18
Bonjour,
Ce sont là les inconvénients de la pixelisation de texte, à éviter.
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 23 mai 2013 à 21:05
Non ! Je dis que ton code pixelise du texte et qu'un tel procédé (image de texte) ne sera jamais de "qualité" !
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Malheureusement, tu ne montres pas la façon avec laquelle tu initialises ton bitmap 'ImageTableau'.
Voir les différents constructeurs de la classe bitmap et notamment celui qui te permet d'enter un paramètre PixelFormat.
Un bonjour à ucfoutu
Vous n’avez pas trouvé la réponse que vous recherchez ?
Tu peux rajoute un 3eme paramètre (PixelFormat) dans ce constructeur afin d'augmenter la résolution.
De plus, tu redimensionne deux fois ce bitmap. Une première fois à la taille de ton contrôle, et une deuxième fois aux tailles TableauW et TableauH. Je pense que la perte vient de là. Essaie de dimensionner directement à la taille souhaitée pour l'impression.
djedjeska
Messages postés90Date d'inscriptionmercredi 21 novembre 2007StatutMembreDernière intervention25 mai 2013 25 mai 2013 à 11:19
Je vais essayer pour le paramètre PixelFormat
Par contre pour ce qui est des dimensions, lorsque je le redimensionne la première fois, j'utilise sa taille d'origine, et lorsque je le dessine sur ma page finale, je garde également sa dimension (je ne l’agrandis pas ni ne le réduis)...
Le premier dessin vient du fait que je dois récupérer l'image d'un datagridview... Je n'ai pas d'autre choix que de faire drawtobitmap
Le second dessin sert à appliquer l'image obtenue sur ma page à imprimée.
Tableau DataGridView => dessiné sur Bitmap Tableau => dessinée sur feuille finale à imprimer
J'essaye le PixelFormat et je vous tiens au courant
Je n'ai pas d'autre choix que de faire drawtobitmap
Ca c'est sûr, mais autant donner au bitmap en question la taille voulue pour l'impression : drawtobitmap(bitmap_image, rectangle_impression). Tu n'auras plus qu'à utiliser e.graphics.drawimage(bitmap_image, point) pour l'impression.