FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Algun Ejemplo de la clase tpdf():new( "c:\prueba.pdf", ,
Posts: 1078
Joined: Thu Sep 27, 2007 03:47 PM
Algun Ejemplo de la clase tpdf():new( "c:\prueba.pdf", ,
Posted: Mon Sep 14, 2015 03:55 PM

Saludso al Forum

Algun usuario que usa la clase , me podrian facilitar un ejemplo , de como genera un reporte leyendo una base de datos.
Ya que los ejemplos anexos a la clase , solamente hay uno , pero no muestra el uso de la clase.
Gracias

Ruben Dario Gonzalez
Cali-Colombia
rubendariogd@hotmail.com - rubendariogd@gmail.com
Posts: 1515
Joined: Thu Oct 30, 2008 02:37 PM
Re: Algun Ejemplo de la clase tpdf():new( "c:\prueba.pdf", ,
Posted: Mon Sep 14, 2015 04:50 PM

Hola,

Que yo sepa lo más avanzado que tiene Harbour en el uso (y disfrute) de Pdf es una interfaz con la libreria HaruPdf. Yo no lo he usado, así que tampoco sé si lo que digo es muy correcto.
En todo caso, sirva este párrafo de advertencia, para que si quiere empezar a ver la generación de Pdf, quizá le interese utilizar lo más avanzado.

Saludos

Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: Algun Ejemplo de la clase tpdf():new( "c:\prueba.pdf", ,
Posted: Mon Sep 14, 2015 06:38 PM
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 1078
Joined: Thu Sep 27, 2007 03:47 PM
Re: Algun Ejemplo de la clase tpdf():new( "c:\prueba.pdf", ,
Posted: Mon Sep 14, 2015 06:46 PM

Karihna, Gracias

Ya las habia visto, pero no hay un ejemplo con una base de datos.

Gracias

Ruben Dario Gonzalez
Cali-Colombia
rubendariogd@hotmail.com - rubendariogd@gmail.com
Posts: 505
Joined: Sat Apr 22, 2006 09:09 AM
Re: Algun Ejemplo de la clase tpdf():new( "c:\prueba.pdf", ,
Posted: Tue Sep 15, 2015 06:16 AM
Hola a todos:

Este es una de la impresiones que hago con la librería HARU:

Code (fw): Select all Collapse
va001 = "00001"
va002 = "99999"
va003 = "     "
va004 = "ZZZZZ"
SELECT 1
use EMPRESA
OrdSetfocus("empre01")
set filter to numero >= va001 .AND. numero <= va002 .AND. apellidos >= va003 .AND. apellidos <= va004
go top
store hb_CurDrive()  to xdri
store GetCurdir() to xdir
store xdri + " :\" + xdir + "\emp" + yempr + "\"  to direinic
fichsali:=cGetFile("*.pdf",LocaText( 1, 2, 76),,direinic,.F.,.T.)
if ! empty(fichsali)
  if substr(fichsali,len(trim(fichsali))-3,4) <> ".pdf"
    fichsali = trim(fichsali) + ".pdf"
  endif
  if file ( fichsali )
    ferase( fichsali )
  endif
  pdf := HPDF_New()
  cpos :={}
  HPDF_SetCompressionMode( pdf, HPDF_COMP_ALL )
  yFont1 = HPDF_GetFont( pdf, "Courier", "WinAnsiEncoding" )
  yFont2 = HPDF_GetFont( pdf, "Courier-Bold", "WinAnsiEncoding" )
  store 1 to numpag
  store LocaText( 1, 1,534) + "  : " + dtoc( ydatita ) to dati
  do while .T.
    page := HPDF_AddPage(pdf)
    aadd(cpos ,page)
    HPDF_Page_SetSize(HPDF_PAGE_SIZE_A4, HPDF_PAGE_PORTRAIT )
    height := HPDF_Page_GetHeight(page)
    width  := HPDF_Page_GetWidth(page)
    fil = width/124
    col = height/72
    HPDF_Page_SetRGBFill(page, 0.80, 0.80, 0.80)
    a = 8
    do while .T.
      if opci20 = .F. .OR. a > 67
         exit
      endif
      HPDF_Page_Rectangle(page, 0, 827 -(a*col), width, 11)
      HPDF_Page_Fill(page)
      a = a + 2
    enddo
    HPDF_Page_SetRGBFill(page, 0, 0, 0)
    HPDF_Page_BeginText( page )
    HPDF_Page_SetFontAndSize( page, yFont2, 14 )
    HPDF_Page_TextOut( page,  2*fil,842-(col*1.5),LocaText( 1, 1,732))
    HPDF_Page_SetFontAndSize( page, yFont1, 8 )
    HPDF_Page_TextOut( page,  2*fil,842-(col*  3),LocaText( 1, 1,553) + " " + trim(va003) + " " + LocaText( 1, 2,215) + " " + trim(va004))
    HPDF_Page_TextOut( page,  2*fil,842-(col*  4),LocaText( 1, 1,566) + " " + va001       + " " + LocaText( 1, 2,215) + " " + va002)
    HPDF_Page_SetFontAndSize( page, yFont2, 8 )
    HPDF_Page_TextOut( page,  1*fil,842-(col*  6),LocaText( 1, 1,877))
    HPDF_Page_TextOut( page,  8*fil,842-(col*  6),LocaText( 1, 1,115))
    HPDF_Page_TextOut( page, 49*fil,842-(col*  6),LocaText( 1, 1,817))
    HPDF_Page_TextOut( page, 59*fil,842-(col*  6),LocaText( 1, 1,471))
    HPDF_Page_TextOut( page, 94*fil,842-(col*  6),LocaText( 1, 2,128))
    HPDF_Page_TextOut( page,104*fil,842-(col*  6),LocaText( 1, 2,128))
    HPDF_Page_TextOut( page,114*fil,842-(col*  6),LocaText( 1, 1,533))
    HPDF_Page_TextOut( page,  1*fil,842-(col*  7),"------")
    HPDF_Page_TextOut( page,  8*fil,842-(col*  7),"----------------------------------------")
    HPDF_Page_TextOut( page, 49*fil,842-(col*  7),"---------")
    HPDF_Page_TextOut( page, 59*fil,842-(col*  7),"----------------------------------")
    HPDF_Page_TextOut( page, 94*fil,842-(col*  7),"---------")
    HPDF_Page_TextOut( page,104*fil,842-(col*  7),"---------")
    HPDF_Page_TextOut( page,114*fil,842-(col*  7),"---------")
    oCol = 8
    do while .T.
      if eof()
        exit
      endif
      HPDF_Page_SetFontAndSize( page, yFont1, 8 )
      HPDF_Page_TextOut( page,  1*fil,842-(col*oCol),numero)
      HPDF_Page_TextOut( page,  8*fil,842-(col*oCol),substr(trim(apellidos)+ ", "+ nombre+ space(40),1,40))
      HPDF_Page_TextOut( page, 49*fil,842-(col*oCol),cif)
      HPDF_Page_TextOut( page, 59*fil,842-(col*oCol),email)
      HPDF_Page_TextOut( page, 94*fil,842-(col*oCol),Telefono)
      HPDF_Page_TextOut( page,104*fil,842-(col*oCol),Telefono2)
      HPDF_Page_TextOut( page,114*fil,842-(col*oCol),fax)
      skip + 1
      oCol = oCol + 1
      if oCol > 65
         exit
      endif
    enddo
    HPDF_Page_SetFontAndSize( page, yFont1, 8 )
    HPDF_Page_TextOut( page,460, 30,dati)
    HPDF_Page_TextOut( page,460, 20,locatext( 1, 1,947) + " : " + str(numpag,10,0))
    HPDF_Page_EndText( page )
    numpag = numpag + 1
    if eof()
      exit
    endif
  enddo
  HPDF_SaveToFile( pdf, fichsali )
  HPDF_Free( pdf )
  ShellExecute(0,"Open",fichsali,NIL,NIL,1)
endif


Los "LocaText" son cadenas de texto se pueden sustituir por palabras entrecomilladas.

A l principio hay que poner:

#include "harupdf.CH"

Si quereis alguna explicación de alguna línea decirlo.

Espero que os sirva.

Un saludo

Carlos
Colt Hop ED, S.L.
Carlos Blas Fernández Domínguez
Tlfo: 645847093
E-Mail: carlos@colthop.es

Nunca se termina de aprender, por eso necesito siempre ayuda.

Continue the discussion