ACTIVEX PDF y fusión de datos

ACTIVEX PDF y fusión de datos

Postby Manuel Aranda » Sat Nov 11, 2006 9:46 am

Con ACTIVEX PDF logro visualizar por pantalla un formulario PDF con campos editables para rellenar. Sería un gran avance poder rellenar esos campos automáticamente con los datos contenidos en un registro de una BD. ¿Es posible esto? Alguien sabe cómo se hace o existe documentación al respecto?

Un saludo,
Manuel Aranda

-------------------------------------------------
FWH 2.8 Octubre/2006
User avatar
Manuel Aranda
 
Posts: 602
Joined: Wed Oct 19, 2005 8:20 pm
Location: España

Postby sjingo » Sat Nov 11, 2006 6:08 pm

Hola Manuel

No sé exactamente cómo funciona el activeX PDF, pero te puedo dar una pista que espero te funcione.

Como sabes al crear el PDF con campos editables se crea un archivo similar de extensión FDF (Forms Data Format) qe es el que guarda los nombres de los campos y su contenido. Entonces el truco está en acceder a este archivo con funciones de bajo nivel y modificar sus datos. Y eso sería todo.

A continuación te muestro el código que hace esto pero en PHP (lo encontré en Internet), con el que te puedes guiar, pasarlo a Harbour y probar:



<?php
// -----------------------------------------------------------------------------------------------
// Class: PHP2PDF
// Subject: Incrustar varibles de PHP en formularios PDF
// Mail: arturo@pinrel.com
// Version: 1.0
// Update: 2004-01-20
// -----------------------------------------------------------------------------------------------

class PHP2PDF
{
var $matriz;

function Push ($campo, $valor)
{
$this->matriz[$campo]=$valor;
}

function Make ($FicheroPDF, $FicheroFDF)
{
$buscar = array('\\', '(', ')');
$reemplazar = array('\\\\', '\(', '\)');
$fdf = "%FDF-1.2\n%‚„œ”\n1 0 obj \n<< /FDF << /Fields [\n";
foreach ($this->matriz as $campo => $valor)
{
$campo_bueno = str_replace($buscar, $reemplazar, $campo);
$valor_bueno = str_replace($buscar, $reemplazar, $valor);
$fdf .= "<< /V ($valor_bueno)/T ($campo_bueno) >> \n";
}
$fdf .= "]\n/F ($FicheroPDF) >> >>\nendobj\ntrailer\n<<\n/Root 1 0 R \n\n>>\n%%EOF";
// Genera el Fichero de Intercambio de datos FDF
$f_out=fopen($FicheroFDF,"w");
fputs($f_out, $fdf);
fclose($f_out);
// Salta al fichero PDF
header("Location:$FicheroPDF");
}
} // Fin de la Clase
?>


Espero que te sirva el dato . También me interesa el tema.
Suerte y un Saludo


Marcelo Jingo
Last edited by sjingo on Sat Nov 11, 2006 6:46 pm, edited 3 times in total.
User avatar
sjingo
 
Posts: 229
Joined: Sat Mar 18, 2006 3:42 pm
Location: Ibarra-Ecuador

Postby Manuel Aranda » Sat Nov 11, 2006 6:17 pm

Gracias, sjingo

Ya es algo por donde empezar. Me pongo manos a la obra y ya contaré.

Un saludo,
Manuel
User avatar
Manuel Aranda
 
Posts: 602
Joined: Wed Oct 19, 2005 8:20 pm
Location: España

Postby Manuel Aranda » Sun Nov 12, 2006 9:00 pm

Bueno, por si a alguno de Vds. le interesa: He conseguido, ¡¡¡¡ por fín !!! fusionar un fichero PDF con un registro de la base de datos. Es tan simple como enviar a un fichero XML los datos de que se trate. El fichero XML tiene que tener el mismo nombre que el fichero PDF y contener los mismos nombres de campos que el fichero PDF. Después se ejecuta con WinExec el ejecutable de Acrobat seguido del fichero XML, y se produce la magia.

Así que tenemos PRUEBA.PDF
PRUEBA.XML

Code: Select all  Expand view
Local cFicheroXML:= 'C:\MAR\pdf\Prueba.pdf"
Local cLugarAcrobat:="C:\Archivos de programa\Adobe\Acrobat 7.0\Reader\AcroRd32.exe"
Winexec(cLugarAcrobat+" "+cFicheroXML) 


El fichero XML queda como sigue
Code: Select all  Expand view
<?xml version='1.0' encoding='ISO-8859-1' ?>
<xfdf xmlns='http://ns.adobe.com/xfdf/' xml:space='preserve'>
<fields>
<field name='nif'>
<value> 23787664Y</value>
</field>
<field name='_'>
<value>H</value>
</field>
<field name='apellido1'>
<value>JIMENEZ         </value>
</field>
<field name='apellido2'>
<value>GONZALEZ       </value>
</field>
<field name='nombre'>
<value>ANTONIO MANUEL      </value>
</field>
<field name='provincia'>
<value>GRANADA        </value>
</field>
<field name='telefono'>
<value>958824464</value>
</field>
</fields>
<f href='C:\MAR\pdf\Prueba.pdf'/>
</xfdf>


Eso sí, lo que no he conseguido es ejecutarlo desde ACTIVEX y que no reconoce la extensión XML. Si se lanza con el fichero PDF no recoge los datos del XML.

Un saludo,
Manuel Aranda
User avatar
Manuel Aranda
 
Posts: 602
Joined: Wed Oct 19, 2005 8:20 pm
Location: España

Postby Patricio Avalos Aguirre » Mon Nov 13, 2006 12:32 pm

Hola Manuel

Se ve interesante

Podrias colocar un ejemplo pequeño funcional para poder mejor entender

Saludos
Patricio
User avatar
Patricio Avalos Aguirre
 
Posts: 1059
Joined: Fri Oct 07, 2005 1:56 pm
Location: La Serena, Chile

RE:

Postby thefull » Thu Nov 16, 2006 11:10 am

Creo que esto esta mal;
Local cFicheroXML:= 'C:\MAR\pdf\Prueba.pdf"

Deberia ser .XML , no ?

Por cierto, me gustaria saber como consigues crear un PDF con campos editables....
Saludos
Rafa Carmona ( rafa.thefullARROBAgmail.com___quitalineas__)
User avatar
thefull
 
Posts: 729
Joined: Fri Oct 07, 2005 7:42 am
Location: Barcelona

Re: RE:

Postby Manuel Aranda » Thu Nov 16, 2006 12:53 pm

thefull wrote:Creo que esto esta mal;
Local cFicheroXML:= 'C:\MAR\pdf\Prueba.pdf"

Deberia ser .XML , no ?

Por cierto, me gustaria saber como consigues crear un PDF con campos editables....


Efectivamente, está mal, debe ser .XML.

Siento no poder ayudarte en cuanto a crear un PDF con campos editables, pues no lo sé. Hasta ahora lo que he hecho ha sido editar ficheros PDF ya creados con el Adobe Acrobat y cambiarles el nombre de los campos para que coincidan con los campos del fichero .XML

Un saludo,
Manuel
User avatar
Manuel Aranda
 
Posts: 602
Joined: Wed Oct 19, 2005 8:20 pm
Location: España

Re: RE:

Postby thefull » Thu Nov 16, 2006 3:20 pm

Manuel Aranda wrote:
thefull wrote:Creo que esto esta mal;
Local cFicheroXML:= 'C:\MAR\pdf\Prueba.pdf"

Deberia ser .XML , no ?

Por cierto, me gustaria saber como consigues crear un PDF con campos editables....


Efectivamente, está mal, debe ser .XML.

Siento no poder ayudarte en cuanto a crear un PDF con campos editables, pues no lo sé. Hasta ahora lo que he hecho ha sido editar ficheros PDF ya creados con el Adobe Acrobat y cambiarles el nombre de los campos para que coincidan con los campos del fichero .XML

Un saludo,
Manuel

Ostras Manuel!!!
¿ Entonces que sentido tiene esto si no se puede crear uno un propio PDF ;-) ? Quizas usar uno ya creado ...? Seria de utilidad poder experimentar más sobre ello. ¿ puedes enviarme por mail para poder experimentar ? Gracias
Saludos
Rafa Carmona ( rafa.thefullARROBAgmail.com___quitalineas__)
User avatar
thefull
 
Posts: 729
Joined: Fri Oct 07, 2005 7:42 am
Location: Barcelona

Re: RE:

Postby thefull » Thu Nov 16, 2006 4:18 pm

Por cierto Manuel, ¿ y si en vez de XML la extension le pones .XFDF ? Ahi quizás si que te funcione....
Saludos
Rafa Carmona ( rafa.thefullARROBAgmail.com___quitalineas__)
User avatar
thefull
 
Posts: 729
Joined: Fri Oct 07, 2005 7:42 am
Location: Barcelona

Postby José Luis Sánchez » Fri Nov 17, 2006 7:01 am

Hola:
Para crear PDF con campos editables necesitas la versión más completa del Adobe Acrobat, creo que es la edición profesional.

Manuel, estaría bien que publicaras un ejemplo de lo que haces.

Saludos,
User avatar
José Luis Sánchez
 
Posts: 539
Joined: Thu Oct 13, 2005 9:23 am
Location: Novelda - Alicante - España

Postby Manuel Aranda » Fri Nov 17, 2006 1:39 pm

En primer lugar, Acrobat Reader solo sirve para visualizar ficheros PDF. Si quieres modificarlos y/o editar campos necesitas Adobe Acrobat, con la herramienta Form se crean/modifican los campos.
El ejemplo es tan sencillo como esto:
Code: Select all  Expand view
Local cFicheroXML:= "nomina.xml"
Local cLugarAcrobat:="C:\Archivos de programa\Adobe\Acrobat 7.0\Reader\AcroRd32.exe"
Winexec(cLugarAcrobat+" "+cFicheroXML) 


Aquí teneis los ficheros:
http://hyperupload.com/download/029aaf6 ... a.pdf.html
http://hyperupload.com/download/02339bd ... a.xml.html

Saludos,
Manuel
User avatar
Manuel Aranda
 
Posts: 602
Joined: Wed Oct 19, 2005 8:20 pm
Location: España

Re: RE:

Postby Manuel Aranda » Sat Nov 18, 2006 12:45 pm

thefull wrote:Por cierto Manuel, ¿ y si en vez de XML la extension le pones .XFDF ? Ahi quizás si que te funcione....


Desde ACTIVEX no funciona ni con .XML y con .XFDF., solo con .PDF. Al menos hasta donde mis modestos conocimientos llegan.
Aquí adjunto un nuevo ejemplo más completo de un PDF bajado de la web de la DGT.
http://hyperupload.com/download/028d829 ... o.pdf.html
http://hyperupload.com/download/0245249 ... o.xml.html

Un saludo,
Manuel
User avatar
Manuel Aranda
 
Posts: 602
Joined: Wed Oct 19, 2005 8:20 pm
Location: España

Forma PDF - Llenar los campos con datos almacenados en DBF -

Postby George » Fri Mar 16, 2007 8:53 pm

Manuel,

Pudiste resolver como llenar los campos de una forma PDF con datos almacenados en un fichero DBF?

IF Yes
msginfo ("Podrias postear un ejemplo?")
ELSE
msginfo("Cual fue tu experiencia en este proyecto?"
ENDIF

Saludos

George
George
 
Posts: 724
Joined: Tue Oct 18, 2005 6:49 pm

Re: Forma PDF - Llenar los campos con datos almacenados en D

Postby Manuel Aranda » Sun Mar 18, 2007 5:25 pm

Claro que lo resolví y en los dos mensajes anteriores tienes los ejemplos.
Saludos,
Manuel

George wrote:Manuel,

Pudiste resolver como llenar los campos de una forma PDF con datos almacenados en un fichero DBF?

IF Yes
msginfo ("Podrias postear un ejemplo?")
ELSE
msginfo("Cual fue tu experiencia en este proyecto?"
ENDIF

Saludos

George
User avatar
Manuel Aranda
 
Posts: 602
Joined: Wed Oct 19, 2005 8:20 pm
Location: España

Postby George » Sun Mar 18, 2007 5:45 pm

Manuel,

La razon por la que te pregunte es porque al tratar de bajar los ejemplos dice "file not available".

Si fueras tan amable de subirlo de nuevo

Saludos


George
George
 
Posts: 724
Joined: Tue Oct 18, 2005 6:49 pm

Next

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 83 guests