Flux rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Non résolu

Imprimer une forme a partir de VB .NET

  doruk, le jeudi 15 février 2007 à 22:34:06
Allo tout le monde,
J'ai un petit probleme. Je veux imprimer une form a partir de vb .net (J'utilise Visual Studio 2005). J'ai trouve une facon de le faire sur l'internet. Par contre avec cette methode, il m'etait impossible d'avoir du text de bonne qualites. Plus precisement, j'ai une form qui contient 30 labels et un picturebox. Certaines label sont de type Arial et de grandeur 6.
Quand j'imprime ma forme on dirait que mon imprimante modifie l'image de ma forme, car mes labels qui contient un caractere 'o' 'u' 'c' 'd' etc n'est pas lisible alors que un 'L' 'I' 'E' est lisible. J pense qu'il fait une sorte de anti-alias ou qu'il agrandi ma forme. (lors de la visualisation de ma forme, les labels sont tres claires et lisible. C'est juste au moment de l'imprimer que les labels devient inlisible ou moins claire). Je sais que microsoft a deja publie une sorte de programme externe qui nous permet d'imprimer une forme. Par contre, apres l'avoir essaye j'ai remarque que j'avais toujours le meme probleme.
J' ai essaye de trouver une reponse sur google mais disons que je n'ai pas avance depuis 4 heures. alors si vous pouvez m'aider je vous serez reconnaisant

Je vous remercie et voici mon code



Private WithEvents pd As Printing.PrintDocument
Private formImage As Bitmap





Private Sub Form2_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
' create an instance of the PrintDocument component
pd = New Printing.PrintDocument
Me.StartPosition = FormStartPosition.CenterScreen



End Sub



Private Declare Function BitBlt Lib "gdi32.dll" Alias _
"BitBlt" (ByVal hdcDest As IntPtr, _
ByVal nXDest As Integer, ByVal nYDest As _
Integer, ByVal nWidth As Integer, _
ByVal nHeight As Integer, ByVal _
hdcSrc As IntPtr, ByVal nXSrc As Integer, _
ByVal nYSrc As Integer, _
ByVal dwRop As System.Int32) As Long

Private Sub pd_PrintPage(ByVal sender As Object, _
ByVal e As System.Drawing.Printing.PrintPageEventArgs) _
Handles pd.PrintPage

e.Graphics.SmoothingMode = Drawing2D.SmoothingMode.None
e.Graphics.TextRenderingHint = Drawing.Text.TextRenderingHint.SingleBitPerPixelGridFit
e.Graphics.TextContrast = 5
e.PageSettings.Color = False
e.PageSettings.PrinterResolution.Kind = Printing.PrinterResolutionKind.High


e.Graphics.DrawImage(formImage, 0, 0)

End Sub




Public Sub printForm()
' Me.CreateGraphics.CompositingQuality = Drawing2D.CompositingQuality.HighQuality
Me.CreateGraphics.TextRenderingHint = Drawing.Text.TextRenderingHint.SingleBitPerPixelGridFit
Me.CreateGraphics.SmoothingMode = Drawing2D.SmoothingMode.None
Me.CreateGraphics.InterpolationMode = Drawing2D.InterpolationMode.High


'pd.DefaultPageSettings.PrinterResolution.Kind = Printing.PrinterResolutionKind.High
Dim g As Graphics = Me.CreateGraphics() 'Me.CreateGraphics()
Dim s As Size = Me.Size 'Me.Size
g.SmoothingMode = Drawing2D.SmoothingMode.None
g.TextRenderingHint = Drawing.Text.TextRenderingHint.SingleBitPerPixelGridFit
g.TextContrast = 5
g.InterpolationMode = Drawing2D.InterpolationMode.High

formImage = New Bitmap(s.Width, s.Height, g)



Dim mg As Graphics = Graphics.FromImage(formImage)

mg.SmoothingMode = Drawing2D.SmoothingMode.None
mg.TextRenderingHint = Drawing.Text.TextRenderingHint.SingleBitPerPixelGridFit
mg.TextContrast = 5
mg.InterpolationMode = Drawing2D.InterpolationMode.High




Dim dc1 As IntPtr = g.GetHdc
Dim dc2 As IntPtr = mg.GetHdc
' added code to compute and capture the form
' title bar and borders
Dim widthDiff As Integer = _
(Me.Width - Me.ClientRectangle.Width)
'(Me.Width - Me.ClientRectangle.Width)
Dim heightDiff As Integer = _
(Me.Height - Me.ClientRectangle.Height)
' (Me.Height - Me.ClientRectangle.Height)
Dim borderSize As Integer = widthDiff \ 2
Dim heightTitleBar As Integer = heightDiff - borderSize
BitBlt(dc2, 0, 0, _
Me.ClientRectangle.Width + widthDiff, _
Me.ClientRectangle.Height + heightDiff, dc1, _
0 - borderSize, 0 - heightTitleBar, 13369376)



g.ReleaseHdc(dc1)
mg.ReleaseHdc(dc2)


'Dim pp As New PrintDialog()
'pp.Document = pd
'pp.ShowDialog()

' pd.PrinterSettings.PrinterName = "Microsoft Office Document Image Writer"
pd.DefaultPageSettings.Color = False
pd.DefaultPageSettings.PrinterResolution.Kind = Printing.PrinterResolutionKind.High
pd.DefaultPageSettings.PrinterSettings.DefaultPageSettings.PrinterResolution.Kind = Printing.PrinterResolutionKind.High
pd.DefaultPageSettings.PrinterSettings.DefaultPageSettings.Color = False




pd.Print()
End Sub
Configuration: Windows XP
Internet Explorer 7.0
Répondre à doruk  Signaler ce message aux modérateurs
[xml] formualire xml en vb .net? (Résolu)bonjour, est il possible de créer un formulaire xml en vb .net ouvrable par tous méme ce qui n'ont pas de licence vb .net (en excluant le piratage biensur ;)) L'informatique si sa marche c'est qu'il y a un probléme ...[*V]oM{i}T[o*]... www.commentcamarche.net/forum/affich-1291357-xml-formualire-xml-en-vb-net
Format nombres dans Excel importés par VB.NET (Résolu)Bonjour, Je rencontre un petit souci avec un programme réalisé en VB.net et constitué de différentes boîtes de dialogues. Durant l'exécution de l'application, l'utilisateur remplit des textbox et ces données sont recalculées puis... www.commentcamarche.net/forum/affich-5023152-format-nombres-dans-excel-importes-par-vb-net
[VB.NET] Arrondi 2 décimales (Résolu)Bonjour, j'ai un nombre décimal que je voudrais arrondir à 2 chiffres après la virgule en VB.NET. Je suppose qu'il y a une fonction faite pour cela? www.commentcamarche.net/forum/affich-5903684-vb-net-arrondi-2-decimales
Sql server et vb.net en detail (Résolu)salut plus de l' aide sur sql server et vb .net je l'aurais l'année prochaine merçi d'avance et infinement merçi.. www.commentcamarche.net/forum/affich-1653387-sql-server-et-vb-net-en-detail
Créer une base de données Access en vb.net (Résolu)Bonjour, Voila plusieurs dizaines de minutes qu'un truc m'énerve au plus haut point. Je cherche à générer une base de données Access en VB.Net. Un champ devrait avoir la propriété Numéro auto. Et ben malgré plusieurs codes sources que... www.commentcamarche.net/forum/affich-6256676-creer-une-base-de-donnees-access-en-vb-net
Aide VB.NET et JAVASCRIPT (Résolu)Coucou ! Je veux savoir si c'est possible d'integrer un peu du JAVASCRIPT dans un programme VB.NET . Comme par exemple lors du survol de la souris sur un bouton ça change la couleur du fond de ce bouton ..... J'attend vos reponses... www.commentcamarche.net/forum/affich-5290752-aide-vb-net-et-javascript
Télécharger Visual Basic ExpressVisual Basic Express 2008 est la version gratuite de Visual Basic 2008, contenant toutes les fonctionnalités de base du logiciel. Parfait pour apprendre ou développer de petits logiciels en VB.Net. www.commentcamarche.net/telecharger/telecharger-34055450-visual-basic-express
Télécharger NetBeans IDE 6.1NetBeans IDE 6.1 est un excellent IDE de développement C/C++ écrit entièrement en Java. La coloration syntaxique, le "Code Completion" et plein d'autres options font naturellement parti de NetBeans. Un des principal atout de NetBeans est qu'il... www.commentcamarche.net/telecharger/telecharger-34056423-netbeans-ide-6-1
Télécharger DoPDFDoPDF est un convertisseur de fichier PDF à usage personnel ou commercial. En utilisant ce programme, vous pourrez créer des fichiers PDF en choisissant la commande "impression" à partir de n'importe quelle application. En un clic, convertissez vos... www.commentcamarche.net/telecharger/telecharger-34055501-dopdf
Vidéo et imagerie numérique - Le format PNG Le format PNG (Portable Network Graphics, ou format Ping) est un format de fichier graphique bitmap (raster). Il a été mis au point en 1995 afin de fournir une alternative libre au format GIF, format propriétaire dont les droits sont détenus par la... www.commentcamarche.net/video/format-png.php3
Toutes les réponses pour « Imprimer une forme a partir de VB .NET »