Question

Est-il possible de fusionner des données avec un fichier FDF PDF en utilisant PHP seul? Ou est-il pas d'autre choix que d'utiliser un outil 3ème ligne de commande du parti pour y parvenir?

Si tel est le cas quelqu'un peut me diriger dans la direction d'un?

Je suis actuellement le fichier délivrer en sortie FDF au navigateur dans l'espoir qu'il va rediriger l'utilisateur vers le rempli au format PDF, mais pour certaines personnes qui ne sont pas le cas. Le contenu FDF émis vers l'écran, même si je me sers en-tête ( 'Content-Type: application / vnd.fdf');

Était-ce utile?

La solution

Pour référence ultérieure, il semble que il n'y a pas un moyen fiable de le faire sans une application 3ème partie. Pdftk ( http://www.accesspdf.com/pdftk/ ) a fini par être ma solution.

J'ai d'abord généré comme avant le fichier FDF, puis il a fusionné dans mon fichier PDF en utilisant le code PHP suivant

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

Il était beaucoup plus facile que je pensais que ce serait. Ceci élimine instantanément la nécessité de pirater autour avec les en-têtes et les extensions de fichiers pour assurer tous les navigateurs gèrent un FDF correctement, car il est tout simplement le navigateur télécharger le fichier PDF.

Si vous voulez que le fichier de sortie PDF pour ne plus être modifiable, utilisez

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

Toutes mes excuses si ce sont des choses de base, juste pensé que je mettrais tout en un seul endroit afin que les gens ne passent pas par le mal de tête que je supportais.

N.B.. Si votre variable PATH est pas définie, vous aurez besoin d'utiliser le chemin complet PDFTK i.e..

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

Autres conseils

Il y a une autre façon de jour que de ne pas utiliser ni pdftk passthru mais juste un script fait en 2004, mais en travaillant bien: forge_fdf

il vous aide à construire une fdf que vous pouvez incoporate straithly dans votre pdf, cela signifie que vous

Enregistrer ceci dans un fichier php, disons 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 );

Faire un lien vers Pathtoyourpdf / nameofpdffile.pdf # = FDF generatePdf.php va ouvrir votre fichier PDF dans le navigateur (il y a encore un moyen de l'enregistrer sur le disque je pense que je me souviens) et l'e-mail de champ sera rempli de données de MYSQL: mb_strtolower($row_delivreur['firstname']).'.'.mb_strtolower($row_delivreur['lastname']).'@gmail.com'

Il fonctionne avec des cases à cocher, bouton radio, ... Il ouvre bien dans Firefox, il doit être testé avec d'autres navigateurs.

Plus d'infos sur PDF HACKS

de loin la meilleure façon que je l'ai trouvé pour installer pdftk sur CentOS:

Installer repo RPMForge - http://wiki.centos.org/AdditionalResources/ référentiels / RPMForge # tête-5aabf02717d5b6b12d47edbc5811404998926a1b

puis

yum install pdftk

et thats it!

http://www.setasign.de / produits / pdf-php-solutions / FPDI / démos / concatenate-faux /

Cela fonctionne, les classes téléchargement sont liées à partir du site Web aussi,

Il ne nécessite aucune commande passthru / exec et pas d'extensions supplémentaires.

Sous la direction de dire, cela ne fonctionne pas avec les nouvelles versions de pdf 1.5+, revenu à PDFTK, mais Checklist fonctionne avec tous les pdfs en utilisant la commande « exec ».

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top