Error al Ejecutar Reporte usando la Clase tpdf

Post Reply
User avatar
ruben Dario
Posts: 1070
Joined: Thu Sep 27, 2007 3:47 pm
Location: Colombia

Error al Ejecutar Reporte usando la Clase tpdf

Post by ruben Dario »

Saludos,

Trato de Ejecutar en reporte con la clase TPDF, y me genera este error
Antes funcionaba bien,

Code: Select all | Expand

Application
===========
   Path and name: K:\v_xharb_v3\Pruebas Varias\tpdf\ejemplo4.exe (32 bits)
   Size: 4,556,288 bytes
   Compiler version: Harbour 3.2.0dev (r2403071241)
   FiveWin  version: FWH 20.12
   C compiler version: Borland/Embarcadero C++ 7.7 (32-bit)
   Windows version: 6.2, Build 9200 (Windows 11)

   Time from start: 0 hours 0 mins 2 secs 
   Error occurred at: 06/09/24, 18:23:29
   Error description: Error BASE/1004  Message not found: TPDF:PDFNEWPAGE
   Args:
     [   1] = O   TPDF

Stack Calls
===========
   Called from: ../../../tobject.prg => __ERRRT_SBASE( 0 )
   Called from: ../../../tobject.prg => TPDF:ERROR( 0 )
   Called from: ../../../tobject.prg => (b)HBOBJECT( 0 )
   Called from: ../../../tobject.prg => TPDF:MSGNOTFOUND( 0 )
   Called from: ../../../tobject.prg => TPDF:PDFNEWPAGE( 0 )
   Called from: ejemplo4.prg => CREAPDFCC( 36 )
   Called from: ejemplo4.prg => (b)MAIN( 11 )
   Called from: .\source\classes\MENU.PRG => TMENU:COMMAND( 1560 )
   Called from: .\source\classes\WINDOW.PRG => TWINDOW:COMMAND( 1141 )
   Called from: .\source\classes\WINDOW.PRG => TWINDOW:HANDLEEVENT( 0 )
   Called from: .\source\classes\WINDOW.PRG => _FWH( 3559 )
   Called from: .\source\classes\WINDOW.PRG => WINRUN( 0 )
   Called from: .\source\classes\WINDOW.PRG => TWINDOW:ACTIVATE( 1097 )
   Called from: ejemplo4.prg => MAIN( 16 )



 
Este es el Codigo

Code: Select all | Expand

#include "FiveWin.ch"
#include "PdfHbDoc.ch"

Static oWnd, n

Function Main()

   Local oMenu

   MENU oMenu
      MENUITEM "My First Pdf" ACTION creapdfcc()
      MENUITEM "Exit" ACTION oWnd:End
   ENDMENU

   DEFINE WINDOW oWnd MENU oMenu
   ACTIVATE WINDOW oWnd MAXIMIZED

Return Nil

function creapdfcc()

   local dresult // :=  DEHASTA()
   local cImpdos
   local oprn
   local nsaldo := 0
   local nvalor := 0
   local z := 0
   local cPath := "C:\PDF\MEUPDF.pdf"
   local oPdf
   local ntotal := 0

   n  := 2.9

   opdf := tpdf():new(cPath)

   opdf:Pdfnewpage("A4","P")

   opdf:Pdfimage(".\QRCODE.jpg", cm2dpi(2.5), 0,85,66)

   opdf:Pdfatsay("QUÍMICA MEGA SA",cm2dpi( .7 ),100,.T.)

   oPdf:Pdfatsay("Matanza 1456/58",cm2dpi( 1.2 ),100,.T.)

   oPdf:Pdfatsay("Avellaneda-Pcia Bs As",cm2dpi( 1.6 ),100,.T.)

   oPdf:Pdfatsay("T.E.: 4289-2700(Rotativas)",cm2dpi( 2.0 ),100,.T.)

   oPdf:Pdfatsay(replicate("_",115),cm2dpi( 2.5 ),10,.T.)

   opdf:Pdfclosepage()
   opdf:pdfclose()

   msginfo("Archivo creado con éxito","Aviso del sistema")

   /*
   if !empty(cmail)
      correo(cMail,,("Enviamos resumen de cuenta desde " + transform(dresult[1],"@d") + " hasta " +  transform(dresult[1],"@d") ),"Resumen de cuenta", alltrim(cPath ) )
   endif
   */

   ShellExecute( oWnd:hWnd, "open", "c:\pdf\meupdf.pdf" )

return .t.

/*******************************************************************************/

function cm2dpi( nCM, page, lHeight )

   Local nHeight,nDpi := 72
   Local nRes 

   if empty( lHeight )
      lHeight := .T.
   endif

   if lHeight
      nHeight := 842.0
      nRes := nHeight - ( nCM * nDpi / 2.54 )
   else
      nRes := ( nCM * nDpi / 2.54 )
   endif

return nRes

  
#pragma BEGINDUMP

int _streams;

#pragma ENDDUMP 

 
Ruben Dario Gonzalez
Cali-Colombia
rubendariogd@hotmail.com - rubendariogd@gmail.com
User avatar
Antonio Linares
Site Admin
Posts: 42259
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Error al Ejecutar Reporte usando la Clase tpdf

Post by Antonio Linares »

Estimado Ruben,

Tienes que usar los métodos StartPage() y EndPage()
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
ruben Dario
Posts: 1070
Joined: Thu Sep 27, 2007 3:47 pm
Location: Colombia

Re: Error al Ejecutar Reporte usando la Clase tpdf

Post by ruben Dario »

Esta solamente se usan para TDosPrn() o PRINTER , es lo que tengo entendido, sigue igual con usando StartPage() y EndPage()

Parece que no usan esta clase tpdf()
Ruben Dario Gonzalez
Cali-Colombia
rubendariogd@hotmail.com - rubendariogd@gmail.com
surGom
Posts: 640
Joined: Wed Oct 19, 2005 12:03 pm
Contact:

Re: Error al Ejecutar Reporte usando la Clase tpdf

Post by surGom »

Hola Ruben te envío un ejemplo que uso permanentemente en la empresa para enviar información a los clientes

Dónde aMae es un arreglo de los datos del cliente
oVar es una estructura de la clase Tarray que cargo los datos que quiero enviar

Code: Select all | Expand

FUNCTION  impibrpdf( aMae, lPcia, oVar, cPath )

   LOCAL z := 0
   LOCAL nrow := 3.2
   LOCAL cTitulo := ""
   LOCAL oPdf
   LOCAL nComproba
   LOCAL x

   IF lPcia

      cTitulo := "Pcia de Buenos Aires"
      nComproba :=  ovar:nNBruto
   ELSE
      nComproba := oVar:nNbrucap
      cTitulo := "Capital Federal"
   ENDIF

   try
   opdf := tpdf():new( cPath )

   titpdef( oPdf )                    // creopdf están los titulos



   oPdf:Pdfatsay( "CUIT 30-65485547-8",cm2dpi( 2.4 ), 100, .T. )
   oPdf:Pdfatsay( ( "Agente de Retención: " + oApp:nroBruto ), cm2dpi( 2.4 ), 350, .T. )

   oPdf:Pdfsetfont( "COURIER", NORMAL, 10 )
   oPdf:Pdfatsay( "Retención de Ingresos Brutos", cm2dpi( nrow += .8 ), cmancho( 8 ) )
   oPdf:Pdfatsay( cTitulo, cm2dpi( nrow += .5 ), cmancho( 8.4 ) )
   oPdf:Pdfatsay( "Fecha: " + DToC( oVar:dfecha ), cm2dpi( nrow += .7 ), cmancho( 1.5 ) )
   oPdf:Pdfatsay( "Constancia N° " + valstr( nComproba ), cm2dpi( nrow += .5 ), cmancho( 1.5 ) )
   oPdf:Pdfatsay( ( "Rentenido a: " + aMae[ 2 ] ), cm2dpi( nrow += .5 ), cmancho( 1.5 ) )
   oPdf:Pdfatsay( ( "CUIT " + aMae[ 7 ] ), cm2dpi( nrow += .5 ), cmancho( 1.5 ) )
   oPdf:Pdfatsay( ( "Domicilio: " + AllTrim(aMae[ 3 ] ) + Space(2 ) + AllTrim(aMae[ 4 ] ) ), cm2dpi( nrow += .5 ), cmancho( 1.5 ) )
   oPdf:Pdfatsay( aMae[ 5 ], cm2dpi( nrow += .5 ), cmancho( 1.5 ) )
   oPdf:Pdfatsay( ( "Número de IIBB: " + aMae[ 17 ] ), cm2dpi( nrow += .5 ), cmancho( 1.5 ) )
   oPdf:Pdfatsay( "Pago efectuado: $" + Transform( oVar:totalre,"@e 99,999,999.99" ), cm2dpi( nrow += .5 ), cmancho( 1.5 ) )
   oPdf:Pdfatsay( "Importe retenido: $" + Transform( iif(lPcia,oVar:nRetib,oVar:nRetibcap ),"@e 99,999,999.99" ), cm2dpi( nrow += .5 ), cmancho( 1.5 ) )
   oPdf:Pdfatsay( "Alícuota aplicada: %" + iif( lPcia,Transform(oVar:nPorIB, "@e 99.99" ),Transform(oVar:Ibrecap, "@e 99.99" ) ), cm2dpi( nrow += .5 ), cmancho( 1.5 ) )


   FOR x = 1 TO Len( oVar:adeta )
      IF oVar:adeta[ x, 5 ] >= oApp:minibru
         oPdf:Pdfatsay( ( "Afecta a comprobante Nº " + oVar:adeta[ x,2 ] + " Base Imp. " + Transform(oVar:adeta[ x,5 ],"@e 99,999,999.99" ) ), cm2dpi( nrow += .5 ), cmancho( 1.5 ) )
      ENDIF
   NEXT
   oPdf:Pdfatsay( "Importe que será depositado por declaración jurada correspondiente al mes de", cm2dpi( nrow += 1.2 ), cmancho( 1.5 ) )
   oPdf:Pdfatsay( ( mes(Month(oVar:dfecha ) ) + " de " + valstr(Year(oVar:dFecha ) ) ), cm2dpi( nrow += .5 ), cmancho( 1.5 ) )


   opdf:Pdfimage( oApp:curproga + "firma1.jpg", cm2dpi( nrow += 3.5 ), cmancho( 9.5 ), 158, 100 )

   opdf:Pdfclosepage()
   oPdf:pdfclose()
catch
   ? "No encuentro variable"
end

RETURN NIL
Esta funcionando desde hace varios años.
Espero te sirva

Luis
User avatar
ruben Dario
Posts: 1070
Joined: Thu Sep 27, 2007 3:47 pm
Location: Colombia

Re: Error al Ejecutar Reporte usando la Clase tpdf

Post by ruben Dario »

Gracias ya encontre el problema, es al crear la libreria, si coloco los fuentes dentro del proyecto sin usar la libreria si funciona.

Tu tienes el bache de compilacion para crear la libreria, para ver el error

Asi compilo

Code: Select all | Expand

        \harbour_v\harbour_bcc77\bin\harbour \v_xharb_v3\librerias\TPDF\pdf1.prg  /l /m /q /es2 /gc1 -D__EXPORT__ -D__HARBOUR__ /O.\obj1\ /I\fwh\include;\harbour_v\harbour_bcc77\include;\v_xharb_v3\include;\include;\harbour_v\harbour_bcc77\contrib\;\harbour_v\harbour_bcc77\contrib\gtwvg;\harbour_v\harbour_bcc77\contrib\hbwin  -w0 > compiler.log
        \C_BCC\BCC77\bin\BCC32  -c -tWM -I\harbour_v\harbour_bcc77\include;\harbour_v\harbour_bcc77\contrib\xhb -o.\obj1\pdf1.obj  .\obj1\pdf1.c > compiler.log
        echo + .\obj1\pdf1.obj  >> bl32.bc
        IF EXIST tmp del tmp
        echo  -c -tWM -D__HARBOUR__ > tmp
        \harbour_v\harbour_bcc77\bin\harbour \v_xharb_v3\librerias\TPDF\PDFHBDCS.prg  /l /m /q /es2 /gc1 -D__EXPORT__ -D__HARBOUR__ /O.\obj1\ /I\fwh\include;\harbour_v\harbour_bcc77\include;\v_xharb_v3\include;\include;\harbour_v\harbour_bcc77\contrib\;\harbour_v\harbour_bcc77\contrib\gtwvg;\harbour_v\harbour_bcc77\contrib\hbwin  -w0 > compiler.log
        \C_BCC\BCC77\bin\BCC32  -c -tWM -I\harbour_v\harbour_bcc77\include;\harbour_v\harbour_bcc77\contrib\xhb -o.\obj1\PDFHBDCS.obj  .\obj1\PDFHBDCS.c > compiler.log
        echo + .\obj1\PDFHBDCS.obj  >> bl32.bc
        IF EXIST tmp del tmp
        echo  -c -tWM -D__HARBOUR__ > tmp
        echo -I\harbour_v\harbour_bcc77\include;\harbour_v\harbour_bcc77\contrib\xhb  >> tmp
        \C_BCC\BCC77\bin\BCC32  -c -tWM -o.\obj1\pdfhbdoc.obj  @tmp \v_xharb_v3\librerias\TPDF\pdfhbdoc.c > compiler.log
        echo + .\obj1\pdfhbdoc.obj  >> bl32.bc
        IF EXIST tmp del tmp
        \C_BCC\BCC77\bin\TLIB \v_xharb_v3\lib\Harb\libTPdf_h.lib +.\obj1\pdf1.obj  +.\obj1\PDFHBDCS.obj +.\obj1\pdfhbdoc.obj  /0 /P64,, > compiler.log

 
Este es el error al crear la libreria

Code: Select all | Expand

TLIB 7.1 Copyright (c) 1987-2019 Embarcadero Technologies, Inc.

Warning: 'pdf1' already in LIB, not changed!
Warning: 'PDFHBDCS' already in LIB, not changed!
Warning: 'pdfhbdoc' already in LIB, not changed!
Warning: public '_HB_FUN_HB_PDFNEW' in module 'pdfhbdoc' clashes with prior module 'PDFHBDCS'
Warning: public '_HB_FUN_HB_PDFNEWPAGE' in module 'pdfhbdoc' clashes with prior module 'PDFHBDCS'
Warning: public '_HB_FUN_HB_PDFENDPAGE' in module 'pdfhbdoc' clashes with prior module 'PDFHBDCS'
Warning: public '_HB_FUN_HB_PDFWRITEBOLDTEXT' in module 'pdfhbdoc' clashes with prior module 'PDFHBDCS'
Warning: public '_HB_FUN_HB_PDFWRITETEXT' in module 'pdfhbdoc' clashes with prior module 'PDFHBDCS'
Warning: public '_HB_FUN_HB_PDFCLOSE' in module 'pdfhbdoc' clashes with prior module 'PDFHBDCS'
 
Ruben Dario Gonzalez
Cali-Colombia
rubendariogd@hotmail.com - rubendariogd@gmail.com
Post Reply