Salut à tous,

Vous trouverez ci-dessous, les fichiers nécessaires à la génération des
PDF.
N'oubliez pas de créer un dossier nommé : _article_PDF dans le répertoire
IMG et de lui mettre les permissions à 777.

Ensuite, vous installez les fichiers joints à la racine de ton site SPIP,
si vous utilisez déjà un fichier mes _fonctions, recopiez le code entre les
balises <?php et ?> dans votre fichier mes_fonctions.

Puis, vous faîtes un lien dans votre squelette article.html vers article_pdf.php3
comme ceci :
<a href="article_pdf.php3?id_article=#ID_ARTICLE" target="_blank">Voir au format PDF</a>

Voici un récapitulatif des fonctionnalités ajoutées aux PDF :

Ils se régénérent automatiquement quand tu modifie un article,
alors qu'avec les contrib. proposées tu dois effacer à la main les pdf dans
ton dossier IMG/_article_PDF
à chaque fois que tu modifie un article.
De plus j'ai réglé le problème de titre trop long qui était coupé et donc
qui ne revenait pas à la ligne.

J'ai amélioré la génération de certains caractères spéciaux.
Les logos d'articles apparaissent correctement, par contre il faut que je
règle le problème de liens sur les logos, pour l'instant, j'ai tout
simplement retirer les liens qui finalement ne servent à rien.

Les images insérées dans les articles apparaissent correctement.

J'ajoute que ces fichiers sont compatibles avec la contribution :
Découper un article en page et lui attribuer un sommaire, ainsi les hr
générés n'apparaissent pas dans le pdf.

 

Si vous souhaitez faire apparaître des champs extra :

Pour ce qui est des champs extras,
il faut les déclarer dans le fichier : lib_pdf_spip.php
comme ceci :

ligne 137
remplacer : global $texte, $chapo, $ps, $notes ;
par : global $texte, $chapo, $extra, $ps, $notes ;

ligne 146 environ, ajoutez en dessous de ce code :

//Texte - justifie
$this->SetFont('helvetica','',10);
$this->WriteHTML($texte);
$this->Ln(12);

le code suivant :

if ($extra) {
// extra
$this->SetFont('helvetica','',10);
$this->WriteHTML($extra);
$this->Ln(12);
}

Dans cet exemple, les champs extra apparaitront dans vos pdf sous le texte
de l'article et avant le Post-scriptum de l'article.
vous pouvez donc positionner le code ci-dessous ailleur, avant le texte de
l'article, avant le chapo, après le PS...

et dans article_pdf.html :
ligne 11: insérez en dessous de : $conf_nom_site = "[(#NOM_SITE_SPIP|pdf_first_clean)]" ;

Les champs extras que vous voulez faire apparaitre, ici 2 champs extra (Mission, Competences):

$extra = "Missions : "."[(#EXTRA|Mission|pdf_first_clean)]"."<br>"."Compétences : "."[(#EXTRA|Competences|pdf_first_clean)];


Vous ajoutez ainsi autant de champs extra que vous souhaitez.

Voilà, je crois que je n'ai rien oublié.

Cliquez ici pour télécharger les fichiers

Si vous avez un souci, n'hésitez pas.

Ca permettra de faire une contrib. testée par vous qui pourra être distribuée proprement pour les autres...

@+

Paul Sanches
paul(at)1formatik(dot)com