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

Responder a