Page 1 of 2

clase Tpdf

Posted: Tue Sep 18, 2012 6:17 am
by colthop
Hola a todos:

Estoy utilizando la clase Tpdf y hasta ahora no habia necesitado cambiar de tipo de letra y ahora que lo intento no me funciona siempre me sale el mismo tipo de letra, sin embargo si cambio el tamaño y si es NEGRITA o no eso si funciona el fuente es muy sencillo:

Code: Select all

  store 595/147 to fiz1
  store 842/80  to col
  oPdf := tpdf():new("VistaPrevia.pdf")
  oPdf:Pdfnewpage("A4","P",6,trim(vnocab))
  if opci14 = 1
    oPdf:PdfImage(xrutadato + "EMP" + xempr + "\factura.jpg",0,0,595,842)
  endif
  do while .T.
    if eof()
      exit
    endif
    if cabecera = "S"
      oPdf:PdfSetFont(upper(trim(vnocab)),1,ABS(vhecab))
      oPdf:PdfAtSay(trim(substr(descripcio,1,49)) ,842-(col*columna), fila*fiz1,.T.)
    else
      oPdf:PdfSetFont(upper(trim(vnolin)),0,ABS(vhelin))
      oPdf:PdfAtSay(trim(substr(descripcio,1,49)) ,842-(col*columna), fila*fiz1,.T.)
    endif
    skip + 1
  enddo
  oPdf:PdfClosePage()
  oPdf:PdfClose()
En el principio esta :

Code: Select all

#include "PdfHbDoc.ch"
 
Alguien poria ayuarme de como solucionarlo.

Gracias.

Carlos

Re: clase Tpdf

Posted: Tue Sep 18, 2012 9:05 am
by Antonio Linares
Carlos,

Puedes copiar aqui el código fuente de la clase TPdf que estás usando ? gracias

Re: clase Tpdf

Posted: Tue Sep 18, 2012 9:25 am
by colthop
Hola Antonio:

Que te refieres con el codigo fuente Yo compilo con:

Code: Select all

del fyvwin.exe
del *.c
del *.obj
echo clp2harb

copy obj\c0w32.obj

set hdir=c:\xharbour\bin\
set bdir=c:\bcc582\bin\

SET PATH=C:\fwh\bin;c:\bcc582\bin;c:\xharbour\bin;c:\copiones
SET LIB=C:\fwh\lib;c:\bcc582\lib;c:\xharbour\lib;c:\xharbour\lib\psdk
SET INCLUDE=C:\fwh\include;c:\bcc582\include;c:\xharbour\include

%hdir%harbour fyvwin /m/n
%hdir%harbour rddsys   /n
%hdir%harbour preparar /n
%hdir%harbour procesos /n
%hdir%harbour gestmenu /n
%hdir%harbour gesttext /n
%hdir%harbour gestempr /n
%hdir%harbour gestusua /n
%hdir%harbour gestusu2 /n
%hdir%harbour gestmult /n
%hdir%harbour gestacti /n
%hdir%harbour gestutil /n
%hdir%harbour gestauto /n
%hdir%harbour gestbanc /n
%hdir%harbour gestconc /n
%hdir%harbour gestempl /n
%hdir%harbour gestprov /n
%hdir%harbour gestclie /n
%hdir%harbour gestnume /n
%hdir%harbour gestcent /n
%hdir%harbour gestclau /n
%hdir%harbour gestmovi /n
%hdir%harbour gestpres /n
%hdir%harbour gestenvi /n
%hdir%harbour gestaver /n
%hdir%harbour gestmant /n
%hdir%harbour gestalba /n
%hdir%harbour gestfact /n
%hdir%harbour gestcome /n
%hdir%harbour gestpunt /n
%hdir%harbour gestrest /n
%hdir%harbour gesthote /n
%hdir%harbour gestfacg /n
%hdir%harbour gestalbg /n
%hdir%harbour gestvenc /n
%hdir%harbour gestlist /n
%hdir%harbour gestlis2 /n
%hdir%harbour gestimpr /n
%hdir%harbour gestimp2 /n
%hdir%harbour rpreview /n
%hdir%harbour pdf1 /n
%hdir%harbour pdfhbdcs /n
%hdir%harbour tsmtp /n
%hdir%harbour window /n

%bdir%bcc32 -c fyvwin.c
%bdir%bcc32 -c rddsys.c
%bdir%bcc32 -c preparar.c
%bdir%bcc32 -c procesos.c
%bdir%bcc32 -c gestmenu.c
%bdir%bcc32 -c gesttext.c
%bdir%bcc32 -c gestempr.c
%bdir%bcc32 -c gestusua.c
%bdir%bcc32 -c gestusu2.c
%bdir%bcc32 -c gestmult.c
%bdir%bcc32 -c gestacti.c
%bdir%bcc32 -c gestutil.c
%bdir%bcc32 -c gestauto.c
%bdir%bcc32 -c gestbanc.c
%bdir%bcc32 -c gestconc.c
%bdir%bcc32 -c gestempl.c
%bdir%bcc32 -c gestprov.c
%bdir%bcc32 -c gestclie.c
%bdir%bcc32 -c gestnume.c
%bdir%bcc32 -c gestcent.c
%bdir%bcc32 -c gestclau.c
%bdir%bcc32 -c gestmovi.c
%bdir%bcc32 -c gestpres.c
%bdir%bcc32 -c gestenvi.c
%bdir%bcc32 -c gestaver.c
%bdir%bcc32 -c gestmant.c
%bdir%bcc32 -c gestalba.c
%bdir%bcc32 -c gestfact.c
%bdir%bcc32 -c gestcome.c
%bdir%bcc32 -c gestpunt.c
%bdir%bcc32 -c gestrest.c
%bdir%bcc32 -c gesthote.c
%bdir%bcc32 -c gestfacg.c
%bdir%bcc32 -c gestalbg.c
%bdir%bcc32 -c gestvenc.c
%bdir%bcc32 -c gestlist.c
%bdir%bcc32 -c gestlis2.c
%bdir%bcc32 -c gestimpr.c
%bdir%bcc32 -c gestimp2.c
%bdir%bcc32 -c rpreview.c
%bdir%bcc32 -c pdf1.c
%bdir%bcc32 -c pdfhbdcs.c
%bdir%bcc32 -c tsmtp.c
%bdir%bcc32 -c window.c

%bdir%ilink32 -Gn -aa -Tpe -s -v @fyvwin1.lnk

fyvwin  
y el fyvwin1.lnk es :

Code: Select all

c0w32.obj    +
fyvwin.obj   +
rddsys.obj   +
preparar.obj +
procesos.obj +
gesttext.obj +
gestmenu.obj +
gestempr.obj +
gestusua.obj +
gestusu2.obj +
gestmult.obj +
gestacti.obj +
gestutil.obj +
gestauto.obj +
gestbanc.obj +
gestconc.obj +
gestempl.obj +
gestprov.obj +
gestclie.obj +
gestnume.obj +
gestcent.obj +
gestclau.obj +
gestmovi.obj +
gestpres.obj +
gestenvi.obj +
gestaver.obj +
gestmant.obj +
gestalba.obj +
gestfact.obj +
gestcome.obj +
gestpunt.obj +
gestrest.obj +
gesthote.obj +
gestfacg.obj +
gestalbg.obj +
gestvenc.obj +
gestlist.obj +
gestlis2.obj +
gestimpr.obj +
gestimp2.obj +
rpreview.obj +
tsmtp.obj    +
pdf1.obj     +
window.obj   +
pdfhbdcs.obj,+
fyvwin.exe,  +
fyvwin.map,  +
c:\fwh\lib\FiveHX.lib +
c:\fwh\lib\FiveHC.lib +
c:\fwh\lib\Tpdfx.lib +
C:\xHarbour\lib\rtl.lib +
C:\xHarbour\lib\vm.lib +
C:\xHarbour\lib\gtgui.lib +
C:\xHarbour\lib\lang.lib +
C:\xHarbour\lib\macro.lib +
C:\xHarbour\lib\rdd.lib +
C:\xHarbour\lib\dbfntx.lib +
C:\xHarbour\lib\dbfcdx.lib +
C:\xHarbour\lib\dbffpt.lib +
C:\xHarbour\lib\hbsix.lib +
C:\xHarbour\lib\debug.lib +
C:\xHarbour\lib\common.lib +
C:\xHarbour\lib\pp.lib +
C:\xharbour\lib\pcrepos.lib +
C:\xHarbour\lib\ct.lib +
C:\xHarbour\lib\zlib.lib +
C:\xHarbour\lib\hbzip.lib +
C:\xHarbour\lib\rddads.lib +
C:\xHarbour\lib\ace32.lib +
C:\xHarbour\lib\codepage.lib +
C:\bcc582\lib\cw32.lib +
C:\bcc582\lib\import32.lib +
C:\bcc582\lib\uuid.lib +
C:\bcc582\lib\wininet.lib +
C:\bcc582\lib\oleaut32.lib +
C:\bcc582\lib\psdk\odbc32.lib +
C:\bcc582\lib\psdk\rasapi32.lib +
C:\bcc582\lib\psdk\nddeapi.lib +
C:\bcc582\lib\psdk\msimg32.lib +
C:\bcc582\lib\psdk\iphlpapi.lib +
C:\bcc582\lib\psdk\psapi.lib +
el prg es el gestimpr.prg y lo que incluyo de la clase Tpdf son:

pdf1.prg
pdfhbdcs.prg

y tambien se incluye la libreria:

Tpdfx.lib

Un saludo

Carlos

Re: clase Tpdf

Posted: Tue Sep 18, 2012 11:45 am
by surGom
Carlos a mí así como esta en el código me funciona

Code: Select all

oPdf:Pdfatsay("Agente de Retención: " + "08712-8"+ space(25) + "Tipo de Agente : particular",cm2dpi(2.4),250,.t.)

oPdf:Pdfsetfont( "TIMES",   BOLD, 10)
//oPdf:Pdfsetfont( "COURIER",BOLD, 10)
oPdf:Pdfatsay("Régimen General de Ingresos _ Federal ",cm2dpi(nrow+= .8),cmancho(6))
oPdf:Pdfsetfont( "COURIER",NORMAL, 9)
oPdf:Pdfatsay("Descripción Régimen: Res. 533-SH y F-200 - Régimen General de Retención del I.S.I.B.",cm2dpi(nrow+= .4),cmancho(2.5))
oPdf:Pdfsetfont( "COURIER",NORMAL, 10)
Yo estoy compilando directamente la librería que viene de xharbour pdflib.lib

Luis

Re: clase Tpdf

Posted: Tue Sep 18, 2012 12:44 pm
by colthop
Hola Luis:

He encontrado la libreria que me indicas y me pasa lo mismo pero veo una diferencia es que yo para poner negrita no me vale poner BOLD como pones tu sino tengo que poner 1 y para NORMAL pongo 0, sino da error.

Es la única diferencia.

Un saludo

Carlos

Re: clase Tpdf

Posted: Tue Sep 18, 2012 1:48 pm
by surGom
Tenés que incluir los includes

#include "PdfHbDoc.ch"
#include "Pdf.ch"

Luis

Re: clase Tpdf

Posted: Tue Sep 18, 2012 1:54 pm
by surGom
Te envío el prg que yo hice y funciona:

Code: Select all

FUNCTION  impibrpdf1(aMae,  oVar,cPath)                       //impresion en pdf para enviar por correo retenciones capital
local z := 0
local nrow := 3.2
local cTitulo := ""
local oPdf

 cTitulo := "Capital Federal"


 opdf := tpdf():new(cPath)


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

 

oPdf:Pdfatsay("CUIT 30-65485547-8"  ,cm2dpi(2.4 ),100,.T.)
oPdf:Pdfatsay(("Nº Ingresos Brutos: " + oApp:nroBruto),cm2dpi(2.0),250,.t.)
oPdf:Pdfatsay("Agente de Retención: " + "08712-8"+ space(25) + "Tipo de Agente : particular",cm2dpi(2.4),250,.t.)

oPdf:Pdfsetfont( "TIMES",   BOLD, 10)
//oPdf:Pdfsetfont( "COURIER",BOLD, 10)
oPdf:Pdfatsay("Régimen General de Ingresos _ Federal ",cm2dpi(nrow+= .8),cmancho(6))
oPdf:Pdfsetfont( "COURIER",NORMAL, 9)
oPdf:Pdfatsay("Descripción Régimen: Res. 533-SH y F-200 - Régimen General de Retención del I.S.I.B.",cm2dpi(nrow+= .4),cmancho(2.5))
oPdf:Pdfsetfont( "COURIER",NORMAL, 10)

oPdf:Pdfatsay("Fecha: " + dtoc(oVar:dfecha),cm2dpi(nrow+= .7),cmancho(1.5))
oPdf:Pdfatsay("Certificado N°  " +  ("0001-" + CSTR(year(date())) +"-" + strzero(oVar:nNbrucap,6)),cm2dpi(nrow+= .5),cmancho(1.5))
oPdf:Pdfatsay("Período  " +  (  strzero(month(date()),2)  +"/"  + substr( CSTR(year(date())),-2)),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 999,999.99"),cm2dpi(nrow+= .5),cmancho(1.5))
oPdf:Pdfatsay("Importe retenido: $" + transform(oVar:nRetibcap,"@e 999,999.99"),cm2dpi(nrow+= .5),cmancho(1.5))
oPdf:Pdfatsay("Alícuota aplicada: %" + transform(oVar:Ibrecap , "@e 99.99"),cm2dpi(nrow+= .5),cmancho(1.5))
if !empty(oVar:iva)
    oPdf:Pdfatsay( "Iva: " + transform(oVar:iva,"@e 999,999.99"),cm2dpi(nrow+= .5),cmancho(1.5))
    oPdf:Pdfatsay("Otros conceptos:" + transform(oVar:otroscon, "@e 99,999.99"),cm2dpi(nrow+= .5),cmancho(1.5))
endif

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 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()

return nil

/*******************************************************************************/
 FUNCTION titpdef(oPdf)
 opdf:Pdfnewpage("A4","P")

opdf:Pdfimage(oApp:curproga + "logoc1.jpg", cm2dpi(2.5), 0,85,66) 
oPdf:Pdfsetfont( "TIMES",   BOLD, 10)
opdf:Pdfatsay("QUÍMICA MEGA SA",cm2dpi( .7 ),100,.T.)
oPdf:Pdfsetfont( "TIMES",NORMAL, 10)
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.6 ),10,.T.)

return nil
/*******************************************************************************/
Enlazado con xharbour 1.21 (último), fwh7.12 y bcc582
los include estan en la contribuciones

Re: clase Tpdf

Posted: Tue Sep 18, 2012 2:10 pm
by surGom
Carlos fijate como queda

https://ftf-267.yousendit.com/download/ ... le=pdf.jpg

Los datos que se muestran son irreales

Luis

Re: clase Tpdf

Posted: Tue Sep 18, 2012 2:43 pm
by colthop
Hola Luis y Antonio:

Ya me acuerdo porque no ponia el PDF.CH y es porque tambien uso DEFINE FONT y eso interferia y usaba el 1 y el 0 en vez de BOLD y NORMAL. No obstante he desactivado todos los DEFINE FONT con BOLD y he puesto el PDF.CH y tampoco me funciona el cambio de letra.

Tambien tengo problemas con las imagenes pero lo resolvi con un programa que si las guardo con él si funciona.

Un saludo

Carlos

Re: clase Tpdf

Posted: Tue Sep 18, 2012 2:47 pm
by colthop
Hola Antonio:

Era el codigo que decias.

Un saludo

Carlos

Re: clase Tpdf

Posted: Tue Sep 18, 2012 3:13 pm
by Willi Quintana
por favor, podria indicar de donde bajar la clase TPdf()
Mil gracias

Re: clase Tpdf

Posted: Tue Sep 18, 2012 3:40 pm
by colthop
Hola Willi Quintana:

http://www.colthop.es/TPDF.zip

Un saludo

Carlos

Re: clase Tpdf

Posted: Tue Sep 18, 2012 5:18 pm
by Antonio Linares

Re: clase Tpdf

Posted: Tue Sep 18, 2012 5:37 pm
by colthop
Ya he averiguado, solo se pueden poner ciertos tipos deletras y todasde paso fijo Times, Courier, Helvetica.

Se podria aumentar esta cantidad detipos.

Un saludo

Carlos

Re: clase Tpdf

Posted: Tue Sep 18, 2012 6:01 pm
by acuellar
Amigos

He compilado el Ejemplo

Y me da error en la libreria RTL.LIB

Sale este error:

Code: Select all

Error: Unresolved external '_compress' referenced from D:\COMPILER\XHARBOUR\LIB\RTL.LIB|hbcomprs
Error: Unresolved external '_uncompress' referenced from D:\COMPILER\XHARBOUR\LIB\RTL.LIB|hbcomprs
Error: Unresolved external '_zError' referenced from D:\COMPILER\XHARBOUR\LIB\RTL.LIB|hbcomprs
 
Pensé que era el BCC intenté con BCC63 y BCC582 con XHarbour Rev. 9445 y con la última Rev. 9656 la cual da más errores.

También tengo problemas al exportar a Excel de xBrowse usando oBrw:ToExcel()

Gracias por la ayuda.

Saludos,

Adhemar