PRINT oPrn + PDF : FORMAS CONTINUAS

PRINT oPrn + PDF : FORMAS CONTINUAS

Postby russimicro » Sun Jun 02, 2024 1:47 pm

Buen dia..

Requiero generar un pdf (texto + imagenes) con PRINT oPrn , en formas continuas, tipo rollo de impresoras pos termicas... no me sirve clases tipo texto

Con estos metodos no funciona..

local cFilPdf := "c:\temp\filepdf.pdf"

PrnSetSize( 2100, 120000 ) //To adjust a different printer paper size!

oPrn:SETPAGE(29)

PRINT oPrn NAME "Testing the printer object from FiveWin ...." FILE cFilPdf


Gracias
JONSSON RUSSI
russimicro
 
Posts: 260
Joined: Sun Jan 31, 2010 3:30 pm
Location: Bucaramanga - Colombia

Re: PRINT oPrn + PDF : FORMAS CONTINUAS

Postby karinha » Mon Jun 03, 2024 3:28 pm

Mira se ayuda: Use Google Traductor.

Code: Select all  Expand view

// Impressao Continua:

// http://fivewin.com.br/index.php?/topic/ ... m-printer/
// http://fivewin.com.br/index.php?/topic/ ... omente-a4/
// http://fivewin.com.br/index.php?/topic/ ... da-pagina/
// http://fivewin.com.br/index.php?/topic/ ... e-na-nfce/
// http://forums.fivetechsupport.com/viewtopic.php?t=6132

// Eu faço assim mas só testei na Bematech MP-??? TH. Vê se funciona na sua impressora.

   FOR NX := 1 TO nQtdVia // Imprimir várias vias

      PRINTER oPrn TO "NOME_DA_IMPRESSORA" NAME "Trabalho de impressão"

      oPrn:SetPage( 256 )

      DEFINE FONT oFont NAME "Courier New" SIZE 0,-12 BOLD OF oPrn
      DEFINE FONT oFnt2 NAME "Courier New" SIZE 0, -8 BOLD OF oPrn

      nWidt := oFnt2:nWidth + (oFnt2:nWidth/4)
      nFtHi := oFnt2:nHeight
      nPgHi := (60*nFtHi) * 1.3 // Altura da página: (60*Altira da fonte) * 1.3 (Testado na BEMATECH MP 2500)

      oPrn:SetSize( 1000, nPgHi)

      mL := 1 // Linha inicial

      nTckCol := 3 // Tabulação - 3 espaços

      oPrn:StartPage()
      oPrn:SayBitmap(mL*nFtHi, nWidt*(nTckCol+2), ".\bitmaps\logomarca.bmp", 40 * nWidt, (mL+6) * nFtHi)

      mL += 8

      FOR Y = 1 TO LEN(mLista) // mLista é um array contendo o que deve ser impresso

        oPrn:Say(mL*nFtHi, 000, SPACE(nTckCol)+mLista[Y], oFnt2 )

        mL ++ ; IF (mL*nFtHi) >= (60 * nFtHi) ; oPrn:EndPage() ; oPrn:StartPage() ; mL := 1 ; ENDIF

      NEXT

      IF lAssina // Se deve incluir uma assinatura

         mL ++ ; IF (mL*nFtHi) >= (60 * nFtHi) ; oPrn:EndPage() ; oPrn:StartPage() ; mL := 1 ; ENDIF

         oPrn:Say(mL*nFtHi,000, SPACE(nTckCol)+"----------------------------------------", oFnt2 )

         mL ++ ; IF (mL*nFtHi) >= (60 * nFtHi) ; oPrn:EndPage() ; oPrn:StartPage() ; mL := 1 ; ENDIF

         oPrn:Say(mL*nFtHi,000, SPACE(nTckCol)+" ", oFnt2 )

         mL ++ ; IF (mL*nFtHi) >= (60 * nFtHi) ; oPrn:EndPage() ; oPrn:StartPage() ; mL := 1 ; ENDIF

         oPrn:Say(mL*nFtHi,000, SPACE(nTckCol)+" ", oFnt2 )

         mL ++ ; IF (mL*nFtHi) >= (60 * nFtHi) ; oPrn:EndPage() ; oPrn:StartPage() ; mL := 1 ; ENDIF

         oPrn:Say(mL*nFtHi,000, SPACE(nTckCol)+"___/___/___    _________________________", oFnt2 )

         mL ++ ; IF (mL*nFtHi) >= (60 * nFtHi) ; oPrn:EndPage() ; oPrn:StartPage() ; mL := 1 ; ENDIF

         oPrn:Say(mL*nFtHi,000, SPACE(nTckCol)+"Data           Cliente                  ", oFnt2 )

      ENDIF

      oPrn:Say(mL*nFtHi,000, "_", oFnt2 )

      oPrn:EndPage()

      oPrn:Preview()

      RELEASE FONT oFont, oFnt2

   NEXT

   // Para corrigir o BUG do papel extreito
   SysRefresh()

   PRINTER oPrn2 NAME "BugFix"

   oPrn2:SetPage( 9 )

   oPrn2:End()
 


Code: Select all  Expand view

Eliminado a TDOSPRN.PRG usando a PRINTER.PRG

http://fivewin.com.br/index.php?/topic/27095-impress%C3%A3o-cont%C3%ADnua-com-printer/

   FOR NX := 1 TO nQtdVia // Imprimir várias vias

      PRINTER oPrn TO "NOMBRE_IMPRESSORA" NAME "Trabalho de impressão"

      oPrn:SetPage( 256 )

      DEFINE FONT oFont NAME "Courier New" SIZE 0,-12 BOLD OF oPrn
      DEFINE FONT oFnt2 NAME "Courier New" SIZE 0, -8 BOLD OF oPrn

      nWidt := oFnt2:nWidth + (oFnt2:nWidth/4)
      nFtHi := oFnt2:nHeight
      nPgHi := (60*nFtHi) * 1.3 // Altura da página: (60*Altura da fonte) * 1.3 (Testado na BEMATECH MP 2500)

      oPrn:SetSize( 1000, nPgHi)

      mL := 1 // Linha inicial
      nTckCol := 3 // Tabulação - 3 espaços

      oPrn:StartPage()
      oPrn:SayBitmap(mL*nFtHi, nWidt*(nTckCol+2), ".\bitmaps\logomarca.bmp", 40 * nWidt, (mL+6) * nFtHi)

      mL += 8

      FOR Y = 1 TO LEN(mLista) // mLista é um array contendo o que deve ser impresso

        oPrn:Say(mL*nFtHi, 000, SPACE(nTckCol)+mLista[Y], oFnt2 )

        mL ++ ; IF (mL*nFtHi) >= (60 * nFtHi) ; oPrn:EndPage() ; oPrn:StartPage() ; mL := 1 ; ENDIF

      NEXT

      IF lAssina // Se deve incluir uma assinatura

         mL ++ ; IF (mL*nFtHi) >= (60 * nFtHi) ; oPrn:EndPage() ; oPrn:StartPage() ; mL := 1 ; ENDIF

         oPrn:Say(mL*nFtHi,000, SPACE(nTckCol)+"----------------------------------------", oFnt2 )

         mL ++ ; IF (mL*nFtHi) >= (60 * nFtHi) ; oPrn:EndPage() ; oPrn:StartPage() ; mL := 1 ; ENDIF

         oPrn:Say(mL*nFtHi,000, SPACE(nTckCol)+" ", oFnt2 )

         mL ++ ; IF (mL*nFtHi) >= (60 * nFtHi) ; oPrn:EndPage() ; oPrn:StartPage() ; mL := 1 ; ENDIF

         oPrn:Say(mL*nFtHi,000, SPACE(nTckCol)+" ", oFnt2 )

         mL ++ ; IF (mL*nFtHi) >= (60 * nFtHi) ; oPrn:EndPage() ; oPrn:StartPage() ; mL := 1 ; ENDIF

         oPrn:Say(mL*nFtHi,000, SPACE(nTckCol)+"___/___/___    _________________________", oFnt2 )

         mL ++ ; IF (mL*nFtHi) >= (60 * nFtHi) ; oPrn:EndPage() ; oPrn:StartPage() ; mL := 1 ; ENDIF

         oPrn:Say(mL*nFtHi,000, SPACE(nTckCol)+"Data           Cliente                  ", oFnt2 )

      ENDIF

      oPrn:Say(mL*nFtHi,000, "_", oFnt2 )

      oPrn:EndPage()

      oPrn:Preview()

      RELEASE FONT oFont, oFnt2

   NEXT

   // Para corrigir o BUG do papel extreito
   SysRefresh()

   PRINTER oPrn2 NAME "BugFix"

   oPrn2:SetPage( 9 )
   oPrn2:End()
 


Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7822
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: PRINT oPrn + PDF : FORMAS CONTINUAS

Postby russimicro » Tue Jun 04, 2024 1:36 pm

Buen día...

Gracias por responder ..

Requiero generar un archivo PDF, de una sola pagina (entre 60 y 1000 filas), que se imprime luego (proceso de envió remoto), en una impresora POS (rollo)

Gracias
russimicro
 
Posts: 260
Joined: Sun Jan 31, 2010 3:30 pm
Location: Bucaramanga - Colombia

Re: PRINT oPrn + PDF : FORMAS CONTINUAS

Postby karinha » Tue Jun 04, 2024 1:45 pm

russimicro wrote:Buen día...

Gracias por responder ..

Requiero generar un archivo PDF, de una sola pagina (entre 60 y 1000 filas), que se imprime luego (proceso de envió remoto), en una impresora POS (rollo)

Gracias


https://forums.fivetechsupport.com/viewtopic.php?f=6&t=38472

Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7822
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: PRINT oPrn + PDF : FORMAS CONTINUAS

Postby karinha » Tue Jun 04, 2024 1:53 pm

Mira también, WIN32PRN.PRG

https://forums.fivetechsupport.com/viewtopic.php?f=6&t=31317

Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7822
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: PRINT oPrn + PDF : FORMAS CONTINUAS

Postby karinha » Tue Jun 04, 2024 3:19 pm

Mira se ayuda:

Code: Select all  Expand view

// C:\FWH\SAMPLES\IMPDIRET.PRG EN TPRINTER.PRG

#Include "FiveWin.ch"

STATIC oWnd

FUNCTION Main()

   DEFINE WINDOW oWnd FROM 1, 1 TO 20, 60 TITLE "Printing a Window"

   @ 3, 3 BUTTON "&Print me" OF oWnd SIZE 80, 20 ACTION( PrintMe() )

   ACTIVATE WINDOW oWnd

RETURN NIL

FUNCTION PrintMe()

   FIELD STREET

   LOCAL oPrn, nAltPag, cTexto, nWidt, nFtHi, oFont, oFont2
   LOCAL nTckCol := 3 // Tabulação - 3 espaços - Coluna
   LOCAL nLinha, cAlias

   USE CUSTOMER
   GO TOP

   cAlias := ALIAS()

   cTexto  := "Impressão dos Produtos"

   nLinha  := 1 // Linha Inicial

   PRINT oPrn NAME "Test" PREVIEW

      DEFINE FONT oFont  NAME "Courier New" SIZE 0, - 12 BOLD OF oPrn
      DEFINE FONT oFont2 NAME "Courier New" SIZE 0, - 8  BOLD OF oPrn

      oPrn:SetPage( 256 )

      nWidt := oFont2:nWidth + ( oFont2:nWidth / 4 )
      nFtHi := oFont2:nHeight  // Altura da FONT

      // Altura da página: (60 * Altura da fonte) * 1.3
      nAltPag := ( 60 * nFtHi ) * 1.3

      oPrn:SetSize( 1000, nAltPag )  // 5200.00

      PAGE

        oPrn:Say( nLinha*nFtHi,000, SPACE(nTckCol)+"--------------------------" + ;
                                                   "--------------", oFont2 )
        nLinha := nLinha + 1

        oPrn:Say( nLinha*nFtHi,000, SPACE(nTckCol)+cTexto, oFont2 )

        nLinha := nLinha + 1

        oPrn:Say( nLinha*nFtHi,000, SPACE(nTckCol)+"--------------------------" + ;
                                                  "--------------", oFont2 )

        nLinha := nLinha + 2

        // Produtos
        WHILE( .NOT. EOF() )

           SYSREFRESH()

           IF EOF()

              EXIT

           ENDIF

           oPrn:Say( nLinha*nFtHi,000, SPACE(nTckCol) + ( cAlias )->STREET, oFont2 )

           nLinha := nLinha + 1

           IF( nLinha * nFtHi ) >= ( 180 * nFtHi )

               oPrn:EndPage()

               oPrn:StartPage()

               nLinha := 1

           ENDIF

           SKIP

        ENDDO

      ENDPAGE

   ENDPRINT

   oFont:End()
   oFont2:End()

RETURN NIL

// FIN / END - kapiabafwh@gmail.com
 


Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7822
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 51 guests