Salut,
Des news de la classe FPDF qui permet de générer des fichier PDF en
PHP. Aujourd'hui la classe a atteint un niveau acceptable en qualité
des fichiers générés. Sur ce deux questions.
(1) INTEGRATION à SPIP
On pourrait l'intégrer à Spip?
D'un côté ça serait super et d'un autre certains utilisateurs n'ont
rien à foutre de pouvoir générer des fichiers PDF de leurs articles.
(2) CREATION DE PDF
Comment intégrer cette classe à Spip?
Dans un squelette sûrement. Donc dans mon squelette je met des trucs
comme ceci: <? FPDF("[(#TEXTE|addslashes)]"); ?>
Dans la logique ça marche mais est-ce que quelqu'un voit ici un
problème de logique???
Merci d'avance.
Plus d'infos: http://www.fpdf.org/
PS: Ci-dessous le mail du créateur de la classe.
à++
-- BohwaZ
@ Dioxyde.org <dioxyde@free.fr> :
Des news de la classe FPDF qui permet de générer des fichier PDF en
PHP. Aujourd'hui la classe a atteint un niveau acceptable en qualité
des fichiers générés. Sur ce deux questions.
Les démos ont l'air pas mal !
(1) INTEGRATION à SPIP
On pourrait l'intégrer à Spip?
D'un côté ça serait super et d'un autre certains utilisateurs n'ont
rien à foutre de pouvoir générer des fichiers PDF de leurs articles.
Non, c'est inutile. En revanche le point ci-dessous est intéressant :
(2) CREATION DE PDF
Comment intégrer cette classe à Spip?
Dans un squelette sûrement. Donc dans mon squelette je met des trucs
comme ceci: <? FPDF("[(#TEXTE|addslashes)]"); ?>
Dans la logique ça marche mais est-ce que quelqu'un voit ici un
problème de logique???
Oui, il y a un problème : ton appel à FPDF sera reproduit à chaque
consultation du fichier PDF ; on perd tout le bénéfice d'un cache, et on
risque des problèmes de performances sur des articles de plusieurs pages.
Il y a ici une piste pour créer un cache de fichier "produit", que j'ai fait
fonctionner avec une image - il suffit d'adapter aux appels à la classe
fpdf.
<Discuter chez rezo.net;
-- Fil
Une piste : créer différentes fonctions dans le fichier mes_fonctions.php3
comme suit :
<?php
require('fpdf.php');
function pdf_ouvrir_article($id_article) {
global $pdf = new FPDF (paramètres au choix...);
$pdf->Open();
// etc : creation de page ? je ne connais pas le fonctionnement exact
return "";
}
function pdf_ajouter_texte($texte) {
global $pdf;
//Times 12
$pdf->SetFont('Times','',12);
//Sortie du texte justifié
$pdf->MultiCell(0,5,$texte);
//Saut de ligne
$this->Ln();
return "";
}
function pdf_envoyer_article($id_article) {
global $pdf;
$fichier = "CACHE/pdf_article$id_article.pdf";
$pdf->Output($fichier);
return "<? header("mime-type du pdf (à compléter)"); readfile('$fichier'); ?>";
}
?>
Maintenant le squelette :
<?php // sert a eviter l'envoi de lignes blanches avant/apres le binaire PDF
$GLOBALS['flag_preserver'] = 1; // ne pas afficher les boutons d'admin
<BOUCLE_Article(id_article)>
[(#ID_ARTICLE|pdf_ouvrir)]
[(#TITRE|pdf_texte)]
[(#TEXTE|pdf_texte)]
[(#ID_ARTICLE|pdf_envoyer)]
?></BOUCLE_article>
?>
<h4>Pas d'article à cette adresse. </h4>
<//B_article>
Non testé, et le code FPDF est repompé directement du tutorial sur le site
Web. En pratique il faudrait faire une fonction différente par style :
pdf_afficher_titre()
pdf_afficher_texte()
pdf_afficher_auteurs()
etc.
a+
Antoine.
Bon j'ai installé FPDF chez moi et fait quelques tests.
Tout d'abord voici une combinaison mes_fonctions/squelette
qui marche plus ou moins.
Ensuite :
- Il faut désactiver le flux compressé dans ecrire/inc_version
pour que le navigateur s'y retrouve
- Explorer me sort une erreur bizarre ("Explorer n'arrive pas
à ouvrir le site Web") après m'avoir demandé si je préférais
ouvrir ou télécharger le fichier. Mozilla affiche le PDF en
plug-in sans problème. Je ne sais pas d'où ça peut venir.
Il y a aussi le traitement des raccourcis SPIP à implémenter....
Exemple :
http://rezo.net/~antoine/spip/article_pdf.php3?id_article=986
mes_fonctions.php3 (889 Bytes)
article_pdf.html (514 Bytes)
J'ai écrit :
- Il faut désactiver le flux compressé dans ecrire/inc_version
pour que le navigateur s'y retrouve
- Explorer me sort une erreur bizarre ("Explorer n'arrive pas
à ouvrir le site Web") après m'avoir demandé si je préférais
ouvrir ou télécharger le fichier. Mozilla affiche le PDF en
plug-in sans problème. Je ne sais pas d'où ça peut venir.
Suis-je bête, il y a une solution beaucoup plus simple et
compatible à tous les coups, c'est de simplement rediriger
le brouteur vers le fichier PDF généré. Ca évite les problèmes
mentionnés ci-dessus, et facilite l'utilisation d'outils
de téléchargement (type Getright).
Voici le mes_fonctions.php3 correspondant. Je vais manger.
mes_fonctions.php3 (661 Bytes)
Salut,
Je viens d'essayer la SPIP-v1-4a9.
Quand j'essaye d'afficher un article existant avec images, j'ai "Pas de
previsualisation" a la place des images dans l'espace public.
Je n'ai pas de problemes sur la 1.4a5.
Dans l'espace prive, j'arrive pas a uploader des images ou des doc (Warning
MySQL) mais c'est peut-etre a cause de mon hebergeur ovh.net qui a
,temporairement, desactive l'upload PHP.
A+
Raphael