Newsgroup: it.comp.lang.visual-basic
Titolo: Lo sfondo dei caratteri non è trasparente!

Ciao a tutti,
ho scritto un piccolo programma che fa la stampa di un certo report.
Per fare la stampa uso l'oggetto PRINTER di VB 6.0
Il programma l'ho testato con una Epson Stylus Color 600 e con questa non ho
avuto nessun problema.
Invece nella ditta dove il programma deve girare non funziona
correttamente... mi spiego meglio:
In alcuni punti della stampa il testo viene stampato su uno sfondo
leggermente scuro (grigio).
Ebbene: mentre con la mia stampante non ho alcun problema su altre stampante
tipo Kyocera FS-1500, HP DeskJet 550C o KYOCERA FS.850 il testo viene sempre
stampato con uno sfondo bianco, come se NON FOSSERO trasparenti.
Ho provato di tutto:
ho usato tutte le combinazioni di DRAWSTYLE, FILLSTYLE, FONTTRANSPARENT,
FORECOLOR, ecc.... ma niente da fare...
Ho anche provato a smanettare con il driver della stampante nel pannello di
controllo.
Ho provato il programma sia su Win 95 che su Win 98 senza nessun
cambiamento.
C'e nessuno che ha avuto il mio stesso problema?
Qualcuno sa indicarmi come posso risolverlo?
Mi fareste davvero un grande favore in quanto su questo problema ci sto
cozzando ormai da settimane...
CIAO e grazie.
Mario.

Ciao a tutti,
ho scritto un piccolo programma che fa la stampa di un certo report.
Per fare la stampa uso l'oggetto PRINTER di VB 6.0
Il programma l'ho testato con una Epson Stylus Color 600 e con questa non ho
avuto nessun problema.
Invece nella ditta dove il programma deve girare non funziona
correttamente... mi spiego meglio:
In alcuni punti della stampa il testo viene stampato su uno sfondo
leggermente scuro (grigio).
Ebbene: mentre con la mia stampante non ho alcun problema su altre stampante
tipo Kyocera FS-1500, HP DeskJet 550C o KYOCERA FS.850 il testo viene sempre
stampato con uno sfondo bianco, come se NON FOSSERO trasparenti.
Ho provato di tutto:
ho usato tutte le combinazioni di DRAWSTYLE, FILLSTYLE, FONTTRANSPARENT,
FORECOLOR, ecc.... ma niente da fare...
Ho anche provato a smanettare con il driver della stampante nel pannello di
controllo.
Ho provato il programma sia su Win 95 che su Win 98 senza nessun
cambiamento.
In allegato a questo messaggio ci sono due piccolissimi file .GIF che
mostrano come deve essere la stampa e come invece viene stampata.
Lo so che č vietato mandare allegati su questo NG, ma questi sono davvero
piccoli.
Se il moderatore puo' sentirmi: per favore fammi postare questo messaggio...
se proprio non puoi fare a meno di bloccarlo allora postalo senza allegati.
(  8-)  )
C'e nessuno che ha avuto il mio stesso problema?
Qualcuno sa indicarmi come posso risolverlo?
Mi fareste davvero un grande favore in quanto su questo problema ci sto
cozzando ormai da settimane...
CIAO e grazie.
Mario.
begin 666 corretto.gif
<encoded_portion_removed>
begin 666 sbagliato.gif
<encoded_portion_removed>

correttamente... mi spiego meglio:
Vevi impostare la proprieta'     Printer.FontTransparent = True
Io ho VB5 SP3 e pure cosi' non funziona, e' BACATO l'oggetto printer (puce
con SP3!)
Quindi uso le API:
'Dichiarazione
Private Declare Function SetBkMode Lib "gdi32" (ByVal hdc As Long, ByVal
nBkMode As Long) As Long
Const TRANSPARENT = 1
Const OPAQUE = 2
    ' Utilizzo
    Call SetBkMode(Printer.hdc, TRANSPARENT)    ' Toglie il bug del VB5 SP3
    Printer.Print Attr.Stringa;
Saluti
Ciao
By -MES-   Maronese Ettore
http://ilmes.freeweb.org
(con OCX per stampare i recordset)
Sito Comune di programmatori Visual Basic
http://www.murialdo.it/it_lang_vb

Dunque...
Io ho avuto lo stesso problema con una BJC-4300 (sorvolo sul fatto che
 ho perso una settimana per poi scoprire che il driver di tale 
stampante era incompatibile con il photoshop e mandava in crash il
sistema)
compilando in VB5 e.e..
In particolare, anche se settavo la proprietà  
Printer.FontTransparent = True 
lo sfondo del carattere non era trasparente.
Credo (credo) non sia un bug del compilatore ma un problema del
driver della stampante, infatti  non tutte le proprietà dell'oggetto
printer sono regolabili e ciò dipende dal driver utilizzato, quindi
o cambi stampante (come ho fatto io) o provi a vedere se trovi 
un driver compatibile con la tua stampante (nel manuale di solito
sono riportati) che supporti la proprietà fontTransparent.
Se qualcuno ha altre idee spari pure...