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

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

Add a comment

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite / PostgreSQL
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparait.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

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