Attribute VB_Name = "modGestionDuPressePapier"
Option Explicit

Dim IndexCopie As Integer

Sub ImprimerLePressePapier()
    
    'Définition des variables
    Dim Hauteur
    Dim Hauteur1
    Dim Largeur
    Dim Largeur1
    Dim Zoom
    Dim Zoom1
    
    'Je vérifie que le presse-papier n'est pas vide
    If Not Clipboard.GetFormat(2) Then
        MsgBox "Il n'y a aucune image dans le presse-papier" & vbCr _
                & "ou celui-ci a été vidé.", vbExclamation, _
                "Fin de la procédure"
        Exit Sub
    End If
    
    'Je récupère la hauteur et la largeur de l'image
    Hauteur = Clipboard.GetData.Height
    Largeur = Clipboard.GetData.Width
    
    'Je récupère la hauteur et la largeur de l'imprimante
    Largeur1 = Printer.ScaleWidth
    Hauteur1 = Printer.ScaleHeight

    'Je détermine le zoom à appliquer sachant qu'une copie d'écran est souvent plus large que haute
    'd'autant que j'imprime en mode portrait
    Zoom = Largeur1 / Largeur
    
    'Je modifie la largeur et la hauteur à utiliser
    Largeur = Largeur * Zoom
    Hauteur = Hauteur * Zoom
    
    'J'envoie les informations à l'imprimante
    Printer.PaintPicture Clipboard.GetData, 0, 0, Largeur, Hauteur
    
    'J'indique un petit commentaire sous l'image
    Printer.CurrentY = Hauteur
    Printer.Print "Impression réalisée le " & Format(Date, "dd mmmm yyyy");
    Printer.CurrentX = Printer.ScaleWidth - Printer.TextWidth("©  Didier LANOTTE, septembre 2002")
    Printer.Print "©  Didier LANOTTE, septembre 2002"
                    
    Printer.EndDoc
    
    'J'informe l'utilisateur que c'est envoyé
    MsgBox "L'image a été envoyée à l'imprimante.", , "C'est fait..."
    
    'Je vide le presse-papier
    Clipboard.Clear
    
End Sub

Sub ViderPressePapier()
    Clipboard.Clear
End Sub

Sub EnregistrerImage_BMP()
    IndexCopie = IndexCopie + 1
    Screen.MousePointer = vbHourglass
    On Error Resume Next
    SavePicture Clipboard.GetData, App.Path & "\Ecran" & IndexCopie & ".bmp"
    If err <> 0 Then
        If err = 380 Then MsgBox "Il n'y a aucune image dans le presse-papier" & vbCr _
                                    & "ou celui-ci a été vidé.", vbExclamation, _
                                    "Fin de la procédure"
        err.Clear
    End If
    Screen.MousePointer = vbDefault
    
End Sub

Sub EnregistrerImage_JPG()
    On Error GoTo err
    Screen.MousePointer = vbHourglass
    
    IndexCopie = IndexCopie + 1
    
    Dim sI As String
    Dim c As New cDIBSection
    Dim i As Long
    
    Set c = New cDIBSection
    c.CreateFromPicture Clipboard.GetData
    
    sI = App.Path & "\" & Int(Timer) & ".jpg"
    'sI = App.Path & "\10.jpg"
    
    If Not SaveJPG(c, sI) Then
     '   MsgBox "Il n'y a aucune image dans le presse-papier" & vbCr _
      '          & "ou celui-ci a été vidé.", vbExclamation, _
       '         "Fin de la procédure"
    End If
    
    Screen.MousePointer = vbDefault
    frmPreview.Prt2Pdf
    Exit Sub
    
err:
    Resume
End Sub


