jfaguiar Posted July 21, 2015 Report Share Posted July 21, 2015 Boa tarde amigos. Como faço na TPRINT para evitar o avanço de página no final do cupom não fiscal. Estou utilizando uma impressora não fiscal de 40 colunas e preciso evitar esse bendito avanço. Obrigado PRINT oPrn NAME "Orc"+LTRIM(STR(TABMESTR->PEDORC)) oprn:DraftMode() PAGE .... ENDPAGE // dar o vanço aqui ENDPRINT Ronaldbuch 1 Quote Link to comment Share on other sites More sharing options...
Ariston Santos Posted July 21, 2015 Report Share Posted July 21, 2015 Oi, amigo. Salve o que deseja imprimir em um TXT, pode ser via TDOSPRN se quiser enviar comandos de formatação, e imprima usando a função PrintFileRaw(). Exemplo: // ImpressÆo em Spool ------------------------------------------------------- function ImpSpool(cArquivoTxt, cImpressora) nResult := PrintFileRaw(cImpressora, cArquivoTxt, "Trabalho de impressão") cMsg := "" SWITCH nResult CASE -1 cMsg += "Erro nos parêmetros passados para a função" ; EXIT CASE -2 cMsg += "Falha na chamada à função OpenPrinter()" ; EXIT CASE -3 cMsg += "Falha na chamada à função StartDocPrinter()" ; EXIT CASE -4 cMsg += "Falha na chamada à função StartPagePrinter()" ; EXIT CASE -5 cMsg += "Falha na alocação de memória" ; EXIT CASE -6 cMsg += "Arquivo " + c_Spool + " não encontrado" ; EXIT END IF ! EMPTY(cMsg) SysRefresh() MsgInfo(cMsg, "Informação") ENDIF return .t. Quote Link to comment Share on other sites More sharing options...
jfaguiar Posted July 21, 2015 Author Report Share Posted July 21, 2015 Obrigado Ariston. Vou testar. Quote Link to comment Share on other sites More sharing options...
jfaguiar Posted July 29, 2015 Author Report Share Posted July 29, 2015 Então, mas creio que usando esse recurso não será possível gerar o cupom não fiscal do SAT, visto que tenho que incluir logos, códigos de barras, etc. Alguém me pode me dar uma dica? Quote Link to comment Share on other sites More sharing options...
kapiaba Posted July 29, 2015 Report Share Posted July 29, 2015 Veja se a PRINTER.PRG suporta o comando lEject := .T. or ..F. da Classe REPORT.PRG http://forums.fivetechsupport.com/viewtopic.php?f=6&t=11744&p=58006&hilit=eject#p58006 Quote Link to comment Share on other sites More sharing options...
kapiaba Posted July 29, 2015 Report Share Posted July 29, 2015 // IMPLIB.PRG By Jose Murugosa. /* Funciones para imprimir con la clase tprint a la manera de la impresión de clipper en modo consola. */ /* Funciones de Impresión con clase tPrint --------------------------------------- IniImp( nAncho, nLargo [, nFilas, nColumnas, cNom_spooler, lsel_imp, lpreview, lLnds ,nCopias ] ) Configura la impresión indicando: ancho y largo de páginas en cms. cantidad de filas y columnas Nombre del spooler de impresión Seleccion de Impresora si va Preview si es apaisado cantidad de copias (Como la impresión de Consola pero con Tprint) PrnSay( nFila, nColum, Var, oFuente[ , nC ] ) Versión del viejo Say de consola con la clase Tprint PrnBox( nFila1, nCol1, nFila2, nCol2, oPen, nC ) Imiprimir una caja con fila columna y fila columna estilo consola con tPrint PrnLine( nFila1, nCol1, nFila2, nCol2, oPen, nC ) Imprimir una línea estilo consola con TPrint FinImp() Cierre de la impresión ---------------------------------------------------------------------------------------------------------------------- FUNCIONES DE IMPRESIÓN ----------------------------------------------------------------------------------------------------------------------*/ /* Variables públicas requeridas en programa principal: PUBLIC oImp, aoFont[4], aAnchop[4] */ #include "Fivewin.ch" FUNCTION IniImp(nAncho, nLargo, nFilas, nColumnas, cNom_spooler, lsel_imp, lpreview, lLnds ,nCopias) /* Sintaxis: IniImp( nAncho, nLargo [, nFilas, nColumnas, cNom_spooler, lsel_imp, lpreview, lLnds ,nCopias ] ) Requeridos: cAncho - Ancho de pagina en cms. cLargo - Largo de página en cms. Opcionales: nFilas - Cantidad de filas en el largo DEFAULT 60 nColumnas - Cantidad de columnas en el ancho 80 o 120 DEFAULT 80 cNom_Spooler - Nombre del listado en Spooler de impresion de Windows DEFAULT "Listado" lSel_imp - .t. para que el usuario seleccione la impresora que usará DEFAULT .t. lPreview - .t. para que se vea una vista preliminar. DEFAULT .f. lLnds - .t. para Apaisado DEFAULT .f. nCopias - Cantidad de copias DEFAULT 1 */ LOCAL cFuente cFuente:="Lucida Console" //Se utiliza aquí una fuente escalar //evitando así mala ubicación de caracteres //Valores default IF cNom_Spooler=NIL cNom_Spooler="Listado" ENDIF IF lSel_Imp=NIL lSel_imp=.t. ENDIF IF lPreview=NIL lPreview=.f. ENDIF IF lLnds=NIL lLnds=.f. ENDIF IF nCopias=NIL nCopias=1 ENDIF PrnSetSize(nAncho*100, nLargo*100) //Creo objeto tprinter IF !lSel_imp .AND. !lPreview PRINT oImp TITLE cNom_Spooler ELSEIF lSel_imp .and. !lPreview PRINT oImp TITLE cNom_Spooler FROM USER ELSEIF !lSel_imp .and. lPreview PRINT oImp TITLE cNom_Spooler PREVIEW ELSEIF lSel_imp .and. lPreview PRINT oImp TITLE cNom_Spooler FROM USER PREVIEW ENDIF IF lLnds oImp:SetLandscape() ENDIF //establezco las copias oImp:SetCopies(nCopias) //calculo anchos de fila y columna segun la resolucion de la impresora aAnchop[1]:=oImp:nVertRes()/nFilas aAnchop[2]:=oImp:nHorzRes()/nColumnas //ancho en pixels de columna aAnchop[3]:=nColumnas //hago publica nColumas en vector aAnchop[4]:=lLnds //hago publica lLnds en el vector //Defino Fonts //Font normal DEFINE FONT aoFont[1] NAME "Lucida Console" SIZE 0, -10 OF oImp //Font Comprimida DEFINE FONT aoFont[2] NAME "Lucida Console" SIZE 0, -8 OF oImp //Font Muy Grande DEFINE FONT aoFont[3] NAME "Lucida Console" SIZE 0, -24 OF oImp //Font Grande DEFINE FONT aoFont[4] NAME "Lucida Console" SIZE 0, -16 OF oImp RETURN NIL /*Fin Funcion IniImp ----------------------------------------------------------------------------------------------------------------------*/ FUNCTION PrnSay( nFila, nColum, Var, oFuente, nC ) LOCAL i, wVar, nesp, nCorr /*Sintaxis: PrnSay( nFila, nColum, Var [, oFuente, nC ] ) nFila es la fila donde se hace la impresion ncolum es la columna donde comienza var es una variable de cualquier tipo que contiene lo que se va a imprimir nC es el total de columnas base (80 o 120) El parámetro var es convertido a texto sin espacios al final y alineado a la derecha. */ IF nC=NIL //Si no se especifica cantidad de columnas uso las especificadas en IniImp() aAnchop[2]:=oImp:nHorzRes()/aAnchop[3] ELSE //Si se especifico cant. de columnas recalculo el ancho de columna aAnchop[2]:=oImp:nHorzRes()/nC ENDIF //Convierto Var a texto para imprimir IF VALTYPE(Var)="A" .or. VALTYPE(Var)="B" .or. VALTYPE(Var)="M" .or. VALTYPE(Var)="O" .or. VALTYPE(Var)="U" wVar=Space(1) ELSEIF valtype(Var)="C" wVar=Rtrim(Var) ELSEIF VALTYPE(Var)="D" wVar:=Transform(Var,"@D") ELSEIF VALTYPE(Var)="L" IF Var wVar="Si" ELSE wVar="No" ENDIF ELSEIF VALTYPE(Var)="N" wVar:=Alltrim(Str(Var)) ENDIF //paso fila y columna a pixels nFila := nFila * aAnchop[1] nColum := nColum * aAnchop[2] //Columna en pixels nesp=( len(wVar) - len( Ltrim( wVar ) ) ) * aAnchop[2] wVar:=Ltrim(wVar) IF wVar<>Space(1) IF Pcount()=3 //Si no indique fuente oImp:Say( nFila, (nColum + nesp), wVar, if( aAnchop[3]<=80, aoFont[1], If( aAnchop[4], aoFont[1], aoFont[2] ) ) ) // si menos 80 cols uso aofont[1] sino si es apaisado, aofont[1] o sino aofont[2] ELSE //si indique fuente oImp:Say(nFila,(nColum + nesp),wVar, oFuente) ENDIF ENDIF RETURN NIL /*Fin Funcion PrnSay ----------------------------------------------------------------------------------------------------------------------*/ FUNCTION PrnBox(nFila1, nCol1, nFila2, nCol2, oPen, nC) /*Sintaxis: PrnBox( nFila, nCol1, nFila2, nCol2, oPen, nC ) nFila es la fila donde se hace la impresion ncolum es la columna donde comienza var es una variable de cualquier tipo que contiene lo que se va a imprimir nC es el total de columnas base (80 o 120) */ IF nC=NIL //Si no se especifica cantidad de columnas uso las especificadas en IniImp() aAnchop[2]:=oImp:nHorzRes()/aAnchop[3] ELSE //Si se especifico cant. de columnas recalculo el ancho de columna aAnchop[2]:=oImp:nHorzRes()/nC ENDIF //paso fila y columna a pixels nFila1 := nFila1 * aAnchop[1] nCol1 := nCol1 * aAnchop[2] nFila2 := nFila2 * aAnchop[1] nCol2 := nCol2 * aAnchop[2] //dibujo el cuadro oImp:Box(nFila1, nCol1, nFila2, nCol2, oPen) RETURN NIL /*Fin Funcion PrnBox ---------------------------------------------------------------------------------------------------------------------*/ FUNCTION PrnLine(nFila1, nCol1, nFila2, nCol2, oPen, nC) IF Pcount()=6 //si se especifico cant. de columnas recalculo el ancho de columna aAnchop[2]:=oImp:nHorzRes()/nC ELSE //Si no se especifica cantidad de columnas uso las especificadas en IniImp() aAnchop[2]:=oImp:nHorzRes()/aAnchop[3] ENDIF //paso fila y columna a pixels nFila1 := nFila1 * aAnchop[1] nCol1 := nCol1 * aAnchop[2] nFila2 := nFila2 * aAnchop[1] nCol2 := nCol2 * aAnchop[2] //Dibujo la linea oImp:Line(nFila1, nCol1, nFila2, nCol2, oPen) RETURN NIL /*Fin Funcion PrnLine ---------------------------------------------------------------------------------------------------------------------*/ FUNCTION FinImp() //Destruyo las fuentes //finalizo la impresión ENDPRINT //elimino los fonts aoFont[1]:End() aoFont[2]:End() aoFont[3]:End() RETURN NIL /*Fin Funcion FinImp ----------------------------------------------------------------------------------------------------------------------*/ Quote Link to comment Share on other sites More sharing options...
kapiaba Posted July 29, 2015 Report Share Posted July 29, 2015 // TESTPRN.PRG By Jose Murugosa. #include "FiveWin.ch" FUNCTION Main() LOCAL oPen PUBLIC oImp, aoFont[4], aAnchop[4] SET DATE TO FRENCH DEFINE PEN oPen WIDTH 5 IniImp(21.5, 27.9, 72, 90, "CompraVenta de Hacienda", .t., .t., .f., 1 ) PAGE PrnBox (22, 7,28,89,oPen) PrnLine(30, 7,30,89,oPen) PrnLine(33, 7,33,89,oPen) prnLine(43, 7,43,89,oPen) PrnLine(45, 7,45,32,oPen) PrnLine(51, 7,51,32,oPen) PrnLine(53, 7,53,32,oPen) PrnLine(57, 7,57,32,oPen) PrnLine(43,62,43,89,oPen) PrnLine(54,62,54,89,oPen) PrnLine(45,36,45,57,oPen) PrnLine(52,36,52,57,oPen) PrnLine(45,62,45,89,oPen) PrnLine(52,62,52,89,oPen) //cabezal PrnSay(16,60, "Form.: "+ "123425", aoFont[1],80) PrnSay(18, 8,"Empresa XXXXXX") PrnSay(18,60,Date()) PrnSay(19, 8,"123456") PrnSay(19,60,1250) PrnSay(23, 8,"Productor:", aoFont[1],80) PrnSay(24, 8,"El Productor que vende", aoFont[1],80) PrnSay(23,45,"Consignatario:", aoFont[1],80) PrnSay(24,45,"El Consignatario que Vende", aoFont[1],80) PrnSay(25, 8,"RUT: "+"12 345678 9123", aoFont[1],80) PrnSay(25,30,"CI: " +"173216547",aoFont[1],80) PrnSay(25,45,"RUT: "+"12 345678 9123", aoFont[1],80) PrnSay(26, 8,"Dicose: "+"123 456 789", aoFont[1],80) PrnSay(26,45,"Dicose: "+"123 456 789", aoFont[1],80) PrnSay(27, 8,"Guia: "+"123456", aoFont[1],80) PrnSay(27,45,"Guia: "+"567890", aoFont[1],80) PrnSay(29, 8,"Tiene flete? ", aoFont[1],80) PrnSay(29, 21,.t., aoFont[1],80) PrnSay(35, 7, "Este es un texto largo escrito para utilizar 120 columnas en medio de un documento que estaba en 80 columnas" ) PrnSay(63,8," .............................. ...............................",aoFont[1],120) PrnSay(64,8," Firma del Comprador Firma de Vendedor/Representante",aoFont[1],120) ENDPAGE //Finalizo impresion FinImp() oPen:End() RETURN NIL /*Fin Función Main() ---------------------------------------------------------------------------------------------------------------------*/ Quote Link to comment Share on other sites More sharing options...
jfaguiar Posted July 29, 2015 Author Report Share Posted July 29, 2015 Iteressante Kapiaba. Vlw Quote Link to comment Share on other sites More sharing options...
kapiaba Posted March 3, 2016 Report Share Posted March 3, 2016 Simulando modo console com PRINTER.PRG #Include "FiveWin.ch" FUNCTION Main() LOCAL oPen PUBLIC oImp, aoFont[4], aAnchop[4] SET DATE TO FRENCH DEFINE PEN oPen WIDTH 5 IniImp(21.5, 27.9, 72, 90, "CompraVenta de Hacienda", .t., .t., .f., 1 ) PAGE PrnBox (22, 7,28,89,oPen) PrnLine(30, 7,30,89,oPen) PrnLine(33, 7,33,89,oPen) prnLine(43, 7,43,89,oPen) PrnLine(45, 7,45,32,oPen) PrnLine(51, 7,51,32,oPen) PrnLine(53, 7,53,32,oPen) PrnLine(57, 7,57,32,oPen) PrnLine(43,62,43,89,oPen) PrnLine(54,62,54,89,oPen) PrnLine(45,36,45,57,oPen) PrnLine(52,36,52,57,oPen) PrnLine(45,62,45,89,oPen) PrnLine(52,62,52,89,oPen) //cabezal PrnSay(16,60, "Form.: "+ "123425", aoFont[1],80) PrnSay(18, 8,"Empresa XXXXXX") PrnSay(18,60,Date()) PrnSay(19, 8,"123456") PrnSay(19,60,1250) PrnSay(23, 8,"Productor:", aoFont[1],80) PrnSay(24, 8,"El Productor que vende", aoFont[1],80) PrnSay(23,45,"Consignatario:", aoFont[1],80) PrnSay(24,45,"El Consignatario que Vende", aoFont[1],80) PrnSay(25, 8,"RUT: "+"12 345678 9123", aoFont[1],80) PrnSay(25,30,"CI: " +"173216547",aoFont[1],80) PrnSay(25,45,"RUT: "+"12 345678 9123", aoFont[1],80) PrnSay(26, 8,"Dicose: "+"123 456 789", aoFont[1],80) PrnSay(26,45,"Dicose: "+"123 456 789", aoFont[1],80) PrnSay(27, 8,"Guia: "+"123456", aoFont[1],80) PrnSay(27,45,"Guia: "+"567890", aoFont[1],80) PrnSay(29, 8,"Tiene flete? ", aoFont[1],80) PrnSay(29, 21,.t., aoFont[1],80) PrnSay(35, 7, "Este es un texto largo escrito para utilizar 120 columnas en medio de un documento que estaba en 80 columnas" ) PrnSay(63,8," .............................. ...............................",aoFont[1],120) PrnSay(64,8," Firma del Comprador Firma de Vendedor/Representante",aoFont[1],120) ENDPAGE //Finalizo impresion FinImp() oPen:End() RETURN NIL /* Funciones para imprimir con la clase tprint a la manera de la impresión de clipper en modo consola. */ /* Funciones de Impresión con clase tPrint --------------------------------------- IniImp( nAncho, nLargo [, nFilas, nColumnas, cNom_spooler, lsel_imp, lpreview, lLnds ,nCopias ] ) Configura la impresión indicando: ancho y largo de páginas en cms. cantidad de filas y columnas Nombre del spooler de impresión Seleccion de Impresora si va Preview si es apaisado cantidad de copias (Como la impresión de Consola pero con Tprint) PrnSay( nFila, nColum, Var, oFuente[ , nC ] ) Versión del viejo Say de consola con la clase Tprint PrnBox( nFila1, nCol1, nFila2, nCol2, oPen, nC ) Imiprimir una caja con fila columna y fila columna estilo consola con tPrint PrnLine( nFila1, nCol1, nFila2, nCol2, oPen, nC ) Imprimir una línea estilo consola con TPrint FinImp() Cierre de la impresión ---------------------------------------------------------------------------------------------------------------------- FUNCIONES DE IMPRESIÓN ----------------------------------------------------------------------------------------------------------------------*/ /* Variables públicas requeridas en programa principal: PUBLIC oImp, aoFont[4], aAnchop[4] */ #include "Fivewin.ch" FUNCTION IniImp(nAncho, nLargo, nFilas, nColumnas, cNom_spooler, lsel_imp, lpreview, lLnds ,nCopias) /* Sintaxis: IniImp( nAncho, nLargo [, nFilas, nColumnas, cNom_spooler, lsel_imp, lpreview, lLnds ,nCopias ] ) Requeridos: cAncho - Ancho de pagina en cms. cLargo - Largo de página en cms. Opcionales: nFilas - Cantidad de filas en el largo DEFAULT 60 nColumnas - Cantidad de columnas en el ancho 80 o 120 DEFAULT 80 cNom_Spooler - Nombre del listado en Spooler de impresion de Windows DEFAULT "Listado" lSel_imp - .t. para que el usuario seleccione la impresora que usará DEFAULT .t. lPreview - .t. para que se vea una vista preliminar. DEFAULT .f. lLnds - .t. para Apaisado DEFAULT .f. nCopias - Cantidad de copias DEFAULT 1 */ LOCAL cFuente cFuente:="Lucida Console" //Se utiliza aquí una fuente escalar //evitando así mala ubicación de caracteres //Valores default IF cNom_Spooler=NIL cNom_Spooler="Listado" ENDIF IF lSel_Imp=NIL lSel_imp=.t. ENDIF IF lPreview=NIL lPreview=.f. ENDIF IF lLnds=NIL lLnds=.f. ENDIF IF nCopias=NIL nCopias=1 ENDIF PrnSetSize(nAncho*100, nLargo*100) //Creo objeto tprinter IF !lSel_imp .AND. !lPreview PRINT oImp TITLE cNom_Spooler ELSEIF lSel_imp .and. !lPreview PRINT oImp TITLE cNom_Spooler FROM USER ELSEIF !lSel_imp .and. lPreview PRINT oImp TITLE cNom_Spooler PREVIEW ELSEIF lSel_imp .and. lPreview PRINT oImp TITLE cNom_Spooler FROM USER PREVIEW ENDIF IF lLnds oImp:SetLandscape() ENDIF //establezco las copias oImp:SetCopies(nCopias) //calculo anchos de fila y columna segun la resolucion de la impresora aAnchop[1]:=oImp:nVertRes()/nFilas aAnchop[2]:=oImp:nHorzRes()/nColumnas //ancho en pixels de columna aAnchop[3]:=nColumnas //hago publica nColumas en vector aAnchop[4]:=lLnds //hago publica lLnds en el vector //Defino Fonts //Font normal DEFINE FONT aoFont[1] NAME "Lucida Console" SIZE 0, -10 OF oImp //Font Comprimida DEFINE FONT aoFont[2] NAME "Lucida Console" SIZE 0, -8 OF oImp //Font Muy Grande DEFINE FONT aoFont[3] NAME "Lucida Console" SIZE 0, -24 OF oImp //Font Grande DEFINE FONT aoFont[4] NAME "Lucida Console" SIZE 0, -16 OF oImp RETURN NIL /*Fin Funcion IniImp ----------------------------------------------------------------------------------------------------------------------*/ FUNCTION PrnSay( nFila, nColum, Var, oFuente, nC ) LOCAL i, wVar, nesp, nCorr /*Sintaxis: PrnSay( nFila, nColum, Var [, oFuente, nC ] ) nFila es la fila donde se hace la impresion ncolum es la columna donde comienza var es una variable de cualquier tipo que contiene lo que se va a imprimir nC es el total de columnas base (80 o 120) El parámetro var es convertido a texto sin espacios al final y alineado a la derecha. */ IF nC=NIL //Si no se especifica cantidad de columnas uso las especificadas en IniImp() aAnchop[2]:=oImp:nHorzRes()/aAnchop[3] ELSE //Si se especifico cant. de columnas recalculo el ancho de columna aAnchop[2]:=oImp:nHorzRes()/nC ENDIF //Convierto Var a texto para imprimir IF VALTYPE(Var)="A" .or. VALTYPE(Var)="B" .or. VALTYPE(Var)="M" .or. VALTYPE(Var)="O" .or. VALTYPE(Var)="U" wVar=Space(1) ELSEIF valtype(Var)="C" wVar=Rtrim(Var) ELSEIF VALTYPE(Var)="D" wVar:=Transform(Var,"@D") ELSEIF VALTYPE(Var)="L" IF Var wVar="Si" ELSE wVar="No" ENDIF ELSEIF VALTYPE(Var)="N" wVar:=Alltrim(Str(Var)) ENDIF //paso fila y columna a pixels nFila := nFila * aAnchop[1] nColum := nColum * aAnchop[2] //Columna en pixels nesp=( len(wVar) - len( Ltrim( wVar ) ) ) * aAnchop[2] wVar:=Ltrim(wVar) IF wVar<>Space(1) IF Pcount()=3 //Si no indique fuente oImp:Say( nFila, (nColum + nesp), wVar, if( aAnchop[3]<=80, aoFont[1], If( aAnchop[4], aoFont[1], aoFont[2] ) ) ) //si menos 80 cols uso aofont[1] sino si es apaisado, aofont[1] o sino aofont[2] ELSE //si indique fuente oImp:Say(nFila,(nColum + nesp),wVar, oFuente) ENDIF ENDIF RETURN NIL /*Fin Funcion PrnSay ----------------------------------------------------------------------------------------------------------------------*/ FUNCTION PrnBox(nFila1, nCol1, nFila2, nCol2, oPen, nC) /*Sintaxis: PrnBox( nFila, nCol1, nFila2, nCol2, oPen, nC ) nFila es la fila donde se hace la impresion ncolum es la columna donde comienza var es una variable de cualquier tipo que contiene lo que se va a imprimir nC es el total de columnas base (80 o 120) */ IF nC=NIL //Si no se especifica cantidad de columnas uso las especificadas en IniImp() aAnchop[2]:=oImp:nHorzRes()/aAnchop[3] ELSE //Si se especifico cant. de columnas recalculo el ancho de columna aAnchop[2]:=oImp:nHorzRes()/nC ENDIF //paso fila y columna a pixels nFila1 := nFila1 * aAnchop[1] nCol1 := nCol1 * aAnchop[2] nFila2 := nFila2 * aAnchop[1] nCol2 := nCol2 * aAnchop[2] //dibujo el cuadro oImp:Box(nFila1, nCol1, nFila2, nCol2, oPen) RETURN NIL /*Fin Funcion PrnBox ---------------------------------------------------------------------------------------------------------------------*/ FUNCTION PrnLine(nFila1, nCol1, nFila2, nCol2, oPen, nC) IF Pcount()=6 //si se especifico cant. de columnas recalculo el ancho de columna aAnchop[2]:=oImp:nHorzRes()/nC ELSE //Si no se especifica cantidad de columnas uso las especificadas en IniImp() aAnchop[2]:=oImp:nHorzRes()/aAnchop[3] ENDIF //paso fila y columna a pixels nFila1 := nFila1 * aAnchop[1] nCol1 := nCol1 * aAnchop[2] nFila2 := nFila2 * aAnchop[1] nCol2 := nCol2 * aAnchop[2] //Dibujo la linea oImp:Line(nFila1, nCol1, nFila2, nCol2, oPen) RETURN NIL /*Fin Funcion PrnLine ---------------------------------------------------------------------------------------------------------------------*/ FUNCTION FinImp() //Destruyo las fuentes //finalizo la impresión ENDPRINT //elimino los fonts aoFont[1]:End() aoFont[2]:End() aoFont[3]:End() RETURN NIL /*Fin Funcion FinImp*/ Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.