+ Rispondi al Thread
Visualizzazione dei risultati da 1 a 10 su 10

Discussione: stampa a colori

  1. #1
    help48 non è in linea Scolaretto
    Post
    89

    stampa a colori

    Salve a tutti.
    Ho implementato la seguente routine per la stampa a colori ma non funziona; infatti stampa solo in bianco e nero. Come mai?
    La stampante collegata è una HP deskjet 840C. Forse è questione di driver?.

    Private Sub mnuFileStampa_Click()
    Printer.CurrentX = 750
    Printer.CurrentY = 500
    'per cambiare il font
    Printer.FontSize = 12
    Printer.Font = "Courier new"
    Printer.FontBold = False
    ' abilita colore font
    Printer.ColorMode = vbPRCMColor
    Printer.ForeColor = RGB(255, 0, 0) ' stampa in rosso
    'Printer.ForeColor = RGB(0, 255, 0) ' stampa in verde
    'Printer.ForeColor = RGB(0, 0, 255) ' stampa in blu
    ' stampa
    Printer.Print "123456789vxsvxABCDsvfxsdfvò"
    ' fine stampa
    Printer.EndDoc
    ' torna in modalita monocromatica (nero)
    Printer.ColorMode = vbPRCMMonochrome
    Printer.EndDoc
    End sub

    Vi ringrazio per la dritta sempre professionale e pertinente che sicuramente mi darete.

  2. #2
    L'avatar di gibra
    gibra non è in linea Amanuense
    Luogo
    Breganze (VI)
    Post
    6,148
    A me funziona!

    A parte, tra l'altro, che ho tolto le due righe che impostano il ColorMode,
    non so se è corretto l'approccio che usi nell'impostarlo.
    Prima di modificarlo dovresti memorizzare l'impostazione corrente, per poi ripristinarla dopo la stampa, e questo dovrebbe anche valere anche per il font e relativi attributi.

    Comunque ho stampato in rosso sia con l'impostazione del ColorMode che senza.

    Hai verificato che la stampante predefinita sia collegata?
    A me capita spesso, lavorando nelle diverse aziende, di dover re-impostare la stampante predefinita.

    HTH

  3. #3
    help48 non è in linea Scolaretto
    Post
    89

    stampa a colori

    Caro Gibra, prendo atto di quanto mi dici. Se il codice non contiene errori e una volta stabilito che la stampante sia quella predefinita (HP deskjet 840C) il problema dovrebbe consistere forse nell'impostazione del font e retativi attributi?
    Se bisogna intervenire su questo, fattivamente come dovrei procedere?
    Ancora grazie.

  4. #4
    L'avatar di gibra
    gibra non è in linea Amanuense
    Luogo
    Breganze (VI)
    Post
    6,148
    Quote Originariamente inviato da help48
    Caro Gibra, prendo atto di quanto mi dici. Se il codice non contiene errori e una volta stabilito che la stampante sia quella predefinita (HP deskjet 840C)
    Quindi sei sicuro al 100% che la stampante impostata nel tuo pc come Predefinita è quella che stai usando fisicamente, se è così va bene.

    Quote Originariamente inviato da help48
    il problema dovrebbe consistere forse nell'impostazione del font e retativi attributi?
    Se bisogna intervenire su questo, fattivamente come dovrei procedere?
    Non mi sono spiegato, intendo dire che prima di impostare qualsiasi cosa (colore, font e relativi attributi, proprietà dell'oggetto Printer) devi prima memorizzare i valori correnti e poi ripristinarli dopo aver stampato. Esempio

    Private Sub Stampa()

    Dim sFontName as string, bFontBold as boolean, iFontSize as long
    Dim oScaleMode As integer

    Rem Memorizzo i valori correnti
    With Printer
    sFontName = .FontName
    bFontBold = .FontBold
    lFontSize = .FontSize
    oScaleMode = .ScaleMode
    End with

    Call TuaRoutineDiStampa()

    Rem Ripristino i valori
    With Printer
    .FontName = sFontName
    .FontBold = sFontBold
    .FontSize = sFontSize
    .ScaleMode = oScaleMode
    End with

    End Sub

    Questo è solo un esempio ma in un'applicazione reale devi includere TUTTE le proprietà dell'oggetto Printer, anche Orientation, ScaleWidth, ecc.(l'elenco è lungo) altrimenti rischi che nella prossima stampa che fai restino attive le precedenti impostazioni.


    Questo comunque non risolve il tuo problema, ed onestamente non saprei cosa consigliarti perchè senza avere a disposizione la tua stampante è difficile capire dove può essere il problema.
    La sola cosa che mi era venuta in mente è quella di usare una stampante che non è collegata fisicamente al pc (pur essendo quella Predefinita) e questo giustificherebbe il fatto che non stampa. Ma se dici che non è così...

    Hai provato a stampare altre cose con altri programmi? Magari è un problema del driver della stampante, magari basta re-installarlo...

    HTH

  5. #5
    L'avatar di © rocky
    © rocky non è in linea Scolaretto
    Luogo
    Torino
    Post
    236
    Quote Originariamente inviato da help48
    Caro Gibra, prendo atto di quanto mi dici. Se il codice non contiene errori e una volta stabilito che la stampante sia quella predefinita (HP deskjet 840C) il problema dovrebbe consistere forse nell'impostazione del font e retativi attributi?
    Se bisogna intervenire su questo, fattivamente come dovrei procedere?
    Ancora grazie.
    Ciao Help48,

    forse può esserti utile sapere che ho stampato nei tre colori presenti nel codice da te postato.

    Ho incollato il tuo codice in una Form e non mi stampava nulla, poi ho sostituito la prima riga con: Private Sub Command1_Click() ed ho stampato le tre righe con colori diversi senza alcun problema.

    La prima riga del tuo codice si riferisce invece ad un comando dato da Menu:
    Private Sub mnuFileStampa_Click()

    a parte questo cambiamento tutto il tuo codice è rimasto invariato, quindi può funzionare.

    Come ben saprai, le stampanti sono dotate di una propria memoria, se la stampante non legge il codice, di default stampa in monocromatico.

    (Mie supposizioni si intende) ciao
    Tutta la Vita non è altro che un solo giorno.

  6. #6
    L'avatar di gibra
    gibra non è in linea Amanuense
    Luogo
    Breganze (VI)
    Post
    6,148
    Solo per precisazione:

    Quote Originariamente inviato da © rocky
    Ciao Help48,

    forse può esserti utile sapere che ho stampato nei tre colori presenti nel codice da te postato.

    Ho incollato il tuo codice in una Form e non mi stampava nulla, poi ho sostituito la prima riga con: Private Sub Command1_Click() ed ho stampato le tre righe con colori diversi senza alcun problema.
    La prima riga del tuo codice si riferisce invece ad un comando dato da Menu:
    Private Sub mnuFileStampa_Click()
    Perchè non chiamavi la routine in modo corretto, che è

    codice:
    Call mnuFileStampa_Click

    Quote Originariamente inviato da © rocky
    Come ben saprai, le stampanti sono dotate di una propria memoria, se la stampante non legge il codice, di default stampa in monocromatico.

    (Mie supposizioni si intende) ciao
    Supposizioni errate
    La stampante esegue le istruzioni che il computer invia al driver della stampante che a sua volta le interpreta e le invia alla stampante, la memoria quindi non c'entra.

    Ciao

  7. #7
    L'avatar di © rocky
    © rocky non è in linea Scolaretto
    Luogo
    Torino
    Post
    236
    Risposta per Gibra
    É vero che avrei dovuto fare così: Call mnuFileStampa_Click, ma ho preferito incollare il codice tra Command1 e End Sub visto che erano già predisposti, la cosa importante è che sono riuscito a stampare a colori, mentre l'amico Help84 ha qualche problema.

    Sbagliare "supposizioni" a volte può aiutare a riflettere, con le stampanti c'è sempre poco da fidarsi
    Con una Epson a 24 aghi e un Atari 1040 ne ho passate di tutti i colori.

    OT (Gibra hai un Sito che fa spavento di quanta roba utile c'è...)

    Ciao carissimo
    Tutta la Vita non è altro che un solo giorno.

  8. #8
    help48 non è in linea Scolaretto
    Post
    89

    stampa a colori

    Ragazzi, credo proprio che la mia stampante sia ormai partita, ora fa le bizze anche con il b/n. La routine da me proposta funziona con un'altra stampante della stessa marca.
    Ciao a tutti.

  9. #9
    Post
    1

    Printer.Forecolor è malfunzionante con Vb6

    in molti casi stampa in B/N pur avento impostato un colore.
    La causa stà nella tecnologia dell'oggetto printer ed è spiegata nel sito Microsoft, dove viene fornita anche la soluzione.
    Bisigna anticipare un comando Printer.Print fuori ciclo prima di eseguire Printer.Forecolor, es:
    Printer.Print
    Printer.Forecolor = vbRed
    Printer.Print "xxxquesta è una riga in rosso"

  10. #10
    L'avatar di TheTruster
    TheTruster non è in linea Moderatore Globale Ultimo blog: Mouse Wheel in Visual Basic 6 - ActiveX
    Luogo
    Messina - Italy
    Post
    7,179
    Blogs
    3
    Ciao Giuliano,
    Ti ringrazio per aver arricchito il post di una possibile soluzione, ma tieni presente che riesumare un post di 3 anni fa, può non essere utile nemmeno all'autore del thread, il quale anche se frequenta ancora il Forum, potrebbe aver cambiato progetto o risolto in altro modo.
    Sicuramente meglio dare la priorità alle nuove discussioni evitando di spingerle in basso sollevando discussioni decisamente datate.

    TheTruster
    Il Crossposting è vietato dalla Netiquette!




+ Rispondi al Thread

Discussioni simili

  1. Problema ANNULLA STAMPA
    Da Cis nel forum Visual Basic 6
    Risposte: 10
    Ultimo Post: 11-05-2006, 11:53
  2. Pulsante di comando stampa [ACCESS]
    Da issorcio nel forum Access
    Risposte: 2
    Ultimo Post: 21-02-2006, 10:12
  3. [Word] stampa unione da Access
    Da cfava nel forum Access
    Risposte: 3
    Ultimo Post: 29-07-2005, 13:54
  4. Area di stampa con Excel
    Da martem nel forum Excel
    Risposte: 1
    Ultimo Post: 06-07-2005, 13:03

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi