Générateur de PDF

Code work in progress

Présentation du générateur

Ce document article_pdf_1_9, lequel ne fait la génération que pour un seul article à partir d’un icone à placer dans le squelette des articles.

Ce générateur permet de convertir tous vos articles SPIP en fichier PDF (1 article = 1 fichier pdf) et créer aussi un fichier sommaire.pdf (qui correspond au plan SPIP) qui fait le lien avec les articles générés en PDF.

Installation du générateur

Dans le répertoire de votre site spip
-  Créer le dossier article_PDF dans le dossier /IMG/
-  Placez à la racine de votre site le dossier zip joint après l’avoir dézippé (il s’appellera «pdf»)
-  Lancement du générateur, via votre navigateur avec l’url : urlsite/pdf/

Contenu du dossier «pdf»

fichier / sous-dossiertitredescription
index.php sommaire de la génération indique quelques regles nécessaires au fonctionnement de la génération
pdf.php génération automatique des articles et du sommaire contient le script de génération pdf automatique de tous les articles du site SPIP.

Lorsqu’il y a une erreur (du surement à un fichier pdf existant et pas fermé pendant la generation PDF auto), on affiche chaque erreur dans un tableau avec un bouton qui permet de relancer le script dans une autre fenetre (en cliquant sur le bouton) jusqu’à ce que le fichier soit générer car apres le fichier qui pose probleme disparait de la popup et donc on ne peut que la fermer (on peut aussi le faire avant sans avoir générer le fichier)

pdf_man.php génération manuelle d’un article ou du sommaire contient le script de génération manuelle d’un article (utilisé par le fichier ci-dessus s’il y a eu une erreur lors de la génération)
hjlh d’erreur (apres la ligne 1137 : $f=@fopen($name,’wb’); )

Notas Spip-contrib

Cette contrib, bien que non testée dans des situations diverses, ni aboutie sous la forme de plugin [1], est quand même proposée comme pouvant intéresser certains. Cependant chaque utilisateur doit la tester avant utilisation sur un site de production. En particulier pour le cas d’usage sur un site important (des centaines d’articles, iconographie riche), alors la taille des fichiers générés, et les temps de calcul sur le serveur, sont à vérifier avant. Merci d’avance de faire vos retours d’utilisation via ce forum.
aherdane

Footnotes

[1Si certains sont intéressés par ce chantier qu’ils prennent contact avec l’auteur

updated on 2 October 2019

Discussion

12 discussions

  • 1

    Bonjour à tous,

    j’ai installé ce script, et le principe fonctionne donc c’est cool.

    Cependant, j’utilise Fckeditor pour l’édition des articles (ça aide les rédacteurs) et dans le pdf, tout ce qui est accent, etc... est remplacé par d’étranges symboles, etc..

    Auriez-vous la solution pour remédier à ce problème ?

    • ce sont des caracteres Unicode
      pour pouvoir les remplacer par les vrais caracteres accentués, copie ces caracteres dans la fonction lettre() (1er partie) du fichier pdf.php et met les vrais caracteres dans la 2e partie de cette fonction

    Reply to this message

  • 3

    Bonjour,

    merci et bravo pour cette contrib !

    J’aimerais juste pouvoir modifier un paramètre : exclure de la liste certains articles (un mot clé “exclu”) ou ne choisir au contraire que les articles auxquels un mot clé d’un groupe de mots clés (toujours le même) a été attribué, ou d’une même rubrique au pire. En gros, mon problème revient à générer un pdf avec seulement les 20 (ou plus) articles d’une FAQ.
    Comment modifier le fichier pdf.php pour parvenir à cela ?

    Merci d’avance de vos réponses éclairées,

    cordialement,

    elrik

    • cherche le bloc suivant (ligne 223 à 233) :

      $rq = “SELECT max(id_article) FROM spip_articles”;
      $ex_rq = mysql_query($rq);
      if(!$ex_rq)

      echo “
      Erreur avec l\’id max”;

      else

      $row = mysql_fetch_array($ex_rq);
      $id_max = $row[0];

      rajoute apres ce morceau $id_max = 20;
      cela te limitera jusqu’à 20 boucles while en dessous

      la tu n’auras que les 20 premiers
      pour avoir une fourchette d’articles, il faut modifier $id_max qui est l’article de fin et $i qui est l’article de debut (ligne 240 juste avant le while)

      En ce qui concerne, les mots-clés je ne sais pas et le code que j’ai fais ne le prends pas en compte

      En tout cas, j’espere avoir répondu à tes questions en ce qui concerne le nombre d’articles que tu veux

      Eric

    • Bonjour,

      merci de cette rapide réponse. En fait, cela ne convient pas tout à fait, mais c’est déjà une précision supplémentaire, ce qui me permettra d’avancer vers “ma” solution. Mon problème, c’est que tout est en php, et je ne vois pas trop où ajouter une boucle du type :

      <BOUCLE_groupes_mots(GROUPES_MOTS){id_groupe=xx}>

      qui semble être la clé du problème.

      Je cherche, je cherche... dès que je trouve, je vous en fait part.

      Cordialement,

      elrik

    • Bonjour,

      Tu ne pourras pas ajouter tel quel ta boucle SPIP car comme tu as vu j’ai programmé tout en php en allant chercher directement dans la base de donnée les informations que je voulais.

      Pour faire ce que tu veux, il faudra modifier les requetes SELECT de mon code afin de lier les tables que j’utilise avec celle des mots-cles et/ou des groupes de mots-clés.

      Cordialement,
      Eric

    Reply to this message

Comment on this article

Who are you?
  • [Log in]

To show your avatar with your message, register it first on gravatar.com (free et painless) and don’t forget to indicate your Email addresse here.

Enter your comment here

This form accepts SPIP shortcuts {{bold}} {italic} -*list [text->url] <quote> <code> and HTML code <q> <del> <ins>. To create paragraphs, just leave empty lines.

Add a document

Follow the comments: RSS 2.0 | Atom