Te paso la rutina que utilizo para imprimir en Epson LX-810.
Cualquier duda, a tu disposición.
Saludos cordiales,
_____
De: [email protected] [mailto:[EMAIL PROTECTED] En nombre de Guillermo
Enviado el: miércoles, 04 de junio de 2008 11:55
Para: vbusers List Member
Asunto: [vbusers] definir tamaño de papel - opciones
Hola gente,
Tengo que imprimir unas cosas en un formulario continuo cuyo largo es 25
cm, cosa que no es nada estandar.
Si uso el objeto Printer, no puedo definir el tamaño del papel que
quiero.
Si imprimo al puerto directamente, no sé cómo acomodar el texto por
coordendas (linea,columna).
Basicamente necesitaría saber o bien, como usar un tamaño de papel no
estandar, o sino, como imprimir directo al puerto especificando coordenadas.
Saludos,
Guillermo
__________ Información de NOD32, revisión 3154 (20080603) __________
Este mensaje ha sido analizado con NOD32 antivirus system
http://www.nod32.com
__________ Información de NOD32, revisión 3153 (20080602) __________
Este mensaje ha sido analizado con NOD32 antivirus system
http://www.nod32.com
__________ Información de NOD32, revisión 3153 (20080602) __________
Este mensaje ha sido analizado con NOD32 antivirus system
http://www.nod32.com
Function gImprimirDos(oSIETR As Object, ByVal slForm As String, ByVal ilNroForm
As Integer)
On Error GoTo gImprimirDos
Dim vlImp
Dim vGruta As String
Dim vlCar As String
Dim ili As Integer
Dim ilp As Integer
Dim ilu As Integer
Dim slFld As String
Dim slSql As String
Dim sslDatos As ADODB.Recordset
Dim slTipCmp As String
vlImp = FreeFile 'asigna un nro de archivo que este libre
vGruta = "LPT1"
Open vGruta For Output As vlImp
Select Case ilNroForm
Case 1 'Impresión de B. Julian
Print #vlImp, Chr(27) + Chr(18) 'CAMBIO A LETRA NORMAL PARA
EPSON
Print #vlImp, Chr(27) + "C" + Chr(35) 'DEFINO LA CANTIDAD DE
LINEAS QUE TIENE EL FORM CONTINUO
For ilu = 1 To 2
'ENCABEZADO...
slSql = "SELECT G.FECMOV, G.COD_CLI, P.NOMBRE, P.DIRECCION,
P.LOCALI, L.LOCALIDAD, P.CUIT, X.PROVINCIA, "
slSql = slSql & "I.DETALLE, T.DESC_IMPR, G.FEC_VEN,
T.DESC_COMP, G.LEYENDA FROM GSIVAVTA G, FUCLIENTES P, EXLOCALIDAD L,
EXPROVINCIA X, "
slSql = slSql & "GSTIPOIVA I, GSTIPOCOMP T WHERE
G.ORGANIZACION=[ORGANIZACION] AND G.EMPRESA=[EMPRESA] AND "
slSql = slSql & "G.TIPO_COMP=[TIPOCOMP] AND G.LETRA=[LETRA] AND
G.PREF=[PREF] AND G.NUMERO=[NROCOMN] AND "
slSql = slSql & "P.ORGANIZACION=G.ORGANIZACION AND
P.COD_CLIENTE=G.COD_CLI AND X.PCIA=P.PCIA AND P.PCIA=L.PCIA "
slSql = slSql & "AND P.LOCALI=L.LOCALI AND
I.ORGANIZACION=[ORGANIZACION] AND I.TIPIVA=P.IVA AND "
slSql = slSql & "T.ORGANIZACION=[ORGANIZACION] AND
T.TIPO_COMP=[TIPOCOMP]"
For ili = 1 To objConec.uArgPrint.Count
slFld = objConec.uArgPrint(ili).sCampo
ilp = InStr(slSql, "[")
If ilp Then
slSql = objS.sgReplace(slSql, "[" & slFld & "]",
objS.vgCvtVlr(objConec.uArgPrint(ili).vValor, objE.sgGetTipoCmp(slFld)))
End If
slSql = objS.sgReplace(slSql, "{" & slFld & "}",
objConec.uArgPrint(ili).vValor)
Next ili
Set sslDatos =
objConec.gRecordset(objConec.sgGetTblCon("GSIVAVTA"), slSql)
If sslDatos.RecordCount > 0 Then
sslDatos.MoveFirst
For ili = 1 To 4
vlCar = String(80, " ")
Print #vlImp, vlCar
Next ili
vlCar = String(55, " ") &
Left(UCase(objS.vgSnpVlr(sslDatos, 9, "") & String(20, " ")), 20)
Print #vlImp, vlCar
Select Case ilu
Case 1
vlCar = "ORIGINAL."
Case 2
vlCar = "DUPLICADO"
End Select
vlCar = String(55, " ") & Left(vlCar & String(13, " "), 13)
& objS.sgGetDate(objS.vgSnpVlr(sslDatos, 0, 0)) & String(13, " ")
Print #vlImp, vlCar
For ili = 1 To 2
vlCar = String(80, " ")
Print #vlImp, vlCar
Next ili
vlCar = String(7, " ") & Left(objS.vgSnpVlr(sslDatos, 2, 0)
& String(25, " "), 25) & " CTA:" & Format(objS.vgSnpVlr(sslDatos, 1, 0),
"0000") & String(6, " ")
Print #vlImp, vlCar
vlCar = String(7, " ") & objS.vgSnpVlr(sslDatos, 3, " ")
Print #vlImp, vlCar
vlCar = String(7, " ") & Left(objS.vgSnpVlr(sslDatos, 5, 0)
& String(47, " "), 47)
Print #vlImp, vlCar
vlCar = String(7, " ") & Left(UCase(objS.vgSnpVlr(sslDatos,
8, 0)) & String(45, " "), 45) & Format(Replace(objS.vgSnpVlr(sslDatos, 6, ""),
"-", ""), "##-########-#")
Print #vlImp, vlCar
vlCar = String(14, " ") & "CTA. CTE."
Print #vlImp, vlCar
vlCar = String(80, " ")
Print #vlImp, vlCar
slTipCmp = objS.vgSnpVlr(sslDatos, 12, "")
End If
vlCar = "Cantidad " & Left("Detalle" & String(38, " "), 38)
vlCar = vlCar & Right(String(8, " ") & "Alic.", 8) & String(3,
" ")
vlCar = vlCar & Right(String(8, " ") & "P. Unit.", 8) &
String(3, " ")
vlCar = vlCar & Right(String(8, " ") & "Importe", 8)
Print #vlImp, vlCar
vlCar = String(80, " ")
Print #vlImp, vlCar
slSql = "SELECT SUM(G.CANTIDAD), G.DETALLE, G.ALIC+G.ALICE,
G.PREUNI, SUM(G.IMP_TOTAL)"
slSql = slSql & " FROM GSIVADET G WHERE
G.ORGANIZACION=[ORGANIZACION] AND G.EMPRESA=[EMPRESA] AND
G.TIPO_COMP=[TIPOCOMP] AND G.LETRA=[LETRA] AND G.PREF=[PREF] AND
G.NUMERO=[NROCOMN]"
slSql = slSql & " GROUP BY G.DETALLE, G.ALIC, G.ALICE, G.PREUNI"
slSql = slSql & " ORDER BY G.DETALLE"
For ili = 1 To objConec.uArgPrint.Count
slFld = objConec.uArgPrint(ili).sCampo
ilp = InStr(slSql, "[")
If ilp Then
slSql = objS.sgReplace(slSql, "[" & slFld & "]",
objS.vgCvtVlr(objConec.uArgPrint(ili).vValor, objE.sgGetTipoCmp(slFld)))
End If
slSql = objS.sgReplace(slSql, "{" & slFld & "}",
objConec.uArgPrint(ili).vValor)
Next ili
Set sslDatos =
objConec.gRecordset(objConec.sgGetTblCon("GSIVADET"), slSql)
ilp = 17 - sslDatos.RecordCount
If sslDatos.RecordCount > 0 Then
sslDatos.MoveFirst
While Not sslDatos.EOF
vlCar = Right(String(7, " ") &
Format(objS.vgSnpVlr(sslDatos, 0, 0), "####0.#0"), 7)
vlCar = vlCar & " " & Left(objS.vgSnpVlr(sslDatos, 1,
0) & String(35, " "), 35) & String(3, " ")
vlCar = vlCar & Right(String(8, " ") &
Format(objS.vgSnpVlr(sslDatos, 2, 0), "####0.#0"), 8) & String(4, " ")
vlCar = vlCar & Right(String(8, " ") &
Format(objS.vgSnpVlr(sslDatos, 3, 0), "####0.#0"), 8) & String(3, " ")
vlCar = vlCar & Right(String(8, " ") &
Format(objS.vgSnpVlr(sslDatos, 4, 0), "####0.#0"), 8)
Print #vlImp, vlCar
sslDatos.MoveNext
Wend
End If
For ili = 1 To ilp - 1
vlCar = String(80, " ")
Print #vlImp, vlCar
Next ili
'PIE DE FACTURA
slSql = "SELECT (G.IVACO_IMP_NET+G.IVACO_IMP_ESP), 0,
(G.IVACO_IMP_NET+G.IVACO_IMP_ESP), G.IVACO_IVA_ESP, "
slSql = slSql & "G.IMP_TOTAL, G.ALICE, G.FECMOV, G.ALIC,
G.IVACO_IVA_INS FROM GSIVAVTA G WHERE "
slSql = slSql & "G.ORGANIZACION=[ORGANIZACION] AND
G.EMPRESA=[EMPRESA] AND G.TIPO_COMP=[TIPOCOMP] AND "
slSql = slSql & "G.LETRA=[LETRA] AND G.PREF=[PREF] AND
G.NUMERO=[NROCOMN]"
For ili = 1 To objConec.uArgPrint.Count
slFld = objConec.uArgPrint(ili).sCampo
ilp = InStr(slSql, "[")
If ilp Then
slSql = objS.sgReplace(slSql, "[" & slFld & "]",
objS.vgCvtVlr(objConec.uArgPrint(ili).vValor, objE.sgGetTipoCmp(slFld)))
End If
slSql = objS.sgReplace(slSql, "{" & slFld & "}",
objConec.uArgPrint(ili).vValor)
Next ili
Set sslDatos =
objConec.gRecordset(objConec.sgGetTblCon("GSIVAVTA"), slSql)
If sslDatos.RecordCount > 0 Then
sslDatos.MoveFirst
vlCar = String(80, " ")
If slTipCmp <> "" Then
'vlCar = " Esta " & slTipCmp & " equivale a U$S " &
Format(objS.vgSnpVlr(sslDatos, 4, 0) / oSIETR.dgTraeCotiz("D",
objS.vgSnpVlr(sslDatos, 6, 0), 3), "####0.#0") & String(13, " ")
vlCar = String(Int((80 - Len(slTipCmp) / 2)), " ") &
slTipCmp
End If
Print #vlImp, vlCar
End If
For ili = 1 To 4
vlCar = String(80, " ")
Print #vlImp, vlCar
Next ili
vlCar = String(42, " ") & Format(objS.vgSnpVlr(sslDatos, 5, 0),
"#0.0") & String(9, " ") & Format(objS.vgSnpVlr(sslDatos, 7, 0), "#0.0")
Print #vlImp, vlCar
vlCar = String(80, " ")
Print #vlImp, vlCar
vlCar = Right(String(9, " ") & Format(objS.vgSnpVlr(sslDatos,
0, 0), "#####0.#0"), 9)
vlCar = vlCar & Right(String(9, " ") & " 0.00", 9) &
String(8, " ")
vlCar = vlCar & Right(String(9, " ") &
Format(objS.vgSnpVlr(sslDatos, 0, 0), "#####0.#0"), 9) & String(3, " ")
vlCar = vlCar & Right(String(9, " ") &
Format(objS.vgSnpVlr(sslDatos, 3, 0), "#####0.#0"), 9) & String(3, " ")
vlCar = vlCar & Right(String(9, " ") &
Format(objS.vgSnpVlr(sslDatos, 8, 0), "#####0.#0"), 9) & String(6, " ")
vlCar = vlCar & Right(String(9, " ") &
Format(objS.vgSnpVlr(sslDatos, 4, 0), "#####0.#0"), 9)
Print #vlImp, vlCar
If ilu < 2 Then
For ili = 1 To 7
vlCar = String(80, " ")
Print #vlImp, vlCar
Next ili
End If
Next ilu
End Select
Close (vlImp)
Exit Function
gImprimirDos:
objE.gErr "gImprimirDos"
Exit Sub
End Function