OVH Cloud OVH Cloud

[VB6] Impression

4 réponses
Avatar
Marco
Salut à Tous,

Voici un bout de code

Printer.Line (145, 0)-(145, 1) ' Marque de pliage
Printer.Line (115, 5)-(185, 15), vbBlue, BF ' Fond du rectangle bleu
'
Printer.Line (115, 5)-(185, 15), , B ' Bord rectangle

Jusqu'ici pas de problème, mais quand je veut imprimer un texte dans ce
rectangle coloré, ex:

Printer.FontSize = 10
Printer.CurrentX = 120: Printer.CurrentY = 6
Printer.Print "COUCOU"

Le fond du texte na pas la couleur du rectangle.

Je pensais en mettant fonttransparent en true, cela allais regler le
problème, mais c'était trop facile ;-)

Un peut ( beacoup) d'aide serais le bien venue.

d'avance merci

4 réponses

Avatar
Christian Hugoud - Xtrem7
Il y a un bug sur l'objet printer :

SetBkMode Printer.hDC, TRANSPARENT

Public Declare Function SetBkMode Lib "gdi32" (ByVal hDC As Long, ByVal
nBkMode As Long) As Long
Public Const OPAQUE = 2
Public Const TRANSPARENT = 1

Christian

"Marco" a écrit dans le message de
news:3fd0678e$0$234$
Salut à Tous,

Voici un bout de code

Printer.Line (145, 0)-(145, 1) ' Marque de pliage
Printer.Line (115, 5)-(185, 15), vbBlue, BF ' Fond du rectangle bleu
'
Printer.Line (115, 5)-(185, 15), , B ' Bord rectangle

Jusqu'ici pas de problème, mais quand je veut imprimer un texte dans


ce
rectangle coloré, ex:

Printer.FontSize = 10
Printer.CurrentX = 120: Printer.CurrentY = 6
Printer.Print "COUCOU"

Le fond du texte na pas la couleur du rectangle.

Je pensais en mettant fonttransparent en true, cela allais regler le
problème, mais c'était trop facile ;-)

Un peut ( beacoup) d'aide serais le bien venue.

d'avance merci



Avatar
Marco
Christian Hugoud - Xtrem7 a écrit :
Il y a un bug sur l'objet printer :

SetBkMode Printer.hDC, TRANSPARENT

Public Declare Function SetBkMode Lib "gdi32" (ByVal hDC As Long, ByVal
nBkMode As Long) As Long
Public Const OPAQUE = 2
Public Const TRANSPARENT = 1

Christian

"Marco" a écrit dans le message de
news:3fd0678e$0$234$

Salut à Tous,

Voici un bout de code

Printer.Line (145, 0)-(145, 1) ' Marque de pliage
Printer.Line (115, 5)-(185, 15), vbBlue, BF ' Fond du rectangle bleu
'
Printer.Line (115, 5)-(185, 15), , B ' Bord rectangle

Jusqu'ici pas de problème, mais quand je veut imprimer un texte dans



ce

rectangle coloré, ex:

Printer.FontSize = 10
Printer.CurrentX = 120: Printer.CurrentY = 6
Printer.Print "COUCOU"

Le fond du texte na pas la couleur du rectangle.

Je pensais en mettant fonttransparent en true, cela allais regler le
problème, mais c'était trop facile ;-)

Un peut ( beacoup) d'aide serais le bien venue.

d'avance merci








Merci de la réponse rapide...

Mais...ou je place ca ???
SetBkMode Printer.hDC, TRANSPARENT
Avatar
François Picalausa
"Marco" a écrit dans le message de
news:3fd07f13$0$241$
Christian Hugoud - Xtrem7 a écrit :
Il y a un bug sur l'objet printer :

SetBkMode Printer.hDC, TRANSPARENT

Public Declare Function SetBkMode Lib "gdi32" (ByVal hDC As Long,
ByVal nBkMode As Long) As Long
Public Const OPAQUE = 2
Public Const TRANSPARENT = 1



Merci de la réponse rapide...

Mais...ou je place ca ???
SetBkMode Printer.hDC, TRANSPARENT



Bonjour/soir,

juste avant tes appels d'impression, il me semble...
donc:
SetBkMode Printer.hDC, TRANSPARENT
Printer.Line (145, 0)-(145, 1) ' Marque de pliage

et dans les déclarations, le declare ;-)

--
François Picalausa (MVP VB)
FAQ VB : http://faq.vb.free.fr
MSDN : http://msdn.microsoft.com
Avatar
grandzebu
Le vendredi 05 Décembre 2003 à 12:10 par Marco :
Salut à Tous,
Voici un bout de code
Printer.Line (145, 0)-(145, 1) ' Marque de pliage
Printer.Line (115, 5)-(185, 15), vbBlue, BF ' Fond du rectangle bleu
'
Printer.Line (115, 5)-(185, 15), , B ' Bord rectangle
Jusqu'ici pas de problème, mais quand je veut imprimer un texte dans ce
rectangle coloré, ex:
Printer.FontSize = 10
Printer.CurrentX = 120: Printer.CurrentY = 6
Printer.Print "COUCOU"
Le fond du texte na pas la couleur du rectangle.
Je pensais en mettant fonttransparent en true, cela allais regler le
problème, mais c'était trop facile ;-)
Un peut ( beacoup) d'aide serais le bien venue.
d'avance merci
Bonjour,
C'est vieux mais le bug existe toujours ...
Une astuce : inclure ces 3 lignes avant l'impression :
Printer.FontTransparent = False
Printer.Print
Printer.FontTransparent = True
Ca parait idiot mais ça marche ...
Surtout pas de point-virgule derrière print; on peux sauvegarder CurrentY avant et le restaurer ensuite pour éviter de sauter une ligne.
GZ