Foros del Web » Programando para Internet » PHP »

Trabajar con campos en PDF

Estas en el tema de Trabajar con campos en PDF en el foro de PHP en Foros del Web. Hola amigos; Desde una intranet tengo una página PDF sobre la que he definido ciertos campos (Form Tool) como Nombre, Fecha... con un link "submit" ...
  #1 (permalink)  
Antiguo 19/01/2004, 10:05
 
Fecha de Ingreso: enero-2002
Mensajes: 88
Antigüedad: 22 años, 10 meses
Puntos: 0
Trabajar con campos en PDF

Hola amigos;

Desde una intranet tengo una página PDF sobre la que he definido ciertos campos (Form Tool) como Nombre, Fecha... con un link "submit" a otra página PHP.

Desde la otra página en PHP recojo los valores de estos campos ($Nombre, $Fecha...) y trabajo estupendamente con ellos.

Pregunta:

¿Es posible hacerlo a la inversa? Es decir; yo ahora tengo mis valriables en PHP, ¿las puedo enviar de algún modo a los campos definidos en una página PDF ya creada? ¿Cómo?

Nota: He probado con pagina.pdf?Nombre=PEPE y no funciona.

Gracias por vuestra colaboración.
-ArtuAgui-

Última edición por ArtuAgui; 19/01/2004 a las 10:08
  #2 (permalink)  
Antiguo 19/01/2004, 11:06
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Tal vez te sirva (no lo he probado nunca):

Forms Data Format
http://www.php.net/manual/en/ref.fdf.php

Pero, requiere de la instalación de esas librerias en tu servidor. Y de no se que aplicación que menciona la documentación para crear tus PDF con esas propiedades.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 19/01/2004, 11:53
 
Fecha de Ingreso: enero-2002
Mensajes: 88
Antigüedad: 22 años, 10 meses
Puntos: 0
Gracias, Cluster. Es un poco "menos secillo" de lo que yo esperaba, pero...
Me has abierto el cielo !!!
-ArtuAgui-
  #4 (permalink)  
Antiguo 20/01/2004, 15:29
 
Fecha de Ingreso: enero-2002
Mensajes: 88
Antigüedad: 22 años, 10 meses
Puntos: 0
He aquí mi aportación...

Después de dar varias vueltas, he conseguido hacer una clase para pasar valores de variables en PHP a variables de formularios en PDF.
Quizá haya gente que le interese el tema y quiera enterarse un poco. Así que aquí os dejo mi pequeña contribución a este mundo:

1º. Tenemos un fichero PDF sobre el que hemos definido unos campos (Ej. Nombre y eMail). Sobre el mismo Acrobat, definimos en "Documento -> Definir acción de página -> Agregar... Importar datos del formulario" y le definimos que tome los datos de un fichero "datos.fdf".
De este modo, cuando se abra la página tomará los datos de este fichero.

2º. La página "lanzarPDF.php" meterá los datos deseados en el fichero datos.fdf y abrirá el PDF... y esto es todo.

LanzarPDF.php :
Código:
<?php
include("PHP2PDF.inc");
$p->new PHP2PDF; // Crea la clase
$p->Push("Nombre", "Pepito Pérez");  // Envía la variable Nombre
$p->Push("eMail", "[email protected]"); // Envía la variable eMail
$p->Make("Pagina.pdf", "datos.fdf"); // Esto crea el fichero de datos de intercambio y Lanza la página PDF.
?>
y ahora os dejo mi nueva Clase:

PHP2PDF Class:
Código:
<?php
// -----------------------------------------------------------------------------------------------
// Class:		PHP2PDF
// Subject:	Incrustar varibles de PHP en formularios PDF
// Mail:      [email protected]
// 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 a alguien le sirva...
Un saludo a todos,
-ArtuAgui-
  #5 (permalink)  
Antiguo 20/01/2004, 16:00
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Excelente.

Según veo .. con esa classe que basícamente abre ese archivo externo de datos para el PDF maestro ¿ya no requiere de las librerias FDF que comenté?

PD: usa el botón PHP para colocar código (eso coloreará el código) y subelo a las FAQ's del foro PHP.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #6 (permalink)  
Antiguo 21/01/2004, 17:05
 
Fecha de Ingreso: enero-2002
Mensajes: 88
Antigüedad: 22 años, 10 meses
Puntos: 0
Gracias por la observación, Cluster (la próxima vez utilizaré el botón PHP)
Efectivamente no hace falta ninguna librería y es de muy sencillo manejo.
Quería hacer un ejemplo y colocarlo en Internet para que todos podais ver un ejemplo "práctico", con todos sus ficheros, pero el tiempo me estrangula...

Saludos a todos !
-ArtuAgui-
  #7 (permalink)  
Antiguo 24/05/2005, 04:36
 
Fecha de Ingreso: abril-2005
Mensajes: 3
Antigüedad: 19 años, 6 meses
Puntos: 0
Hola!

Alguien ha conseguido imprimir una página en php a un documento pdf?

Por lo que entiendo de este script, recoge según que variables y las mete en un pdf ya preparado para ello; yo lo que quiero es crear un pdf con el contenido de la página.

Sabéis si es posible?

He probado con el fpdf, pero el tamaño de las celdas y el texto que incluyen a veces no coincide en tamaño y se descuadra :(.

También con el smarty+xml2pdf, pero no me ha convencido :(
  #8 (permalink)  
Antiguo 24/05/2005, 05:57
Avatar de 8461277  
Fecha de Ingreso: diciembre-2002
Ubicación: san juan de los morros
Mensajes: 887
Antigüedad: 21 años, 11 meses
Puntos: 1
artuagui espero que saques tiempo y lo monte en un servidor para ver como funciona, mil felicitaciones
__________________
Miguel Padrón :cool:
  #9 (permalink)  
Antiguo 24/05/2005, 08:24
 
Fecha de Ingreso: enero-2002
Mensajes: 88
Antigüedad: 22 años, 10 meses
Puntos: 0
La verdad es que era un tema que tenía olvidado (perdón a los que lo esperaban); pero ver que el post no está muerto después de un año me va ha hacer esforzarme para lanzar el ejemplo.

Cluster; lo de subirlo a las FAQ's te lo dejo para ti cuando lo complete con el ejemplo (yo soy bastante torpe).
Saludos.
  #10 (permalink)  
Antiguo 24/05/2005, 09:15
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
No sé tu situación .. pero puedes generar un PDF integramente desde PHP usando: FPDF (www.fpdf.org).

La propuesta de ArtuAgui se basa en el concepto de "FDF" .. es decir, creas un formulario (o zonas "editables" por decirlo así) en un PDF "maestro" y vía PHP asignas contenido a esas zonas "editables" .. Tiene sus ventajas: un diseño complejo lo puedes hacer con tu aplicación de tratamiento de PDF y lo que varia que suele ser poco usas PHP para tal fin ..pero tiene sus desventajas (por lo menos originalmente) tienes que generar un archivo.pdf (tu plantilla "maestra") y el .fdf que son los datos "variables" .. Si todo eso lo tienes que enviar por e-mail se ha de enviar los dos archivos (el PDF sólo no sirve .. además que dejas a la otra parte con la "plantilla" hecha).

Un saludo,
  #11 (permalink)  
Antiguo 24/05/2005, 09:23
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Cita:
Iniciado por ArtuAgui
La verdad es que era un tema que tenía olvidado (perdón a los que lo esperaban); pero ver que el post no está muerto después de un año me va ha hacer esforzarme para lanzar el ejemplo.

Cluster; lo de subirlo a las FAQ's te lo dejo para ti cuando lo complete con el ejemplo (yo soy bastante torpe).
Saludos.
Ok,

Un saludo,
  #12 (permalink)  
Antiguo 30/05/2005, 08:30
 
Fecha de Ingreso: enero-2002
Mensajes: 88
Antigüedad: 22 años, 10 meses
Puntos: 0
Siento el retraso, pero he encontrado ciertos problemas al colgarlo de la Web. Os dejo ficheros, ejemplo y documentación en un fichero ZIP de 68 KB que podréis descargar en:
www.pinrel.com/arturo/php2pdf.zip
Agradeceré cualquier comentario...
Un saludo,
-ArtuAgui-
  #13 (permalink)  
Antiguo 24/01/2006, 05:58
Avatar de leopardix
(Desactivado)
 
Fecha de Ingreso: diciembre-2003
Mensajes: 91
Antigüedad: 20 años, 11 meses
Puntos: 0
Pasar Variables a FPDF

Hola. Estoy haciendo una aplicación que genera un PDF a partir de un formulario pero no se cómo pasar variables a FPDF, es algu nuevo para mi.

Código PHP:
<?php

$nombre 
$_GET["nombre"];
$direccion $_GET["direccion"];
$dni $_GET["dni"];
$telefono $_GET["telefono"];

require(
'fpdf.php');

class 
PDF extends FPDF
{
//Cabecera de página
function Header()
{
    
//Logo
    
$this->Image('logo_pb.png',15,44,181);
    
//Arial bold 15
    
$this->SetFont('Arial','B',15);
    
//Movernos a la derecha
    
$this->Cell(70);
    
//Título
    
$this->Cell(50,10,'Travelers Check',1,0,'C');
    
//Salto de línea
    
$this->Ln(20);
}

//Pie de página
function Footer()
{
    
//Posición: a 1,5 cm del final
    
$this->SetY(-15);
    
//Arial italic 8
    
$this->SetFont('Arial','I',8);
    
//Número de página
    
$this->Cell(0,10,'Page '.$this->PageNo().'/{nb}',0,0,'C');
}
}

//Creación del objeto de la clase heredada
$pdf=new PDF();
$pdf->AliasNbPages();
$pdf->AddPage();
$pdf->SetFont('Arial','',10);
$pdf->Cell(8);
$pdf->Cell(50,58,'$nombre');
$pdf->Cell(55);
$pdf->Cell(50,73,'$nombre');
$pdf->Cell(-50);
$pdf->Cell(50,89,'$dni');
$pdf->SetFont('Arial','',8);
$pdf->Cell(-155);
$pdf->Cell(50,74,'$direccion');
$pdf->SetFont('Arial','',8);
$pdf->Cell(-50);
$pdf->Cell(50,89,'$telefono');
$pdf->Output();
?>
  #14 (permalink)  
Antiguo 24/01/2006, 09:15
Avatar de rodo1968  
Fecha de Ingreso: febrero-2005
Ubicación: Lomas del Mirador
Mensajes: 14
Antigüedad: 19 años, 9 meses
Puntos: 0
Oigan!, la información que han enviado en este tema es invaluable!
Miles de gracias!!!!!!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 21:41.