Te envío el PDF explicativo del OCX de una impresora fiscal SRP 350 y un script en PB para que te hagas una idea.
La impresión no tiene nada que ver con las impresoras comunes, es rígida y estructurada.
Debes pedir el OCX de la impresora a tu distribuidor.
Me comentas como te va.
any fol
long vcaja,res,vfecha,dias,resto1,resto2,hora,minu,segu
date fechaf,fechai=date("01/01/1980")
integer val,nu1,nu2,valo
string fis_des,sgfolio,sfiscan,sfisval,sfiscancela,sfisserie
decimal fis_can,fis_val,fis_mon,fis_cancela
//fis_cancela=dw_3.object.cancela[1]
val=m_OCX1.object.init(1); // Abre puerto Com1
val=m_OCX1.object.abrirboleta(0,0); //Abre boleta sin encabezados ni logo
nu2=dw_2.rowcount()
for nu1=1 to nu2
fis_des=left((dw_2.object.prod_des[nu1]),38)
fis_can=dw_2.object.can[nu1]
fis_val=dw_2.object.precio[nu1]
sfiscan=string(fis_can)
sfisval=string(fis_val)
val=m_OCX1.object.agregaitem(fis_des,sfiscan,sfisval);
next
//val=m_OCX1.object.agregadevolucion("devolucion",20);
//val=m_OCX1.object.agregadescuento("Descuento",10); //envia 10 de descuento
//val=m_OCX1.object.agregarecargo("Recargo",20); //envia 20 de recargo
sfiscancela=string(cancela) //es con lo que paga el cliente (ver si sobra vuelto)
//val=m_OCX1.object.agregapago(0,100000); //Paga 100000 con tipo de pago 0
val=m_OCX1.object.agregapago(0,sfiscancela); //Paga con tipo de pago 0
//val=m_OCX1.object.agregadonacion("donacion",10); //da 10 de donación
fol=m_OCX1.object.obtenernumboleta()
fol=m_OCX1.object.boleta()
sfisserie=m_OCX1.object.obtenerSerial
vcaja = m_ocx1.object.caja
res = m_ocx1.object.obtenerfecha()
vfecha = m_ocx1.object.fecha
dias = vfecha / 86400
dias = truncate(dias,0)
resto1 = vfecha - dias*86400
hora = resto1/3600
hora = truncate(hora,0)
resto2 = resto1 - hora * 3600
minu = resto2/60
minu = truncate(minu,0)
segu = resto2 - minu*60
fechaf = RelativeDate ( fechai,dias )
val=m_OCX1.object.cierraboleta(0); //cierra boleta sin imprimir cola
val=m_OCX1.object.fini(); //cierra puerto