Imprimer dans une image

Signaler
Messages postés
675
Date d'inscription
samedi 31 mai 2003
Statut
Membre
Dernière intervention
26 mai 2013
-
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
-
Bonjour ,

   je fait des factures avec mon programme realiser en vb6 , je voudrais avoir une copie sur mon pc
y a t-il un moyen pour que quand je fait mon Printer.EndDoc il me face aussi une image en jpeg ou autre format .
Ou avez vous une autre solution

Merci d'avance
robert

7 réponses

Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
133
A tester :

Dim oCapture As stdPicture
Set oPicture = Printer.Picture
SavePicture(oPicture, "c:\test.bmp")
Messages postés
675
Date d'inscription
samedi 31 mai 2003
Statut
Membre
Dernière intervention
26 mai 2013
1
Bonjour , DARKSIDIOUS

C'est pas une image que je veux imprimer,
je veux imprimer mon texte sur une page A4 on vas dire et qu'il me face une copie
en image .
si je fait
  Printer.print " toto est a l'ordinateur"
Printer.print " toto est a l'ordinateur"
Printer.print " toto est a l'ordinateur"
Printer.print " toto est a l'ordinateur"
Printer.print " toto est a l'ordinateur"
printer.EndDoc
il me sort sa sur mon imprimante ( sa c'est fait)
mais je voudrais une copie end format jpg ou autre
Merci a toi
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
133
As-tu essayé ce que je t'ai donné ?

Sinon, avec :

Dim oCapture As stdPicture
Printer.PaintPicture(oPicture, 0, 0)
SavePicture(oPicture, "c:\test.bmp")

Si cela ne marche pas, il faudra passer par les API Windows pour récupèrer l'image du DC de l'imprimante, un peu plus long à faire...

Il faut savoir que l'imprimante, tout comme un picturebox ou autre contrôle graphique travaille sur des images et non du texte. Donc la propriété Picture de l'imprimante doit (en théorie) contenir les textes que tu lui dit d'imprimer).
Messages postés
675
Date d'inscription
samedi 31 mai 2003
Statut
Membre
Dernière intervention
26 mai 2013
1
me revoila , il y a une erreur de syntaxe
et j'ai bien placer avant le print.EndDoc
A tu une autre idée
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
133
C'est Printer.EndDoc

Mais bon là comme cà, je peux pas t'aider, passe moi le bout de code qui ne marche pas, ce sera plus simple.
Messages postés
675
Date d'inscription
samedi 31 mai 2003
Statut
Membre
Dernière intervention
26 mai 2013
1
Voici une partie

Printer.FontSize = 9
Printer.CurrentX = 20
Printer.CurrentY = 265
Printer.Print "Conditions de ventes:"
Printer.FontSize = 7
Printer.CurrentX = 5
Printer.Print "Toutes les factures et toutes fournitures non contestées endéans les 8 jours , sont censées être acceptées par le client. Nos factures sont payables au grand comptant. "
Printer.CurrentX = 5
Printer.Print "En cas de retard de paiement, il sera dû de plein droit, automatiquement et sans aucune mise en demeure."
Printer.CurrentX = 5
Printer.Print "Une indemnité forfaitaire valant cause pénale d'un montant de 12% avec un minimum de 40?. En cas de litige, les tribunaux de namur sont seuls compétents."
'==========acompte verser============
'====================================
If facturation.Text27 <> "" Then
Printer.Line (63, 248)-(190, 237), vbBlack, B
Printer.CurrentX = 70
Printer.CurrentY = 240
sglNombre = Format(Label6, "####0.00")
ff = sglNombre
sglNombre = facturation.Text27


gg = sglNombre
Printer.Print "Acompte reçu " & facturation.Text27 & "? solde restant dû " & Format(ff - gg, "####00.00") & "?"  '- Format(sgllitre * sglrist, "####0.00") & "?"
End If
'==========total complet===================
Printer.FontSize = 10
Printer.CurrentX = 165
Printer.CurrentY = 230
Printer.Print Format(Label6, "####0.00")
'====================================
Dim oCapture As StdPicture
Printer.PaintPicture(oPicture, 0, 0)
SavePicture(oPicture, "c:\test.bmp")


Printer.EndDoc
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
133
Autant pour moi : le paintpicture ne marche que dans un sens : vers l'imprimante.

Par contre, ce qui est bizarre, c'est que cà à l'air d'être pareil pour le DC ! Avec des bitblt, je n'obtient pas l'image du DC de l'imprimante !

A ce moment là, la solution passe par un picturebox : fait une fonction qui prend en argument un object correspondant soit à un objet Printer, soit à un objet PictureBox, ainsi tu pourra imprimer sur l'imprimante, puis dans un picturebox que tu pourras sauvegarder par la suite dans un format image.