Bonsoir !
J'ai trouver un code sur ce site qui me permet donc d'imprimer un formulaire.
Le problème c'est que quand je récupère ça dans mon fichier (impression dans un fichier) j'ai uniquement mon formulaire met tout est en noir (sur papier je vous dis pas l'encre gaspillé, j'ai testé...), pas de label, rien, nada 0, que dal, juste du noir...
Donc voici mon code, j'espères que vous allez pouvoir m'éclairer^^
Petite précision, si je modifie la taille de mon formulaire, le rectangle noir qui est imprimer est également modifié.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 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 Dim memoryImage As Bitmap Private Sub CaptureScreen() Dim mygraphics As Graphics = Me.CreateGraphics() Dim s As Size = Me.Size memoryImage = New Bitmap(s.Width, s.Height, mygraphics) Dim memoryGraphics As Graphics = Graphics.FromImage(memoryImage) Dim dc1 As IntPtr = mygraphics.GetHdc Dim dc2 As IntPtr = memoryGraphics.GetHdc BitBlt(dc2, 0, 0, Me.ClientRectangle.Width, _ Me.ClientRectangle.Height, dc1, 0, 0, 13369376) mygraphics.ReleaseHdc(dc1) memoryGraphics.ReleaseHdc(dc2) End SubMerci de votre aide !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Private Sub F_impression_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'je remplis les labelsavec des variables ... ... 'Appel de la procédure CaptureScreen() PrintDocument1.Print() End sub
Partager