PDF generado desde programa en FiveWin
PDF generado desde programa en FiveWin
Estimados,
Tengo que implementar un programa que genere internamente liquidaciones de sueldo en PDF, cada una con su respectivo nombre sin usar utilitarios como PDFCreator, sino directamente desde el programa en FiveWin.
de antemano gracias por sus comentarios
Tengo que implementar un programa que genere internamente liquidaciones de sueldo en PDF, cada una con su respectivo nombre sin usar utilitarios como PDFCreator, sino directamente desde el programa en FiveWin.
de antemano gracias por sus comentarios
Luis Alfonso Fuentes Guerrero
FWH 11.06 xHarbour 1.2.1 BCC55 WorkShop
FWH 11.06 xHarbour 1.2.1 BCC55 WorkShop
- Manuel Aranda
- Posts: 561
- Joined: Wed Oct 19, 2005 8:20 pm
- Location: España
Re: PDF generado desde programa en FiveWin
Puedes utilizar pdftk.exe para tal fín. Aquí tienes más información : http://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/
Un saludo,
Manuel
xH 1.2.3, FWH 14.09, BC++ 5.8.2, xVerce CW 1.0, PellesC
Manuel
xH 1.2.3, FWH 14.09, BC++ 5.8.2, xVerce CW 1.0, PellesC
-
- Posts: 988
- Joined: Thu Nov 24, 2005 3:01 pm
- Location: Madrid, España
Re: PDF generado desde programa en FiveWin
Manuel,
creo que el compañero quiere hacer pdfs, no manipularlos, y segun entiendo pdftk solo vale para manipularlos, no para crearlos.
lafug,
¿Como te llamas? Sería bueno saber tu nombre para poder dirigirme a tí de manera apropiada.
Creo que deberías usar PdfCreator. Hay formas de controlarlo (lee los manuales) de forma tal de hacer lo que quieres. Además de ser uno de los libres y gratuitos, es uno de los que mejor código genera. En el trabajo compramos image2pdf pero no nos ha dado buen resultado, los pdfs no muestran correctamente el tamaño de las fuentes (problema reconocido por el autor) y la única forma es que generes los documentos como imágenes, con lo que los pdfs son muy grandes.
Lee la documentación de PdfCreator, es fácil controlarlo via el fichero ini.
Un saludo
creo que el compañero quiere hacer pdfs, no manipularlos, y segun entiendo pdftk solo vale para manipularlos, no para crearlos.
lafug,
¿Como te llamas? Sería bueno saber tu nombre para poder dirigirme a tí de manera apropiada.
Creo que deberías usar PdfCreator. Hay formas de controlarlo (lee los manuales) de forma tal de hacer lo que quieres. Además de ser uno de los libres y gratuitos, es uno de los que mejor código genera. En el trabajo compramos image2pdf pero no nos ha dado buen resultado, los pdfs no muestran correctamente el tamaño de las fuentes (problema reconocido por el autor) y la única forma es que generes los documentos como imágenes, con lo que los pdfs son muy grandes.
Lee la documentación de PdfCreator, es fácil controlarlo via el fichero ini.
Un saludo
Saludos
Carlos Mora
http://harbouradvisor.blogspot.com/
StackOverflow http://stackoverflow.com/users/549761/carlos-mora
“If you think education is expensive, try ignorance"
Carlos Mora
http://harbouradvisor.blogspot.com/
StackOverflow http://stackoverflow.com/users/549761/carlos-mora
“If you think education is expensive, try ignorance"
- Manuel Aranda
- Posts: 561
- Joined: Wed Oct 19, 2005 8:20 pm
- Location: España
Re: PDF generado desde programa en FiveWin (Editado)
Hola Carlos:
Sí, es cierto, con pdftk no se pueden crear pdf,s pero, si no he entedido mal, lo que quiere Luis Alfonso es generar distintos ficheros pdf con la misma plantilla o modelo y diferentes datos. Eso se puede hacer perfectamente con pdftk. Tienes un fichero nomina.pdf y un fichero datos.xml que vas a fusionar para generar un nuevo fichero empleadoxxx.pdf. Algo tan sencillo como esto:
Por cierto, fuiste tú quien, en su día, me puso sobre la pista de pdftk.
Luis Alfonso, necesitas :
1º Previamente manipular tu fichero PDF con un editor de ficheros PDF para conocer/modificar el nombre de los _.
2º Crear un fichero XML que contenga los valores de _ del PDF
En este enlace te he puesto un ejemplo de ambos ficheros: http://rapidshare.com/files/432112051/Ejemplo.rar
Sí, es cierto, con pdftk no se pueden crear pdf,s pero, si no he entedido mal, lo que quiere Luis Alfonso es generar distintos ficheros pdf con la misma plantilla o modelo y diferentes datos. Eso se puede hacer perfectamente con pdftk. Tienes un fichero nomina.pdf y un fichero datos.xml que vas a fusionar para generar un nuevo fichero empleadoxxx.pdf. Algo tan sencillo como esto:
Code: Select all
cSalida:="empleado"+cNombre+".pdf"
//
WaitRun("pdftk.exe nomina.pdf fill_form datos.xml output "+ cSalida,0 )
// Si queremos ver el resultado
ShellExecute( ,"open", cSalida,,,1 )
Por cierto, fuiste tú quien, en su día, me puso sobre la pista de pdftk.
Luis Alfonso, necesitas :
1º Previamente manipular tu fichero PDF con un editor de ficheros PDF para conocer/modificar el nombre de los _.
2º Crear un fichero XML que contenga los valores de _ del PDF
En este enlace te he puesto un ejemplo de ambos ficheros: http://rapidshare.com/files/432112051/Ejemplo.rar
Un saludo,
Manuel
xH 1.2.3, FWH 14.09, BC++ 5.8.2, xVerce CW 1.0, PellesC
Manuel
xH 1.2.3, FWH 14.09, BC++ 5.8.2, xVerce CW 1.0, PellesC
Re: PDF generado desde programa en FiveWin
GRacias Por sus comentarios,
Investigaré vuetras sugerencias
saludos
Luis Fuentes
Investigaré vuetras sugerencias
saludos
Luis Fuentes
Luis Alfonso Fuentes Guerrero
FWH 11.06 xHarbour 1.2.1 BCC55 WorkShop
FWH 11.06 xHarbour 1.2.1 BCC55 WorkShop
Re: PDF generado desde programa en FiveWin
Hola:
Yo utilizo la clase tprinter de fivewin, haciendo un pequeño enredo:
Ahora según el ejemplo tendríamos en "C:\Temp" el documento "fnombre".pdf.
Un saludo
José Luis
Yo utilizo la clase tprinter de fivewin, haciendo un pequeño enredo:
Code: Select all
PRINTER oPrn DOC "INFORME" preview
DEFINE FONT oFont NAME "Arial" SIZE 0,-14 BOLD OF oPrn
DEFINE FONT oFont1 NAME "Arial" SIZE 0,-10 OF oPrn
define font ofont3 name "Arial" SIZE 0,-6 of oprn
DEFINE PEN oPen WIDTH 3 of oprn
oprn:setpage(9)
PAGE
oPrn:ImportWMF( ruta3+"folio.wmf",.f. )
// lo que quiero imprimir
ENDPAGE
if !nconvert("-o c:\temp\"+fnombre+" -quiet -out pdf -c 5 "+oPrn:aMeta[1])
msginfo("error sin convertir")
endif
ferase(oPrn:aMeta[1]) //borro el metafile
oprn:end() //aqui termino el objeto printer, para que no salga el preview
oprn:=nil
oFont:End()
ofont1:end()
open:end()
Un saludo
José Luis
Re: PDF generado desde programa en FiveWin
Hola Jose Luis:
De donde has obtenido la funcion nConvert() ?
un saludo
JLL
De donde has obtenido la funcion nConvert() ?
un saludo
JLL
Libreria: FWH/FWH1109 + Harbour 3.1.1 + Borland C++ 5.8.2
Editor de Recursos: PellecC
ADA + OURXDBU -
S.O: XP / Win 7
Blog: http://javierlloris.blogspot.com.es/
e-mail: jllorispersonal@gmail.com
Editor de Recursos: PellecC
ADA + OURXDBU -
S.O: XP / Win 7
Blog: http://javierlloris.blogspot.com.es/
e-mail: jllorispersonal@gmail.com
-
- Posts: 366
- Joined: Wed Aug 30, 2006 5:25 pm
- Location: Uruguay
Re: PDF generado desde programa en FiveWin
Gracias y Saludos
Ruben Fernandez - Uruguay
FWH 11.06, Harbour, Borland 5.82
Ruben Fernandez - Uruguay
FWH 11.06, Harbour, Borland 5.82
Re: PDF generado desde programa en FiveWin
Hola a Todos,
Nada mas para decir que ojo con la licencia de nconvert que no es free para uso comercial segun recuerdo.
atte.,
Lautaro Moreira
Nada mas para decir que ojo con la licencia de nconvert que no es free para uso comercial segun recuerdo.
atte.,
Lautaro Moreira
Re: PDF generado desde programa en FiveWin
Hola, perdona la tardanza, pero he estado ausente unos dias la funcion nconvert:
En cuanto al ejecutable nconvert.exe, ya te han indicado unos post más arriba donde conseguirlo.
Un saludo
Code: Select all
static function nconvert(cadena)
local ruta:="donde ubico el ejecutable nconvert.exe"
if file(ruta+"nconvert.exe")
ruta:=ruta+"nconvert.exe"
else
return .f.
endif
MsgRun( "Espere....", "Procesado fichero" , { || waitrun(ruta+" "+cadena,0) } )
return .t.
Un saludo
Re: PDF generado desde programa en FiveWin
Hola estoy usando tu ejemplo de nconvert. Lo que ocurre es que al usar oPrn:end() me cierra la ventana pero me devuelve un error.
Podiras echarme una mano.
Este el codigo que estoy usando
If cPdf
WaitRun ("NCONVE32.EXE -quiet -out pdf -c 5 "+oPrn:aMeta[1] )
If File(oPrn:aMeta[1])
oPrn:End() ** En esta linea es donde me devuelve el error indicandome que no existe "lMeta"
End
*? SendMessage( FindWindow( 0, "HOLA"), WM_CLOSE ) ** he intentado cerrar la pantalla de previsualizacion con esta linea
** pero me devuelve al entrar por segunda vez que ya esta abierta
End
ENDPRINT
Podriais ayudarme ?
Gracias
Podiras echarme una mano.
Este el codigo que estoy usando
If cPdf
WaitRun ("NCONVE32.EXE -quiet -out pdf -c 5 "+oPrn:aMeta[1] )
If File(oPrn:aMeta[1])
oPrn:End() ** En esta linea es donde me devuelve el error indicandome que no existe "lMeta"
End
*? SendMessage( FindWindow( 0, "HOLA"), WM_CLOSE ) ** he intentado cerrar la pantalla de previsualizacion con esta linea
** pero me devuelve al entrar por segunda vez que ya esta abierta
End
ENDPRINT
Podriais ayudarme ?
Gracias
-
- Posts: 41
- Joined: Thu Sep 17, 2015 11:40 pm
Re: PDF generado desde programa en FiveWin (Editado)
Manuel Aranda wrote:Hola Carlos:
Sí, es cierto, con pdftk no se pueden crear pdf,s pero, si no he entedido mal, lo que quiere Luis Alfonso es generar distintos ficheros pdf con la misma plantilla o modelo y diferentes datos. Eso se puede hacer perfectamente con pdftk. Tienes un fichero nomina.pdf y un fichero datos.xml que vas a fusionar para generar un nuevo fichero empleadoxxx.pdf. Algo tan sencillo como esto:
Code: Select all
cSalida:="empleado"+cNombre+".pdf" // WaitRun("pdftk.exe nomina.pdf fill_form datos.xml output "+ cSalida,0 ) // Si queremos ver el resultado ShellExecute( ,"open", cSalida,,,1 )
Por cierto, fuiste tú quien, en su día, me puso sobre la pista de pdftk.
Luis Alfonso, necesitas :
1º Previamente manipular tu fichero PDF con un editor de ficheros PDF para conocer/modificar el nombre de los _.
2º Crear un fichero XML que contenga los valores de _ del PDF
En este enlace te he puesto un ejemplo de ambos ficheros: http://rapidshare.com/files/432112051/Ejemplo.rar
Hola estoy necesitando llenar datos en un pdf me podrias facilitar el archivo ejemplo por favor
- nageswaragunupudi
- Posts: 8017
- Joined: Sun Nov 19, 2006 5:22 am
- Location: India
- Contact:
Re: PDF generado desde programa en FiveWin
lafug wrote:Estimados,
Tengo que implementar un programa que genere internamente liquidaciones de sueldo en PDF, cada una con su respectivo nombre sin usar utilitarios como PDFCreator, sino directamente desde el programa en FiveWin.
de antemano gracias por sus comentarios
Code: Select all
PRINT oPrn FILE "filename.pdf"
PAGE
// your print statements to print
ENDPAGE
ENDPRINT
I assume that you are not using a very very old version of FWH.
Please let us know if you need any further clarifications.
Regards
G. N. Rao.
Hyderabad, India
G. N. Rao.
Hyderabad, India
-
- Posts: 988
- Joined: Thu Nov 24, 2005 3:01 pm
- Location: Madrid, España
Re: PDF generado desde programa en FiveWin (Editado)
Hola Carlos!CARLOS ATUNCAR wrote: Hola estoy necesitando llenar datos en un pdf me podrias facilitar el archivo ejemplo por favor
Lo siento, no tengo nada ahora a mano, pero el pdftk tiene un help embebido, y tiene un comando para sacar la plantilla que usas para rellenar el pdf.
Esta pagina tiene todo lo que trae el pdftk, y el comando que necesitas es generate_fdf, que te genera la plantilla donde vas a cargar tus datos, luego usas el comando fill_form para rellenar el pdf con los datos que metiste. tiene una opción flatten que sirve para que quite los "gets" de _ y deje solo el texto.
Espero que lo puedas hacer funciona.
Abrazo
Saludos
Carlos Mora
http://harbouradvisor.blogspot.com/
StackOverflow http://stackoverflow.com/users/549761/carlos-mora
“If you think education is expensive, try ignorance"
Carlos Mora
http://harbouradvisor.blogspot.com/
StackOverflow http://stackoverflow.com/users/549761/carlos-mora
“If you think education is expensive, try ignorance"
Re: PDF generado desde programa en FiveWin
Hola no sé si es lo que necesitas, pero uso el CutePDF Writer, haces el listado que quieres y lo imprimes por ahí
Hay librerías para hacer pdf, yo uso la clase tpdf desde hace años, en _ que tengo que generarlo y enviarlos por correo.
Creo que con versiones nuevas de fivewin se hace automáticamente.
Un caso de crear un pdf sin pasar por la impresora del CutePDF Writer
Me parece que la otra clase es harupdf, si la buscas en el foro hay información precisa.
Espero te sirva
Luis
Hay librerías para hacer pdf, yo uso la clase tpdf desde hace años, en _ que tengo que generarlo y enviarlos por correo.
Creo que con versiones nuevas de fivewin se hace automáticamente.
Un caso de crear un pdf sin pasar por la impresora del CutePDF Writer
Code: Select all
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 999,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,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
Espero te sirva
Luis