OVH Cloud OVH Cloud

Problème d'impression BLANC sur NOIR

8 réponses
Avatar
Driss HANIB
Bonjour à tous,

toujours dans le cadre de ma dll preview, j'ai un petit souci pour imprimer
un texte blanc sur noir (mais le problème est le même dès que j'ai un fond
non blanc)
Sur mon preview, en lo'ccurnce un picture box, pas de problème, mais dès que
je passe sur l'imprimante, j'ai un fond blanc autour des lettres alors que
le reste du cadre est de la couleur désirée

Je fais un cadre avec un fond de type 'plein' en couleur. ceci correspond à
une cellule d'in tableau..
je cherche à ecrire dans ce cadre coloré, un texte.
Pas de problème pour positionner dans ce cadre le texte.
cependant le fond sous le texte reste blanc

j'ai une classe où je gère les propriétés de la fonte utilisée et notamment
le fond transparent

Public Property Let FontTransparent(ByVal vNewValue As Boolean)
If PrintFlag Then ' printflag est un booléen permettant
de choisir la cible de l'impression
If vNewValue Then
Printer.FontTransparent = vNewValue
Else
Printer.FontTransparent = True

End If
Else
ObjPrint.FontTransparent = vNewValue ' objprint est l'objet
liée à la picturebox lors du preview
Debug.Print "Fond transparent = " & ObjPrint.FontTransparent
End If
End Property

le reste je crois est classic: j'attribue la valeur 'Vrai', puis j'imprime..
en utilisant debug je suis bien le caractère 'vrai'
mais pas de transparence
si quelqu'un peut m'aider..

merci d'avance

Driss

8 réponses

Avatar
Driss HANIB
Bonjour,

cela n'inspire personne ?
Quelqu'un a-t-il programmé ce type d'impression ?
Est-ce la même methode utilisée ? et cela fonctionne-t-il ?

Merci

Driss

"Driss HANIB" a écrit dans le message de
news:
Bonjour à tous,

toujours dans le cadre de ma dll preview, j'ai un petit souci pour


imprimer
un texte blanc sur noir (mais le problème est le même dès que j'ai un fond
non blanc)
Sur mon preview, en lo'ccurnce un picture box, pas de problème, mais dès


que
je passe sur l'imprimante, j'ai un fond blanc autour des lettres alors que
le reste du cadre est de la couleur désirée

Je fais un cadre avec un fond de type 'plein' en couleur. ceci correspond


à
une cellule d'in tableau..
je cherche à ecrire dans ce cadre coloré, un texte.
Pas de problème pour positionner dans ce cadre le texte.
cependant le fond sous le texte reste blanc

j'ai une classe où je gère les propriétés de la fonte utilisée et


notamment
le fond transparent

Public Property Let FontTransparent(ByVal vNewValue As Boolean)
If PrintFlag Then ' printflag est un booléen permettant
de choisir la cible de l'impression
If vNewValue Then
Printer.FontTransparent = vNewValue
Else
Printer.FontTransparent = True

End If
Else
ObjPrint.FontTransparent = vNewValue ' objprint est l'objet
liée à la picturebox lors du preview
Debug.Print "Fond transparent = " & ObjPrint.FontTransparent
End If
End Property

le reste je crois est classic: j'attribue la valeur 'Vrai', puis


j'imprime..
en utilisant debug je suis bien le caractère 'vrai'
mais pas de transparence
si quelqu'un peut m'aider..

merci d'avance

Driss





Avatar
Daniel AUBRY
Bonjour,

j'ai sensiblement le même problème.
J'ai posté ce qui est ci-dessous et resté sans réponse également.

souhaitant tracer un cadre noir avec l'intérieur vert clair :
je me retouve avec seulement le cadre vert si j'écris avant
ou si je trace le cadre avant d'écrire, mon texte s'inscrit dans
un cadre blanc (collant pile à la taille de la police) centré dans
mon cadre vert.

Je ne pige pas tout .............

XD = X + 30: YD = Y + 5: LB = 50: HB = 9

Texte = "Carte de membre"
Printer.Font.Size = 15
Printer.CurrentX = XD + ((LB - Printer.TextWidth(Texte)) / 2)
Printer.CurrentY = YD + ((HB - Printer.TextHeight(Texte)) / 2)
Printer.Print Texte

Printer.FillStyle = 0
Printer.FillColor = &HC0FFC0
Printer.Line (XD, YD)-(XD + LB, YD + HB), , B
Printer.FillStyle = 1



"Driss HANIB" a écrit dans le message de news:

Bonjour,

cela n'inspire personne ?
Quelqu'un a-t-il programmé ce type d'impression ?
Est-ce la même methode utilisée ? et cela fonctionne-t-il ?

Merci

Driss

"Driss HANIB" a écrit dans le message de
news:
Bonjour à tous,

toujours dans le cadre de ma dll preview, j'ai un petit souci pour


imprimer
un texte blanc sur noir (mais le problème est le même dès que j'ai un
fond
non blanc)
Sur mon preview, en lo'ccurnce un picture box, pas de problème, mais dès


que
je passe sur l'imprimante, j'ai un fond blanc autour des lettres alors
que
le reste du cadre est de la couleur désirée

Je fais un cadre avec un fond de type 'plein' en couleur. ceci correspond


à
une cellule d'in tableau..
je cherche à ecrire dans ce cadre coloré, un texte.
Pas de problème pour positionner dans ce cadre le texte.
cependant le fond sous le texte reste blanc

j'ai une classe où je gère les propriétés de la fonte utilisée et


notamment
le fond transparent

Public Property Let FontTransparent(ByVal vNewValue As Boolean)
If PrintFlag Then ' printflag est un booléen
permettant
de choisir la cible de l'impression
If vNewValue Then
Printer.FontTransparent = vNewValue
Else
Printer.FontTransparent = True

End If
Else
ObjPrint.FontTransparent = vNewValue ' objprint est
l'objet
liée à la picturebox lors du preview
Debug.Print "Fond transparent = " & ObjPrint.FontTransparent
End If
End Property

le reste je crois est classic: j'attribue la valeur 'Vrai', puis


j'imprime..
en utilisant debug je suis bien le caractère 'vrai'
mais pas de transparence
si quelqu'un peut m'aider..

merci d'avance

Driss









Avatar
Pascal B.
Salut Driss,

Je crois me souvenir qu'il y a un bug avec la propriété FontTransparent de l'objet Printer.
Pour contourner le problème, j'utilise une API:

Private Declare Function SetBkMode Lib "gdi32" _
(ByVal hdc As Long, ByVal nBkMode As Long) As Long
Private Const TRANSPARENT = 1
Private Const OPAQUE = 2

Private iBKMode as Long

iBKMode = SetBKMode(Printer.Hdc, TRANSPARENT)
iBKMode = SetBKMode(Printer.Hdc, OPAQUE)

Cordialement
Pascal


"Driss HANIB" wrote in message news:
| Bonjour à tous,
|
| toujours dans le cadre de ma dll preview, j'ai un petit souci pour imprimer
| un texte blanc sur noir (mais le problème est le même dès que j'ai un fond
| non blanc)
| Sur mon preview, en lo'ccurnce un picture box, pas de problème, mais dès que
| je passe sur l'imprimante, j'ai un fond blanc autour des lettres alors que
| le reste du cadre est de la couleur désirée
|
| Je fais un cadre avec un fond de type 'plein' en couleur. ceci correspond à
| une cellule d'in tableau..
| je cherche à ecrire dans ce cadre coloré, un texte.
| Pas de problème pour positionner dans ce cadre le texte.
| cependant le fond sous le texte reste blanc
|
| j'ai une classe où je gère les propriétés de la fonte utilisée et notamment
| le fond transparent
|
| Public Property Let FontTransparent(ByVal vNewValue As Boolean)
| If PrintFlag Then ' printflag est un booléen permettant
| de choisir la cible de l'impression
| If vNewValue Then
| Printer.FontTransparent = vNewValue
| Else
| Printer.FontTransparent = True
|
| End If
| Else
| ObjPrint.FontTransparent = vNewValue ' objprint est l'objet
| liée à la picturebox lors du preview
| Debug.Print "Fond transparent = " & ObjPrint.FontTransparent
| End If
| End Property
|
| le reste je crois est classic: j'attribue la valeur 'Vrai', puis j'imprime..
| en utilisant debug je suis bien le caractère 'vrai'
| mais pas de transparence
| si quelqu'un peut m'aider..
|
| merci d'avance
|
| Driss
|
|
|
Avatar
Driss HANIB
merci Pascal,

je teste et je te tiens au courant


Driss

"Pascal B." a écrit dans le message de
news:
Salut Driss,

Je crois me souvenir qu'il y a un bug avec la propriété FontTransparent de


l'objet Printer.
Pour contourner le problème, j'utilise une API:

Private Declare Function SetBkMode Lib "gdi32" _
(ByVal hdc As Long, ByVal nBkMode As Long) As Long
Private Const TRANSPARENT = 1
Private Const OPAQUE = 2

Private iBKMode as Long

iBKMode = SetBKMode(Printer.Hdc, TRANSPARENT)
iBKMode = SetBKMode(Printer.Hdc, OPAQUE)

Cordialement
Pascal


"Driss HANIB" wrote in message


news:
| Bonjour à tous,
|
| toujours dans le cadre de ma dll preview, j'ai un petit souci pour


imprimer
| un texte blanc sur noir (mais le problème est le même dès que j'ai un


fond
| non blanc)
| Sur mon preview, en lo'ccurnce un picture box, pas de problème, mais dès


que
| je passe sur l'imprimante, j'ai un fond blanc autour des lettres alors


que
| le reste du cadre est de la couleur désirée
|
| Je fais un cadre avec un fond de type 'plein' en couleur. ceci


correspond à
| une cellule d'in tableau..
| je cherche à ecrire dans ce cadre coloré, un texte.
| Pas de problème pour positionner dans ce cadre le texte.
| cependant le fond sous le texte reste blanc
|
| j'ai une classe où je gère les propriétés de la fonte utilisée et


notamment
| le fond transparent
|
| Public Property Let FontTransparent(ByVal vNewValue As Boolean)
| If PrintFlag Then ' printflag est un booléen


permettant
| de choisir la cible de l'impression
| If vNewValue Then
| Printer.FontTransparent = vNewValue
| Else
| Printer.FontTransparent = True
|
| End If
| Else
| ObjPrint.FontTransparent = vNewValue ' objprint est


l'objet
| liée à la picturebox lors du preview
| Debug.Print "Fond transparent = " & ObjPrint.FontTransparent
| End If
| End Property
|
| le reste je crois est classic: j'attribue la valeur 'Vrai', puis


j'imprime..
| en utilisant debug je suis bien le caractère 'vrai'
| mais pas de transparence
| si quelqu'un peut m'aider..
|
| merci d'avance
|
| Driss
|
|
|




Avatar
Driss HANIB
Eh ben CHAPEAU !! ;o))))

Super le problème est résolu avec brio..
Merci

Driss


"Pascal B." a écrit dans le message de
news:
Salut Driss,

Je crois me souvenir qu'il y a un bug avec la propriété FontTransparent de


l'objet Printer.
Pour contourner le problème, j'utilise une API:

Private Declare Function SetBkMode Lib "gdi32" _
(ByVal hdc As Long, ByVal nBkMode As Long) As Long
Private Const TRANSPARENT = 1
Private Const OPAQUE = 2

Private iBKMode as Long

iBKMode = SetBKMode(Printer.Hdc, TRANSPARENT)
iBKMode = SetBKMode(Printer.Hdc, OPAQUE)

Cordialement
Pascal


"Driss HANIB" wrote in message


news:
| Bonjour à tous,
|
| toujours dans le cadre de ma dll preview, j'ai un petit souci pour


imprimer
| un texte blanc sur noir (mais le problème est le même dès que j'ai un


fond
| non blanc)
| Sur mon preview, en lo'ccurnce un picture box, pas de problème, mais dès


que
| je passe sur l'imprimante, j'ai un fond blanc autour des lettres alors


que
| le reste du cadre est de la couleur désirée
|
| Je fais un cadre avec un fond de type 'plein' en couleur. ceci


correspond à
| une cellule d'in tableau..
| je cherche à ecrire dans ce cadre coloré, un texte.
| Pas de problème pour positionner dans ce cadre le texte.
| cependant le fond sous le texte reste blanc
|
| j'ai une classe où je gère les propriétés de la fonte utilisée et


notamment
| le fond transparent
|
| Public Property Let FontTransparent(ByVal vNewValue As Boolean)
| If PrintFlag Then ' printflag est un booléen


permettant
| de choisir la cible de l'impression
| If vNewValue Then
| Printer.FontTransparent = vNewValue
| Else
| Printer.FontTransparent = True
|
| End If
| Else
| ObjPrint.FontTransparent = vNewValue ' objprint est


l'objet
| liée à la picturebox lors du preview
| Debug.Print "Fond transparent = " & ObjPrint.FontTransparent
| End If
| End Property
|
| le reste je crois est classic: j'attribue la valeur 'Vrai', puis


j'imprime..
| en utilisant debug je suis bien le caractère 'vrai'
| mais pas de transparence
| si quelqu'un peut m'aider..
|
| merci d'avance
|
| Driss
|
|
|




Avatar
Driss HANIB
Daniel,
regarde le post de Pascal, sa méthode est nickel ..

Driss

"Daniel AUBRY" a écrit dans le message de
news:455bf785$0$8209$
Bonjour,

j'ai sensiblement le même problème.
J'ai posté ce qui est ci-dessous et resté sans réponse également.

souhaitant tracer un cadre noir avec l'intérieur vert clair :
je me retouve avec seulement le cadre vert si j'écris avant
ou si je trace le cadre avant d'écrire, mon texte s'inscrit dans
un cadre blanc (collant pile à la taille de la police) centré dans
mon cadre vert.

Je ne pige pas tout .............

XD = X + 30: YD = Y + 5: LB = 50: HB = 9

Texte = "Carte de membre"
Printer.Font.Size = 15
Printer.CurrentX = XD + ((LB - Printer.TextWidth(Texte)) / 2)
Printer.CurrentY = YD + ((HB - Printer.TextHeight(Texte)) / 2)
Printer.Print Texte

Printer.FillStyle = 0
Printer.FillColor = &HC0FFC0
Printer.Line (XD, YD)-(XD + LB, YD + HB), , B
Printer.FillStyle = 1



"Driss HANIB" a écrit dans le message de news:

> Bonjour,
>
> cela n'inspire personne ?
> Quelqu'un a-t-il programmé ce type d'impression ?
> Est-ce la même methode utilisée ? et cela fonctionne-t-il ?
>
> Merci
>
> Driss
>
> "Driss HANIB" a écrit dans le message de
> news:
>> Bonjour à tous,
>>
>> toujours dans le cadre de ma dll preview, j'ai un petit souci pour
> imprimer
>> un texte blanc sur noir (mais le problème est le même dès que j'ai un
>> fond
>> non blanc)
>> Sur mon preview, en lo'ccurnce un picture box, pas de problème, mais


dès
> que
>> je passe sur l'imprimante, j'ai un fond blanc autour des lettres alors
>> que
>> le reste du cadre est de la couleur désirée
>>
>> Je fais un cadre avec un fond de type 'plein' en couleur. ceci


correspond
> à
>> une cellule d'in tableau..
>> je cherche à ecrire dans ce cadre coloré, un texte.
>> Pas de problème pour positionner dans ce cadre le texte.
>> cependant le fond sous le texte reste blanc
>>
>> j'ai une classe où je gère les propriétés de la fonte utilisée et
> notamment
>> le fond transparent
>>
>> Public Property Let FontTransparent(ByVal vNewValue As Boolean)
>> If PrintFlag Then ' printflag est un booléen
>> permettant
>> de choisir la cible de l'impression
>> If vNewValue Then
>> Printer.FontTransparent = vNewValue
>> Else
>> Printer.FontTransparent = True
>>
>> End If
>> Else
>> ObjPrint.FontTransparent = vNewValue ' objprint est
>> l'objet
>> liée à la picturebox lors du preview
>> Debug.Print "Fond transparent = " & ObjPrint.FontTransparent
>> End If
>> End Property
>>
>> le reste je crois est classic: j'attribue la valeur 'Vrai', puis
> j'imprime..
>> en utilisant debug je suis bien le caractère 'vrai'
>> mais pas de transparence
>> si quelqu'un peut m'aider..
>>
>> merci d'avance
>>
>> Driss
>>
>>
>>
>
>




Avatar
jm
"Driss HANIB" wrote in message
news:
Eh ben CHAPEAU !! ;o))))

Super le problème est résolu avec brio..
Merci




Hello,

puisqu'on parle d'impression, je voudrais vous signaler cet excellent
document:
http://bidou.ftp-developpez.com/Cours/VB/VB-Impression.pdf

Bonne journée à tous!

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
mailto: remove '_no_spam_' ;
FAQ VB: http://faq.vb.free.fr/
Avatar
Driss HANIB
merci Jean Marc,

j'avais consulté ce document.
j'utilise à peu près toutes ces possibilités plus les vrais marges de
l'imprimnte avec GetDeviceCaps.
j'ai mis une classe de création de tableaux avec formatage de chaque cellule
(bordures, trames, police..)
j'ai d'abord mis au point dans un picture box (print preview) mais
maintenant je regarde comment imprimer.
pour l'instant je réimprime les picturs boc créés, car il ya quelques bugs
dans l'impression directe, pusique chaque procédure a sa partie destinée au
picturebox et à l'imprimante.

Je vais créer un nouveau post pour l'écriture de texte en rotation.

Merci

Driss


"jm" a écrit dans le message de
news:455c5e70$0$21486$

"Driss HANIB" wrote in message
news:
> Eh ben CHAPEAU !! ;o))))
>
> Super le problème est résolu avec brio..
> Merci
>

Hello,

puisqu'on parle d'impression, je voudrais vous signaler cet excellent
document:
http://bidou.ftp-developpez.com/Cours/VB/VB-Impression.pdf

Bonne journée à tous!

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
mailto: remove '_no_spam_' ;
FAQ VB: http://faq.vb.free.fr/