Page 1 of 1

Generar PDF con TPrinter

Posted: Wed Sep 04, 2024 2:26 pm
by José Luis Sánchez
Hola a todos,
Quiero generar un fichero PDF usando TPrinter pero sin utilizar HaruPDF. Hasta ahora hacía lo siguiente utilizando HaruPDF:

Code: Select all | Expand

  cFile := oApp():cPdfPath+Rtrim(FI->FiNombre)+DtoS(date())+StrTran(Time(),":","")+'.pdf'
  PRINTER oprn FILE cFile
   oPrn:SetLandscape() 
   oPrn:lUseHaruPDF := .t.
   oPrn:StartPage()
   WITH OBJECT oPrn
      nLin  := 1.5// 0.5
      nRow  := 0.5
      nMar  := 1 // oAppl:MarGen
      nDes1 := 2.4
      nDes2 := 7.4
      ... aqui siguen los :cmsay del listado
      :EndPage()
      :GenHaruPdf( cFile, .f. )
      :End()
   END WITH   
 
y me generaba el fichero en la ruta que yo indicaba. El problema de usar HaruPDF es que me descuadra los PDF que genero desde los listados - ver https://forums.fivetechsupport.com/view ... c47b7e8078 - y por eso quiero evitar su uso.

El problema es que no se generar el PDF son HaruPDF. Cambio oPrn:lUseHaruPDF := .t. por oPrn:lUseFWPDF := .t. y quito la linea de :GenHaruPdf( cFile, .f. ) y el fichero PDF no se genera en la ruta indicada. He visto los ejemplos print01.prg y print02.prg pero no me llego a enterar de qué hacer para generar los PDF. Me vendría genial una ayuda.

Saludos,
José Luis

Re: Generar PDF con TPrinter

Posted: Wed Sep 04, 2024 2:41 pm
by José Luis Sánchez
Hola,
Acabo de descubrir como hacerlo, utilizando FWSavePreviewToPDF( oPrn, cFile, .f. ) al final del listado. Algo así:

Code: Select all | Expand

      ... aqui siguen los :cmsay del listado
      :EndPage()
   END WITH  
FWSavePreviewToPDF( oPrn, cFile, .f. )
oPrn:End()
 
Como no se como llamar al propio oPrn dentro del WITH OBJECT oPrn he cerrado antes el bloque y lo llamo de esta manera.
De todos modos, aunque lo tenga solucionado, si alguien quiere aportar algo será bienvenido.

Saludos,

Re: Generar PDF con TPrinter

Posted: Wed Sep 04, 2024 3:34 pm
by karinha
Mira este ejemplo, creo que de mister Nages. No recuerdo el author.

Code: Select all | Expand

// C:\FWH\SAMPLES\IMPDPDF6.PRG

#include "fivewin.ch"

FUNCTION Main()

   LOCAL oPrn, oFont
   LOCAL cPdf := "lerele.pdf" // your pdf file name

   TPrinter():lUseFWPDF := .T.

   PRINT oPrn FILE cPdf PREVIEW MODAL // PREVIEW is optional. You can ommit PREVIEW

      DEFINE FONT oFont NAME "Arial" SIZE 0, - 60 NESCAPEMENT 900 OF oPrn

      PAGE

        oPrn:Box( 1, 1, 9, 4, 1, NIL, NIL, "INCHES" )

        @ 1, 1 PRINT TO oPrn TEXT "VERTICAL" SIZE 3, 8 INCHES ALIGN ""       ;
           FONT oFont

      ENDPAGE

   ENDPRINT

   RELEASE FONT oFont

   TPrinter():lUseFWPDF := .F.

RETURN NIL

// FIN / END
 
Regrads, saludos.

Re: Generar PDF con TPrinter

Posted: Wed Sep 04, 2024 8:44 pm
by nageswaragunupudi
Please do not use lUseHaruPDF after the command PRINTER.
Also do not use GenHaruPDF() method in the application program. This is used internally.

This is the way:

Code: Select all | Expand

TPrinter():lUseHaruPDF := .t.
PRINTER oPrn FILE cPdf
PAGE
// print
ENDPAGE
ENDPRINT
 
Now your PDF is ready

Re: Generar PDF con TPrinter

Posted: Thu Sep 05, 2024 6:39 am
by Enrico Maria Giordano
nageswaragunupudi wrote:

Code: Select all | Expand

TPrinter:lUseHaruPDF := .t. 
Better this way:

Code: Select all | Expand

TPrinter():lUseHaruPDF := .t.

Re: Generar PDF con TPrinter

Posted: Fri Sep 06, 2024 3:57 am
by nageswaragunupudi
Enrico Maria Giordano wrote:
nageswaragunupudi wrote:

Code: Select all | Expand

TPrinter:lUseHaruPDF := .t. 
Better this way:

Code: Select all | Expand

TPrinter():lUseHaruPDF := .t.
Sorry it was my typo. Corrected now

Re: Generar PDF con TPrinter

Posted: Fri Sep 06, 2024 5:36 am
by José Luis Sánchez
Thanks Mr. Rao, I'll try this way.
Regards,