Page 1 of 2

ARCHIVOS PDF

Posted: Fri Jun 10, 2016 2:34 pm
by LuisPonce
Buenos Dias

Es necesario crear archivos PDF desde mi aplicacion, encontre información en el Foro referente a PDFLIB y TPDF (no se sin lo mismo) use la segunda por que encontre un link que puso Karinha:

como clase propia de FiveWin

https://code.google.com/p/fivewin-contr ... p&can=2&q=

Despues de muchas lunas, construi a mano el TPDFX.LIB pese a que el archivo esta presente, no podia hacer nada, asi que genere los .OBJ de los .PRGs de esa clase y los junté al .LIB existente con TLIB y pude correr el codigo del ejemplo dentro de mi aplicacion:

a mi .RMK le agregue ..\LIB\TPDFX.LIB

al .PRG que contiene la funcion de ejemplo agregué los ficheros de cabecera

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

si libero el "Pdf.ch" me dá 84 errores del tipo;

Syntax Error: At 'FONT'
Syntax Error: At 'OREPORTE'
Invalid lvalue: '()'


poniendolo como comentario corre, asi que pude agrear el codigo de ejemplo para correrlo
desde mi aplicacion

Code: Select all

Function MyFirstPdf(oWnd)

   Local oPdf := TPdf():New( "First.pdf",, letter_height, letter_width ) // ( cFileName, nHeight, nWidth )

   oPdf:PdfNewPage( , "P",, "Arial",, 24 ) // ( cPaperSize, cOrientation, nLinesPerInch, cFontName, nFontType, nFontSize )
   oPdf:PdfImage( "nomina1.jpg", 0, 0, letter_width, letter_height )
   oPdf:PdfClosePage()
   oPdf:PdfNewPage( , "P",, "Arial",, 24 ) // ( cPaperSize, cOrientation, nLinesPerInch, cFontName, nFontType, nFontSize )
   oPdf:PdfImage( "nomina2.jpg", 0, 0, letter_width, letter_height )
   oPdf:PdfClosePage()
   oPdf:PdfClose()

   ShellExecute( oWnd:hWnd, "open", "First.pdf" )

Return Nil
y corrió..... genera el "First.pdf" pero vacío y con el siguiente error:


"Error al procesar pagina. Numero fuera de rango"

probé con otro ejemplo:

Code: Select all


function creapdfcc(oWnd)

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

   n  := 2.9

   opdf := tpdf():new(cPath)

*   opdf:Pdfnewpage("A4","P")
   oPdf:PdfNewPage("A4" , "P",, "Arial",, 24 ) // ( cPaperSize, cOrientation, nLinesPerInch, cFontName, nFontType, nFontSize )

   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", "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



Function MyFirstPdf2(oWnd)

   Local oPdf := TPdf():New( "First.pdf",, letter_height, letter_width ) // ( cFileName, nHeight, nWidth )

   oPdf:PdfNewPage( , "P",, "Arial",, 24 ) // ( cPaperSize, cOrientation, nLinesPerInch, cFontName, nFontType, nFontSize )
   oPdf:PdfImage( "nomina1.jpg", 0, 0, letter_width, letter_height )
   oPdf:PdfClosePage()
   oPdf:PdfNewPage( , "P",, "Arial",, 24 ) // ( cPaperSize, cOrientation, nLinesPerInch, cFontName, nFontType, nFontSize )
   oPdf:PdfImage( "nomina2.jpg", 0, 0, letter_width, letter_height )
   oPdf:PdfClosePage()
   oPdf:PdfClose()

   ShellExecute( oWnd:hWnd, "open", "First.pdf" )

Return Nil



 

Con el mismo resultado, sospecho que:

1. como creé a mano el TPDFX.LIB omití algo e imagino que es el pdfhbdoc.obj, pues
no encontre el .prg para generar el .obj y añadirlo al .lib

2. o la clase esta incompleta
3. la clase no es para xHarbour
4. o es el "pdf.ch" que omito

Utilizo:

xHarbour Compiler 1.1.0 (Simplex)
FWHX 8.02

Alguien tendra alguna idea de por que me marca ese error??
o que puedo estar omitiendo

Ojo: Abriendo el First.pdf desde fuera de la aplicacion, me da el mismo error

Gracias

Re: ARCHIVOS PDF

Posted: Fri Jun 10, 2016 2:43 pm
by Willi Quintana
Hola Lucho,,,
ve esto..

Code: Select all

oPdf:PdfSetFont( "COURIER NEW", 0, nFontPdf )
opdf:Pdfnewpage("A4","P")

oPdf:Pdfimage(".\BMP\svite.jpg", cm2dpi(2.5), 0, 580, 60)


//PdfSay(oPdf, _DELEN3(oApp:cMaster), 2.5, 2.5, "TIMES", BOLD, 10)
PdfSay(oPdf, "EMPRESA", 2.5, 2.5, "TIMES", BOLD, 10)
PdfSay(oPdf, "COTIZACION", 3.0, 8.0, "TIMES", NORMAL, 20)
PdfSay(oPdf, "SRS: " + cNombre, 3.5, 2.5, "TIMES", BOLD, 8)
PdfSay(oPdf, "DIR: " + cDirecc, 4.0, 2.5)
PdfSay(oPdf, "RUC: " + cNumRuc, 4.5, 2.5)
PdfSay(oPdf, REPLICATE("_",115), 5.5, 2.5)

CURSORWAIT()

cLinea := "Cantidad  Unid   Producto                                               Precio Un. Sub Total"
PdfSay(oPdf, cLinea, 6.0, 2.5, "COURIER NEW", 0, 8)

nCont := 6.3

nLen := LEN(adetVen)
FOR nContR := 1 TO nLen

  cLinea := PADL(ALLTRIM(aDetVen[nContR,03]),9) + " " +PADR(aDetVen[nContR,02],5) + " " + PADR(aDetVen[nContR,01],50) + " " + PADL(aDetVen[nContR,04],12) + " " + PADL(aDetVen[nContR,07],12)
  PdfSay(oPdf, cLinea, nCont, 2.5)

  nTotal := nTotal + VAL(aDetVen[nContR,07])

  nCont := nCont + 0.3

  If nCont > 20

  EndIf

NEXT nCont

nCont += 0.3
PdfSay(oPdf, PADL("Total..."  + IF(nMoneda=1,"S/.","U$.") + STR(nTotal,12,2),92), nCont, 2.5)

nCont += 0.3
PdfSay(oPdf, "Precios Válidos Hasta :" + DTOST(dFecha1) + " -Forma de Pago :" + cFormaPago + " -Forma de Entrega :" + cFormaEntrega, nCont, 2.5)

nCont += 0.3
PdfSay(oPdf, "Los precios están sujetos a cambios sin previo aviso", nCont, 2.5)

nCont += 0.3
PdfSay(oPdf, "Fecha : " + DtoC(oApp:dDate) + " :" + Time(), nCont, 2.5)

oPdf:PdfClosepage()
oPdf:PdfClose()

SHELLEXECUTE( 0, 0, cFile, 0, 0, 1 )


//-------------------------------------

//------------------------------------------------------------------------------------------------------------------------------
Function PdfSay(oPdf, cCadena, nPosV, nPosH, cFont, cType, nTam)
DEFAULT cFont := "COURIER NEW"
DEFAULT cType := "NORMAL"
DEFAULT nTam  := 10

IF PCount() > 4  //!EMPTY(cFont)
  oPdf:Pdfsetfont( cFont, cType, nTam)
EndIf

oPdf:Pdfatsay(cCadena, Cm2Dpi( nPosV ), Cm2Dpi( nPosH, .f.), .T.)

Return(Nil)

//---------------------------------------------------------------------------------------------------------------------------------
Function PdfBox(oPdf, nIni1, nIni2, nTam1, nTam2, cFont, cType, nTam)
DEFAULT cFont := "COURIER NEW"
DEFAULT cType := "NORMAL"
DEFAULT nTam  := 10

IF PCount() > 5   //!EMPTY(cFont)
  oPdf:Pdfsetfont( cFont, cType, nTam)
EndIf

oPdf:PDF_RECT(Cm2Dpi( nIni1 ), Cm2Dpi( nIni2, .f.), nTam1, nTam2 )
oPdf:PDF_STROKE()

Return(Nil)

//----------------------------------------------------------------------------------------------------------------------------
Function Cm2Dpi( nCM, lHeight )
Local nHeight,nDpi := 72
Local nRes
DEFAULT lHeight := .t.

If lHeight
   nHeight := 842.0
   nRes := nHeight - ( nCM * nDpi / 2.54 )
 Else
   nRes := ( nCM * nDpi / 2.54 )
Endif

Return( nRes )

 

Re: ARCHIVOS PDF

Posted: Fri Jun 10, 2016 3:01 pm
by LuisPonce
Hola Willy

Gracias por tu respuesta

no corre, me da error:

oPdf:PdfSetFont( "COURIER NEW", 0, nFontPdf )

que valores puede contener nFontPDf;
le puse valor 10 y pasó


PdfSay(oPdf, "EMPRESA", 2.5, 2.5, "TIMES", BOLD, 10)
PdfSay(oPdf, "COTIZACION", 3.0, 8.0, "TIMES", NORMAL, 20)
PdfSay(oPdf, "SRS: " + cNombre, 3.5, 2.5, "TIMES", BOLD, 8)

que valores debe contener:

BOLD
NORMAL

Application
===========
Path and name: C:\VENTAS\Ventas.exe (32 bits)
Size: 5,330,944 bytes
Time from start: 0 hours 0 mins 15 secs
Error occurred at: 10/06/2016, 10:03:26
Error description: Error BASE/1081 Argument error: +
Args:
[ 1] = C NORMAL
[ 2] = N 1

Stack Calls
===========
Called from: pdf1.prg => TPDF:PDFSETFONT(553)
Called from: vt20150.prg => PDFSAY(8715)
Called from: vt20150.prg => CREAPDFCC(8657)
Called from: fw-vt2.prg => (b)BUILDMENU(746)
Called from: MENU.PRG => TMENU:COMMAND(0)
Called from: WINDOW.PRG => TWINDOW:COMMAND(0)
Called from: MDIFRAME.PRG => TMDIFRAME:COMMAND(0)
Called from: => TMDIFRAME:HANDLEEVENT(0)
Called from: WINDOW.PRG => _FWH(0)
Called from: => WINRUN(0)
Called from: WINDOW.PRG => TMDIFRAME:ACTIVATE(0)
Called from: fw-vt2.prg => MAIN(660)

Re: ARCHIVOS PDF

Posted: Fri Jun 10, 2016 3:33 pm
by LuisPonce
Willy

Me debe faltar algunos #define
He resuelto los mensajes, agregué las variables

y me dió el mismo resultado

"Error al procesar pagina. Número fuera de rango"

Debe ser algo relacionado con la construccion de la clase

Re: ARCHIVOS PDF

Posted: Fri Jun 10, 2016 3:35 pm
by Willi Quintana
Luis,,,, faltaba las cabeceras

Code: Select all

# include "fivewin.ch"                  // 0x4L |
# include "report.ch"
# include "dtpicker.ch"
# include "xbrowse.ch"

Function PruebaPdf()

cFile := "Prueba.PDF"

oPdf := TPdf():New( cFile ) //, , 612, 792  )

oPdf:PdfInfo( "COTIZACION", "" ,"", "" )

oPdf:PdfSetFont( "COURIER NEW", 0, nFontPdf )
opdf:Pdfnewpage("A4","P")


oPdf:Pdfimage(".\BMP\svite.jpg", cm2dpi(2.5), 0, 580, 60)


//PdfSay(oPdf, _DELEN3(oApp:cMaster), 2.5, 2.5, "TIMES", BOLD, 10)
PdfSay(oPdf, "EMPRESA", 2.5, 2.5, "TIMES", BOLD, 10)
PdfSay(oPdf, "COTIZACION", 3.0, 8.0, "TIMES", NORMAL, 20)
PdfSay(oPdf, "SRS: " + cNombre, 3.5, 2.5, "TIMES", BOLD, 8)
PdfSay(oPdf, "DIR: " + cDirecc, 4.0, 2.5)
PdfSay(oPdf, "RUC: " + cNumRuc, 4.5, 2.5)
PdfSay(oPdf, REPLICATE("_",115), 5.5, 2.5)

CURSORWAIT()

cLinea := "Cantidad  Unid   Producto                                               Precio Un. Sub Total"
PdfSay(oPdf, cLinea, 6.0, 2.5, "COURIER NEW", 0, 8)

nCont := 6.3

nLen := LEN(adetVen)
FOR nContR := 1 TO nLen

  cLinea := PADL(ALLTRIM(aDetVen[nContR,03]),9) + " " +PADR(aDetVen[nContR,02],5) + " " + PADR(aDetVen[nContR,01],50) + " " + PADL(aDetVen[nContR,04],12) + " " + PADL(aDetVen[nContR,07],12)
  PdfSay(oPdf, cLinea, nCont, 2.5)

  nTotal := nTotal + VAL(aDetVen[nContR,07])

  nCont := nCont + 0.3

  If nCont > 20

  EndIf

NEXT nCont

nCont += 0.3
PdfSay(oPdf, PADL("Total..."  + IF(nMoneda=1,"S/.","U$.") + STR(nTotal,12,2),92), nCont, 2.5)

nCont += 0.3
PdfSay(oPdf, "Precios Válidos Hasta :" + DTOST(dFecha1) + " -Forma de Pago :" + cFormaPago + " -Forma de Entrega :" + cFormaEntrega, nCont, 2.5)

nCont += 0.3
PdfSay(oPdf, "Los precios están sujetos a cambios sin previo aviso", nCont, 2.5)

nCont += 0.3
PdfSay(oPdf, "Fecha : " + DtoC(oApp:dDate) + " :" + Time(), nCont, 2.5)

oPdf:PdfClosepage()
oPdf:PdfClose()

SHELLEXECUTE( 0, 0, cFile, 0, 0, 1 )


//-------------------------------------

//------------------------------------------------------------------------------------------------------------------------------
Function PdfSay(oPdf, cCadena, nPosV, nPosH, cFont, cType, nTam)
DEFAULT cFont := "COURIER NEW"
DEFAULT cType := "NORMAL"
DEFAULT nTam  := 10

IF PCount() > 4  //!EMPTY(cFont)
  oPdf:Pdfsetfont( cFont, cType, nTam)
EndIf

oPdf:Pdfatsay(cCadena, Cm2Dpi( nPosV ), Cm2Dpi( nPosH, .f.), .T.)

Return(Nil)

//---------------------------------------------------------------------------------------------------------------------------------
Function PdfBox(oPdf, nIni1, nIni2, nTam1, nTam2, cFont, cType, nTam)
DEFAULT cFont := "COURIER NEW"
DEFAULT cType := "NORMAL"
DEFAULT nTam  := 10

IF PCount() > 5   //!EMPTY(cFont)
  oPdf:Pdfsetfont( cFont, cType, nTam)
EndIf

oPdf:PDF_RECT(Cm2Dpi( nIni1 ), Cm2Dpi( nIni2, .f.), nTam1, nTam2 )
oPdf:PDF_STROKE()

Return(Nil)

//----------------------------------------------------------------------------------------------------------------------------
Function Cm2Dpi( nCM, lHeight )
Local nHeight,nDpi := 72
Local nRes
DEFAULT lHeight := .t.

If lHeight
   nHeight := 842.0
   nRes := nHeight - ( nCM * nDpi / 2.54 )
 Else
   nRes := ( nCM * nDpi / 2.54 )
Endif

Return( nRes )
 

Re: ARCHIVOS PDF

Posted: Fri Jun 10, 2016 3:52 pm
by LuisPonce
Willy

Agregué las cabaceras

# include "report.ch"
# include "dtpicker.ch"
# include "xbrowse.ch"

tambien

oPdf:PdfInfo( "COTIZACION", "" ,"", "" )

y sigue el mismo error

Error al procesar pagina, numero fuera de rango

Abre el Adobe Reader, el documento en blanco y el mensaje de error

Re: ARCHIVOS PDF

Posted: Fri Jun 10, 2016 11:49 pm
by surGom
Fijate en este ejemplo que esta funcionando y podes reemplazar las variables y probalo

Y fijate si tenés las cabeceras
#include "PdfHbDoc.ch"
#include "Pdf.ch"

Code: Select all

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 999,999.99" ), cm2dpi( nrow += .5 ), cmancho( 1.5 ) )
   oPdf:Pdfatsay( "Importe retenido: $" + Transform( iif(lPcia,oVar:nRetib,oVar:nRetibcap ),"@e 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 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


FUNCTION cmAncho( nCm, ctexto )

   LOCAL cnum

RETURN multi( nCm, 27.42 )                            //para a4
 
Espero te sirva

Re: ARCHIVOS PDF

Posted: Fri Jun 10, 2016 11:52 pm
by surGom
Me olvidé de esta función

Code: Select all

FUNCTION titpdef( oPdf )

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

   oPdf:Pdfimage( oApp:curproga + "logoc1.jpg", cm2dpi( 2.5 ), 0, 100, 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
/*******************************************************************************/

Re: ARCHIVOS PDF

Posted: Sat Jun 11, 2016 12:03 am
by LuisPonce
Gracias

lo pruebo y comento

Re: ARCHIVOS PDF

Posted: Sat Jun 11, 2016 2:11 am
by LuisPonce
Willy y SurGom

me da el mismo error

"Error al procesar pagina, numero fuera de rango"

Abre el Adobe Reader, el documento en blanco y el mensaje de error

e incluir el PDF.ch, me da errores en los FONTS, NORMAL, BOLD.....

Re: ARCHIVOS PDF

Posted: Sat Jun 11, 2016 7:37 pm
by surGom
Luis descargate desde este enlace los archivos que utilizo para la librería tpdf, y también la librería que esta enlazada con bcc582 y harbour

https://www.4shared.com/zip/JFhHppTpce/tpdfh.html

Con esta librería funciona el ejemplo que te envié.

Luis, el otro

Re: ARCHIVOS PDF

Posted: Wed Jun 15, 2016 5:36 pm
by LuisPonce
Hola SurGom

Esa libreria es para xHarbour??, la bajo y te aviso

Gracias

Re: ARCHIVOS PDF

Posted: Thu Jun 16, 2016 12:27 am
by surGom
Fijate que la librería que te envío es para harbour. Compila los prg con xharbour



Luis

Re: ARCHIVOS PDF

Posted: Thu Jun 16, 2016 12:33 am
by surGom
Esta está compilada con xharbour

https://www.4shared.com/file/MzS1IZWtba/tpdf.html

Re: ARCHIVOS PDF

Posted: Wed Mar 14, 2018 2:50 am
by Enrrique Vertiz
Saludos Luis

Retomo este post, logre compilar los 2 ejemplos el de la PDFLIB y el de la TLIB, pero en _ cuando ejecuto me sale el siguiente mensaje :

"Error al procesar pagina, numero fuera de rango"

Necesito crear PDFs sencillos directamente desde codigo, gracias