ARCHIVOS PDF
Posted: Fri Jun 10, 2016 2:34 pm
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
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:
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
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
"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