Pregunta

¿Es posible combinar datos FDF con un archivo PDF utilizando PHP solo? ¿O hay otra opción que utilizar una herramienta de línea de comandos tercera parte para lograr esto?

Si ese es el caso momento alguien me puede en la dirección de uno?

Actualmente estoy haciendo salir el archivo FDF al navegador con la esperanza de que volverá a dirigir al usuario al llenado en PDF, pero para algunas personas que no es el caso. El contenido FDF hay salida a la pantalla, a pesar de que estoy usando header ( 'Content-type: application / vnd.fdf');

¿Fue útil?

Solución

Para referencia futura, parece que no hay una forma fiable de hacerlo sin una aplicación de 3 ª parte. Pdftk ( http://www.accesspdf.com/pdftk/ ) terminó siendo mi solución.

Me generó por primera vez el archivo FDF como antes, y luego se fusionaron en mi archivo PDF utilizando el siguiente código PHP

header('Content-type: application/pdf');
header('Content-Disposition: attachment; filename="Download.pdf"');
passthru("pdftk file.pdf fill_form data.fdf output - ");
exit;

Era mucho más fácil de lo que pensaba que sería. Esto elimina al instante la necesidad de cortar alrededor de las cabeceras y las extensiones de archivo para asegurar que todos los navegadores manejan un FDF adecuadamente, ya que simplemente hace que el navegador descarga el archivo PDF.

Si desea que el archivo PDF de salida a ya no ser editable, el uso

    passthru("pdftk file.pdf fill_form data.fdf output - flatten");

Disculpas si esto es lo básico, sólo pensé que había puesto todo en un solo lugar para que la gente no va a través del dolor de cabeza que he sufrido.

N.B. Si la variable PATH no está establecido, tendrá que utilizar la ruta completa a pdftk es decir.

    passthru("/usr/local/bin/pdftk file.pdf fill_form data.fdf output - flatten");

Otros consejos

Hay otra manera de día que no utiliza ni tránsito pdftk pero sólo un script hecho en 2004, pero sigue trabajando así: forge_fdf

que le ayuda a construir un FDF que puede incoporate straithly en su pdf, esto significa que usted

Guardar esto en un archivo PHP, digamos generatePdf.php

require_once('forge_fdf.php');  

// leave this blank if we're associating the FDF w/ the PDF via URL
$pdf_form_url= "";


// default data; these two arrays must ultimately list all of the fields
// you desire to alter, even if you just want to set the 'hidden' flag;
//
//
$fdf_data_names= array(); // none of these in this example
$fdf_data_strings= array(); // none of these in this example

$fdf_data_strings['email']=mb_strtolower($row_delivreur['firstname']).'.'.mb_strtolower($row_delivreur['lastname']).'@gmail.com';

$fields_hidden= array();
$fields_readonly= array();

// set this to retry the previous state
$retry_b= false;

header( 'content-type: application/vnd.fdf' );

echo forge_fdf( $pdf_form_url,
        $fdf_data_strings, 
        $fdf_data_names,
        $fields_hidden,
        $fields_readonly );

Hacer un enlace a Pathtoyourpdf / nameofpdffile.pdf # FDF = generatePdf.php se abrirá el archivo PDF en el navegador (o bien hay una manera de guardarlo en el disco creo que recuerdo) y el correo electrónico de campo se llenará de datos de MySQL: mb_strtolower($row_delivreur['firstname']).'.'.mb_strtolower($row_delivreur['lastname']).'@gmail.com'

Funciona con casillas de verificación, botón de radio, ... Abre bien en Firefox, que tiene que ser probado con otros navegadores.

Más infos en PDF HACKS

, con mucho, la forma más fácil que he encontrado para instalar pdftk en CentOS:

Instalar rpmforge repo - http://wiki.centos.org/AdditionalResources/ repositorios / RPMForge # cabeza 5aabf02717d5b6b12d47edbc5811404998926a1b

entonces

yum install pdftk

y eso es todo!

http://www.setasign.de / productos / pdf-php-solutions / FPDI / demos / concatenar-falsificación /

Estos trabajos, las clases de descarga están vinculados a partir de la página web también,

No requiere de tránsito comando / exec y no hay extensiones adicionales.

Editado decir, esto no funciona con las nuevas versiones pdf 1.5+, revertidas a PDFTK, más incómoda, pero funciona con todos los archivos PDF utilizando el comando 'exec'.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top