ACTIVEX PDF y fusión de datos

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

ACTIVEX PDF y fusión de datos

Post by Manuel Aranda »

Con ACTIVEX PDF logro visualizar por pantalla un formulario PDF con campos editables para rellenar. Sería un gran avance poder rellenar _ 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
sjingo
Posts: 229
Joined: Sat Mar 18, 2006 3:42 pm
Location: Ibarra-Ecuador

Post by sjingo »

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 _ 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
Manuel Aranda
Posts: 561
Joined: Wed Oct 19, 2005 8:20 pm
Location: España

Post by Manuel Aranda »

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: 561
Joined: Wed Oct 19, 2005 8:20 pm
Location: España

Post by Manuel Aranda »

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

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

<?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
Patricio Avalos Aguirre
Posts: 1028
Joined: Fri Oct 07, 2005 1:56 pm
Location: La Serena, Chile
Contact:

Post by Patricio Avalos Aguirre »

Hola Manuel

Se ve interesante

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

Saludos
Patricio
User avatar
thefull
Posts: 720
Joined: Fri Oct 07, 2005 7:42 am
Location: Barcelona
Contact:

RE:

Post by thefull »

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
Manuel Aranda
Posts: 561
Joined: Wed Oct 19, 2005 8:20 pm
Location: España

Re: RE:

Post by Manuel Aranda »

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 _ para que coincidan con _ del fichero .XML

Un saludo,
Manuel
User avatar
thefull
Posts: 720
Joined: Fri Oct 07, 2005 7:42 am
Location: Barcelona
Contact:

Re: RE:

Post by thefull »

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 _ para que coincidan con _ 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: 720
Joined: Fri Oct 07, 2005 7:42 am
Location: Barcelona
Contact:

Re: RE:

Post by thefull »

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
José Luis Sánchez
Posts: 484
Joined: Thu Oct 13, 2005 9:23 am
Location: Novelda - Alicante - España
Contact:

Post by José Luis Sánchez »

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
Manuel Aranda
Posts: 561
Joined: Wed Oct 19, 2005 8:20 pm
Location: España

Post by Manuel Aranda »

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 _.
El ejemplo es tan sencillo como esto:

Code: Select all

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: 561
Joined: Wed Oct 19, 2005 8:20 pm
Location: España

Re: RE:

Post by Manuel Aranda »

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
George
Posts: 710
Joined: Tue Oct 18, 2005 6:49 pm

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

Post by George »

Manuel,

Pudiste resolver como llenar _ 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: 561
Joined: Wed Oct 19, 2005 8:20 pm
Location: España

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

Post by Manuel Aranda »

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

Pudiste resolver como llenar _ 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: 710
Joined: Tue Oct 18, 2005 6:49 pm

Post by George »

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
Post Reply