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 )
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()
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.
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 Expand view
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 distintos campos.
2º Crear un fichero XML que contenga los valores de los campos del PDF
En este enlace te he puesto un ejemplo de ambos ficheros: http://rapidshare.com/files/432112051/Ejemplo.rar
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
PRINT oPrn FILE "filename.pdf"
PAGE
// your print statements to print
ENDPAGE
ENDPRINT
CARLOS ATUNCAR wrote:Hola estoy necesitando llenar datos en un pdf me podrias facilitar el archivo ejemplo por favor
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
Return to FiveWin para Harbour/xHarbour
Users browsing this forum: Google [Bot], nageswaragunupudi and 56 guests