Utilisation de FPDF
Bonjour à vous,
sur un site développé perso, j'utilise FPDF pour généré à la volée des PDFs et tout se passe bien.
La librairie est installée à la racine du répertoire ( comme conseillé sur leur site ) accompagnée de son dossier fonts et du script PHP qui me génère mon PDF de cette sorte:
Et pour cette avant dernière phase, je galère ... c'est pourquoi je voulais savoir si quelqu'un a déjà utilisé cette librairie avec notre bête à Plume, et comment il s'en est sorti.
Dois-je mettre FPDF dans mon plugin ?
créer un autre plugin spécifique à FPDF ? ( ça serait mieux, peut-on appeler un plugin dans un plugin ? )
mettre FPDF à la racine du site ?
y-a-t-il des choses particulière à faire avec cette nouvelle class ?
Il faudrait que FPDF se génère indépendamment de PluXml, enfin je crois, comment s'y prendre ?
Est-ce que FPDF est la bonne solution ?
Que de questions ... Merci de votre aide.
Cordialement,
_____
D.San
sur un site développé perso, j'utilise FPDF pour généré à la volée des PDFs et tout se passe bien.
La librairie est installée à la racine du répertoire ( comme conseillé sur leur site ) accompagnée de son dossier fonts et du script PHP qui me génère mon PDF de cette sorte:
<?php
require('fpdf.php');
// récupération de mes données, exemple:
$civilite = $_SESSION['civilite'];
$prenom = $_SESSION['prenom'];
$nom = $_SESSION['nom'];
$etc = $_SESSION['etc'];
// création de mon layout
class pdf extends FPDF {
function Titre() { // Titre
$this->SetXY(15,92);
$this->SetFont('Arial','B',14);
$this->Cell(183,5,'Mon titre',0,1,'C');
$this->SetFont('Arial','',10);
}
}
$pdf = new pdf();
$pdf->AddPage();
etc ...
?>
Je développement actuellement un plugin spécifique qui doit générer au final un PDF.Et pour cette avant dernière phase, je galère ... c'est pourquoi je voulais savoir si quelqu'un a déjà utilisé cette librairie avec notre bête à Plume, et comment il s'en est sorti.
Dois-je mettre FPDF dans mon plugin ?
créer un autre plugin spécifique à FPDF ? ( ça serait mieux, peut-on appeler un plugin dans un plugin ? )
mettre FPDF à la racine du site ?
y-a-t-il des choses particulière à faire avec cette nouvelle class ?
Il faudrait que FPDF se génère indépendamment de PluXml, enfin je crois, comment s'y prendre ?
Est-ce que FPDF est la bonne solution ?
Que de questions ... Merci de votre aide.
Cordialement,
_____
D.San
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Et en ajoutant tout simplement au début du fichier de ton plugin la ligne suivante, ça n'irait pas ?
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
merci pour ta réponse.
j'ai réussi un peu à avancer en mettant le tout à la racine et en utilisant un lien "/mon-pdf.php",
ça marche à part un pb de session qui disparaît ... m'enfin, je verrai ça plus tard.
Le pb de cette méthode est que je ne peux inclure la librairie dans mon plugin.
Je ne vois pas le type de lien je dois mettre à part http://mon-domaine.com/plugins/mon-plugin/mon-pdf.php ?
je ne sais pas si ça marche mais c'est pas très propre ...
Il y a aussi le pb de ce dossier font appelé par fpdf.php,
va falloir que je creuse encore pour trouver quelle valeur modifier pour qu'il aille le chercher au bon endroit.
M'enfin, j'en peux plus, près d'une semaine de dév' pour ce plugin et lundi faut que je commence son intégration sur le site du client. Vais y aller comme un bourrin et je m'y replongerai après !
En attendant, vais faire une pause, samedi soir, 19h, une binouse m'appelle !
On verra si les bulles vont me permettre d'y voir plus clair
soit le dossier de ton plugin: /plugins/monplugin
créer dedans un dossier fpdf
dans ce dossier copie le contenu du zip de fpdf
tu devrais avoir un truc du genre
/plugins/monplugin/fpdf/fpdf.php
/plugins/monplugin/fpdf/font/
au debut du fichier php de ton plugin (monplugin.php) ajoute la ligne
tiens moi au jus (j'ai pas testé)
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
en plaçant FPDF dans le fichier du plugin ( sans créer de sous dossier FPDF, mais ça doit aussi marcher ),
et en appelant mon script de cette manière: ça marche!
mais j'ai apparemment un changement d'encodage alors que lorsqu'il est à la racine, j'ai pas de souci.
ça tient à rien, c'est pas grave, ça me le génère quand même.
J'me débrouillerai avec du décode/encode.
Est-ce que ça pose problème d'avoir ce type de lien ? ( on rend visible l'architecture des dossiers ... )
J'aurai préféré rester sur un truc du type:
http:/mon-domaine.com/index.php?mode
Mon plugin insère un script dans une page de plume.
Ce script inclut ensuite d'autres script selon certains paramètres envoyés en $_POST.
Forcément, si je fais j'ai déjà des lignes présentes avant mon-pdf.php et ça ne marche pas.
Comment faire en sorte que cet script appelé soit autonome/indépendant ?
Il faudrait recommencer depuis la fonction header(); en gros ...
C'est possible de tout détruire et faire commencer mon-pdf.php par cette fonction ?
Pour mon problème de session qui se détruit entre temps,
j'avais oublié tout bonnement le la bière m'a effectivement éclaircit les idées !
ça s'améliore, me manquera pus que son envoi en pièce jointe d'email !
Merci pour tout.
Est-ce que tu peux nous en dire plus sur ce que tu veux imprimer et les informations que tu récupères?
tout est good, enfin ... presque
la dernière version ( 1.7 ) de FPDF ne supporte pas l'UTF8,
j'applique donc la fonction utf8_decode(); sur les variables et ça passe.
Les variables sont dans une SESSION, donc facile à reprendre.
Il n'y a pas de fichier config ... juste fpdf.php et le layout que tu crées toi-même
à moins que j'ai râté quelque chose ...
Demain je teste comment importer dans le PDF les données enregistrées dans le fichier parameters.xml du plugin ( titre de la page, image, etc ... ).
Comme FPDF tourne de manière autonome, enfin j'ai l'impression,
je ne pourrais pas utiliser de méthode propre à PluXml du type J'ai vu qu'on peut créer d'autres class, mais là ça me dépasse.
Faudrait limite que je parse de nouveau le fichier parameters.xml du plugin ..?
Dans le pire des cas,
je prépare dans l'article sous PluXml un champ caché comportant ces paramètres dans un array();,
et j'envoi le tout en $_POST ...
ça c'est si je dois rendre l'ensemble paramétrable, sinon je le fais personnellement en dur
Pour l'utilité de ce plugin, ben c'est un truc particulier pour un client.
Ceci dit mes différentes recherches pourrait trouver des applications plus large.
Si quelqu'un a déjà utilisé cet utilitaire avec PluXml ...
Cordialement,
_____
D.San
en incorporant et adaptant la fonction loadParams() juste avant mon layaout, ça marche :cool:
Le titre du PDF renseigné dans la page config du plugin s'incorpore bien dans le PDF généré yahou !
Merci Stéphane ! :cool:
sur ce, chui pas couché, j'suis r'lancé là !
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
Vu que tu as pas mal avancé, je ne sais pas si du coup ma remarque te sera utile. Peut-être pour d'autres projets ?
@Jerry: mon choix s'est porté sur FPDF car la doc est en français.
A l'époque j'avais généré mon 1er PDF le temps de boire un café, alors bon... pourquoi chercher ailleurs ?
Que veux-tu dire par "plus facilement intégrable" ?
Sinon, le résultat est peut-être bien, mais c'est long ...
le temps de lire fpdf.php,
de parser et importer les paramètres du plugin,
d'importer les variables de la session,
et faire tourner les fonctions,
j'espère que ça ira plus vite en ligne !
Je sais qu'il arrive en pièce jointe d'email avant de s'afficher dans le navigateur ...
Auquel cas, je pourrais au moins simplifier le parsage en préparant un autre fichier xml dès l'enregistrement de la config du plugin et utiliser simpleXml ?
ça serait plus rapide comme ça qu'utiliser la méthode loadParams() ?
Cordialement,
_____
D.San
Bien sûr si tu peux l'optimiser à fond ce n'est que mieux. Mais je ne pense pas que tu gagneras beaucoup.
Fais attention aussi, si le document a beaucoup de pages de modifier le php.ini du serveur de prod.
Voici les prérequis pour tcfdf (qui sont les mêmes que pour fpdf, sauf pour ce qui concerne le fichier de config) extraits de la doc : Et voici ce qui est dit dans la faq de fdpf :
Il ne s'agit ici que d'une seule page avec un peu de texte et un logo, pas lourd.
Je connaissais les infos concernant fpdf, les relire confirme ma réflexion:
Comme j'affiche le PDF dans le navigateur ET l'envoie en pièce jointe d'un email.
Je crois que je ne vais garder que la seconde soluce qui est plus rapide.
L'internaute l'aura de cette manière déjà sur son ordi, pas besoin de l'enregistrer etc.
Et puis c'est bien pour une entreprise d'être dans la boite mails des internautes,
c'est moins volatile que l'historique web ! :P
Ce soir je teste l'optimisation de tout ça et posterai le résultat.
Merci.
Cordialement,
_____
D.San
Je ne sais pas si on peut descendre en dessous ...
ça reste acceptable :P
Il est tout à fait possible d'utiliser FPDF avec PluXml.
1/ Nous pouvons utiliser les paramètres générés par l'écran de config du plugin ( utile pour personnaliser le PDF, par exemple son titre, l'URL du logo, etc ... )
2/ Nous pouvons utiliser les variables du fichier LANG ( pour les zones fixes, exemple "Date", "Toute l'équipe vous remercie", etc ... )
Voili voilou !
Cordialement,
_____
D.San
de 2 pages, avec images, en récupérant/formatant des données venant d'une session, du fichier lang, du fichier parameters, et autres,
la création se fait à la manière de PluXml: quasi instantanée je kiffe.
( ça me chagrinait cette histoire de 3sec. )
Manque l'envoi en pièce jointe et c'est good.
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
attends de voir le truc