Module d'impression form, texte, image

Contenu du snippet

Slt je suis a fond dans l'impression lol, en fait c un petit module pour les newbees qui se demande comment imprimer du texte, une image, ou une form

Pour le texte avec la fonction imprimeTxt rien de bien fantastique mise a part qu'il faut pas a chaque fois se taper plusieurs lignes pour le placement (currentX,Y) ou pour les autres options!! ici tous en une ligne.

Pour les images la function imprime image à l'avantage d'imprimer directement l'image sans passez par un picturebox (Objet StdForm)

Pour la form!! la fonction ImprimeForm a l'avantage par rapport au PrintForm de pouvoir positioner la form a un endoirt precis et de choisir la hauteur et largeur de sortie!!!

ModeImpression c'est idem que Printer.scalemode=xxxxx
LanceImpression c'est simplement printer.endDoc

Source / Exemple :


'Dans un module
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Const VK_SNAPSHOT As Byte = &H2C
Enum Enum_Param
Milimétres = 0
Centimétres
End Enum

Public Function ImprimeTXT(Texte As String, AxeX As Integer, AxeY As Integer, Optional Couleur As ColorConstants, Optional Police As String = "Arial", Optional Taille As Integer = 12, Optional Gras As Boolean = False, Optional Italique As Boolean = False)
Printer.CurrentX = AxeX
Printer.CurrentY = AxeY
Printer.Font = Police
Printer.FontSize = Taille
Printer.FontBold = Gras
Printer.FontItalic = Italique
Printer.ForeColor = Couleur
Printer.Print Texte
End Function

Public Sub LanceImpression()
Printer.EndDoc
End Sub

Public Function ImprimeImage(Source As String, AxeX As Integer, AxeY As Integer, Largeur As Integer, Hauteur As Integer)
Dim Im As StdPicture
Set Im = LoadPicture(Source)
Printer.PaintPicture Im, AxeX, AxeY, Largeur, Hauteur
End Function

Function ModeImpression(Value As Enum_Param)
If Value = 0 Then Mode% = vbMillimeters Else Mode% = vbCentimeters
Printer.ScaleMode = Mode%
End Function

Function ImprimeForm(Feuille As Form, AxeX As Integer, AxeY As Integer, Largeur As Integer, Hauteur As Integer)
Dim Im As StdPicture
Call keybd_event(VK_SNAPSHOT, 1&, 0&, 0&)
DoEvents
Set Im = Clipboard.GetData
Printer.PaintPicture Im, AxeX, AxeY, Largeur, Hauteur
End Function

'-------------------------------------------------------------------------------------
'UTILISATION DES FONCTIONS DANS UNE FORM

'determine les position en mm (Scalemode)
ModeImpression Milimétres

'Impression de texte
'imprimetxt [Texte,AxeX,AxeY,couleur,police,taille,gras,italique]
'Texte : le texte a imprimer
'AxeX : coordonée a partir de la gauche de la feuille
'AxeY : Coordonée a partir de la droite de la feuille
'-[optionnel]-
'couleur :couleur d'impression
'police : police d 'impression
'Taille: taille d'impression (size)
'Gras : gras(bold)
'Italique : Italique

ImprimeTXT "Times news roman 10,10 taille 16 gras italique", 10, 10, , "times", "16", True, True
ImprimeTXT "Times news roman 10,20 taille 12", 10, 20, , "arial", "12"
LanceImpression

'IMPRESSION IMAGE
'ImprimeImage [Source, AxeX, AxeY, Largeur, Hauteur]
'Source : Chemin de l'image
'AxeX : coordonée a partir de la gauche de la feuille
'AxeY : Coordonée a partir de la droite de la feuille
'Largeur : largeur d'impression de l'image
'Hauteur : Hauteur d'impression de l'image
ImprimeImage "c:\\image.jpg", 10, 10, 100, 120
LanceImpression

'IMPRESSION D'UNE FORM
'ImprimeForm Feuille, AxeX, AxeY, Largeur, Hauteur
'Feuille : La form a imprimer
'AxeX : coordonée a partir de la gauche de la feuille d'imprimante
'AxeY : Coordonée a partir de la droite de la feuille d'imprimante
'Largeur : largeur d'impression de la form
'Hauteur : Hauteur d'impression de la form
ImprimeForm Form1, 0, 0, 200, 280
LanceImpression

Conclusion :


Ps: cette source n'est pas destiné au initié de vb, simplement au debutant qui veulent se familiariser avec l'impression en vb, ou trouver une solution simple pour l'impression!!!!

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.