Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    VB6 Problemi con stampante fiscale (seriale)

    Salve, ho cercato ma non ho trovato niente di utile, il problema è questo:
    ho una stampante seriale (epson TM-U295) su di essa ci sono tre tasti: avanti, indietro e rilascia, e servono per mandare in avanti, indietro e rilasciare la carta,
    però a stampa finita non mi rilascia la carta obbligandomi a premere il pulsante release,
    ed io attraverso il codice, vorrei usare l'istruzione (che secondo il manuale è "ESC q" ) in modo da non premere il tasto, per un fatto di comodità
    (per la stampa uso l'oggeto printer, e funziona tutto) ma non so come inserire il comando, ho provato anche ad usare l'oggetto "com" in vb, ma al comando mscomm1.portopen=true mi va in errore di
    run time 8015 "impossibile impostare lo stato di comunicazione.
    E' possibile che non vi siano uno o piu parametri di comnicazione non validi."
    Ah i valori della porta com sono impostati secondo il manuale, perciò è strano.

    Grazie in anticipo dell'aiuto

  2. #2
    Forse ho capito male, ma da manuale ti dice che per premere il tasto devi schiacciare ESC+q da tastiera che corrisponde al pulsante sulla stampante release?

    In tal caso, hai già provato ad utilizzare il SENDKEYS (guarda sull'MSDN per l'invio dei codici tatsto) di VB? Prova ad inserirlo subito dopo il printer.enddoc.

    Spero di aver capito quello che ti serviva.
    The Fresh...remaker
    A volte la risposta è sotto ai nostri occhi, bisogna solo aver voglia di cercarla!!
    http://www.angelsinthedark.it

  3. #3
    Ho provato printer.sendkeys ma da errore "impossibile trovare il metodo o membro dei dati" e si, nel manuale è scritto "release paper: ESC q" ok ora ho provato solamente sendkeys "esc q" e mi va in un ciclo continuo di stampa ora metto il codice:

    Private Sub Command1_Click()


    Printer.FontName = "times new roman"
    Printer.FontBold = True
    Printer.FontSize = 14
    Printer.ScaleMode = 7
    Printer.CurrentY = 5.45
    Printer.CurrentX = 0.5
    Printer.Print "ENTRATA"

    Printer.CurrentY = Printer.CurrentY + 0.45
    Printer.CurrentX = 0.5
    Printer.Print "DATA " & Text1.Text & " ORA " & Text2.Text


    Printer.CurrentY = Printer.CurrentY + 0.45
    Printer.CurrentX = 0.5
    Printer.Print "ORA"


    Printer.EndDoc
    sendkeys "esc q"

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,463
    Ma SendKeys non invia tasti ad un'applicazione Windows?
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    ESC q

    indicano i corrispondenti codici ASCII da inviare alla stampante, non certo dei tasti da pressare sulla tastiera!

    Puoi provare ad inviare i codici con una

    Printer.Printer Chr$(27) & "q";

    in cui il codice 27 e' quello dell'ESC (vedi una tabella ASCII) ...

    Non so se il punto e virgola finale e' necessario o no ... dipende dalla stampante ...

  6. #6
    Grazie per l'aiuto ho risolto così:
    ho installato la stampante come generic\text only e deciso la porta COM,
    dopo che la stampante è stata creata sono andato su proprietà >> comandi stampante >>fine processo di stampa e, nel box vicino ho scritto:

    <1B>e4<1B>q<1B>@

    in questo modo, appena finita la stampa, il cartellino torna indietro. Però il tipo di carattere, grandezza ecc. non posso deciderli; spero sia utile anche ad altri.

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Beh ... dato che hai usato la COM, puoi utilizzare il controllo MSCOMM per inviare i dati e i codici di controllo cosi' come ti ho scritto ...

  8. #8
    Ho provato col controllo mscomm ma da errore quando apro la porta e dice che i parametri non sono giusti, quando invece sono settati secondo il manuale

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Quale errore? Quali parametri?

  10. #10
    Sul manuale della stampante era riportato unpo schema di come settare degli switch (10) in modo da ottenere la velocita desiderata, la parità, bit di stop, ecc.. A queso punto io mi sono configurato la stampante con questi paramentri:
    velocità 9600
    parità no
    bit dati 8
    handshaking dtr\dsr

    ho fatto molte prove con velocita e settaggi diversi ma quando vado ad aprire la porta mscomm di VB al comando mscomm1.PortOpen = True mi dà errore di
    run time 8015 "impossibile impostare lo stato di comunicazione.
    E' possibile che non vi siano uno o piu parametri di comnicazione non validi."
    Ho controllato numerose volte se i dati erano giusti ma l'errore lo da lo stesso.
    Inoltre ho un programma che testa le porte COM (non è vb, è un semplice applicativo), e (provato oggi) se la stampante, nelle opzioni di windows >> stampanti, risulta connessa alla com 1 , e il cavo è alla com2, il programmino permette lo scambio di dati con la porta, ma se il cavo è attaccato alla com2 e nelle opzioni di stampa seleziono come porta la com2 il programmino non mi fa aprire la porta

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.