Newsgroup: it.comp.lang.visual-basic
Titolo: [VB.NET] PosPrinter

Ciao a tutti!
Ho a disposizione una stampante per stampare scontrini, marca Ditron.
 
Ho letto il manuale di istruzioni, ma li parla di comanda da inviare al 
display es:
BS / Move cursor left
ACSII Format: BS
Dec. Format: [008]
Hex. Format: [08H]
 
Ma se io voglio stampare una semplice riga da VB come dovrei procedere?
Con la stampa normale e con il metodo "Graphics.DrawString()", oppure c'è 
qualcos'altro per stampare con questo generi di stampanti?
 
Insomma...come si gestiscono le stampanti PosPrinter? 
 

Insomma...come si gestiscono le stampanti PosPrinter?
 
Vediamo di dare informazioni in più...
La stampante è seriale, e ci si potrebbe interfacciare tramite ad essa per 
inviare i comandi di stampa...
Ho trovato questo codice:
 
Dim WithEvents Port As SerialPort = New SerialPort
 
Private Sub Main_Load(ByVal sender As System.Object, ByVal e As 
System.EventArgs) Handles MyBase.Load
       Port.PortName = "COM1"
       Port.BaudRate = 115200
       Port.DataBits = 8
       Port.Parity = Parity.None
       Port.StopBits = StopBits.One
       Port.Handshake = Handshake.XOnXOff
 
            Port.Open()
            Port.Write("Questa è una prova")
            Port.Close()
End Sub
 
Al momento del test quando faccio Port.Open() mi restituisce questo 
messaggio:
"Il nome specificato non inizia con COM/com o non si risolve in una porta 
seriale valida. Nome parametro: portName"
 
Eppure la stampante è impostata sulla COM1, e il nome inizia con COM da come 
potete vedere....
 


Non conosco le stampanti Ditron.
Ho usato Epson e Olivetti.
Comunque...
 
Generalmente le stampanti POS hanno due modalità di funzionamento: in 
emulazione e nativa.
 
L'emulazione è ottenuta da un normalissimo driver per uindos che 
consente di gestire la periferica come una qualsiasi altra stampante. 
L'area indirizzabile è quella di VB ed il driver si occupa di tutto. 
L'utilizzo della grafica è vincolato alle possibilità grafiche 
dell'hardware. Come per qualsiasi stampante VB stampa su un device 
virtuale e sarà poi il driver ad occuparsi di tutto.
 
In modalità nativa la stampante viene pilotata esclusivamente 
utilizzando il suo linguaggio, tipicamente costituito da sequenze escape 
o semplici caratteri di controllo. Le modalità grafiche supportate sono 
abbastana limitate (è una unità POS!) ma generalmente è possibile 
stampare immagini (i logo). Il programamtore deve occuparsi di aprire 
una canale di comunicazione, di inviare i comandi e gestire gli 
eventuali codici di errore riportati.
 
I tempi di elaborazione delle due modalità sono diversissimi. 
L'emulazione richiede tempi di rendering inaccettabili per utilizzi 
seri. Può essere utilizzata per fare dei test, ma per l'uso con il 
pubblico la modalità nativa è l'unica via.
 
Per la connesione seriale (minchia ma quanto è vecchia sta stampante?) 
devi accedere al menu della stampante e vedere i paramentri di 
connessione, casomai impostare quelli che pensi siano migliori quindi 
impostarli nel programma. Il protocollo seriale (RS232C) è rozzo, 
bastardo e primitivo, ma funziona benissimo.
 
Non usare (ripeto NON USARE) emulatori USB/RS232 per fare le prove 
perché, a parte casi rarissimi, non funzionano bene per questo tipo di 
applicazioni ed il loro cattivo malfunzionamento fa perdere tempo 
rendendo impossibile qualsiasi tentativo di comprendere cosa non 
funzioni.
 
-- 
-> G.Chiappori
www.chiappori.it
 
www.chiappori.com