SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano | Nederlands

290 Plugins, 198 contribs sur SPIP-Zone, 62 visiteurs en ce moment

Accueil > Rédaction > Imprimer et PDF > Archives Imprimer > Articles SPIP au format PDF avec support des liens

Articles SPIP au format PDF avec support des liens

18 janvier 2006 – par Aquinatus – 37 commentaires

2 votes

Ceci est une ARCHIVE, peut-être périmée. Vérifiez bien les compatibilités !

Gérer correctement les liens dans les PDF générés grâce à FPDF. Tous les types de liens sont supportés (liens externes, lien internes, notes).

Cette contribution est basée sur celle de Fabrice et Jérôme Fenal (2 octobre 2005) : http://www.spip-contrib.net/Articles-SPIP-au-format-PDF

Elle a pour objet de gérer correctement les liens dans les PDF générés. Tous les types de liens sont pris en charge, à savoir :

-  Lien externe : par exemple un site Web ou une adresse courriel.
Exemple : [SPIP-http://www.spip.net/]

-  Liens internes de note (note dans le texte vers le bas de page, et note de bas de page vers le texte).

-  Lien interne vers un article de votre site. Ces liens sont transformés en lien externe avec la syntaxe suivante :

http://votre nom de domaine/article.php3?id_article=identifiant de l'article

J’ai essayé d’inclure dans un article de test (en local, avec EasyPHP) tous les raccourcis typographiques SPIP possibles. Voici, à titre de démonstration, le fichier pdf correspondant :

Démo

Attention : Pour générer les liens de note, je n’ai pas trouvé d’autre solution que d’effectuer deux itérations dans le parsing de l’article. Attendez-vous donc à ce que la génération d’un PDF prenne deux fois plus de temps qu’avec les contributions précédentes.



Installation

Vous trouverez en pièce-jointe (PDFAvecLiens.zip), les fichiers nécessaires à la génération des articles au format PDF :

-  Copiez article_pdf.php3 à la racine de votre site SPIP.

-  Copiez le fichier mes _fonctions.php3 à la racine de votre site SPIP. Attention, si le fichier mes_fonctions.php3 existe déjà, recopiez le code contenu dans notre fichier mes_fonctions.php3 entre les balises ?php et ? dans votre fichier mes_fonctions.php3.

-  Copiez le répertoire pdf dans le répertoire de SPIP contenant vos squelettes ou à la racine de SPIP si vos squelettes se trouvent... à la racine de SPIP.

-  Créez un dossier nommé : _article_PDF dans le répertoire IMG et de lui attribuer les permissions à 777 (comme vous l’aviez fait lors de l’installation de SPIP pour le répertoire IMG par exemple).

-  Faites un lien dans votre squelette article.html vers article_pdf.php3. Mon lien ressemble à ceci :

<a href="article_pdf.php3?id_article=#ID_ARTICLE">
<img src="#DOSSIER_SQUELETTE/images/pdf.gif"/>
Télécharger</a>

Evidemment, dans mon répertoire de squelettes, j’ai un sous-répertoire nommé images contenant un image pdf.gif.

-  Dans article_pdf.html, mettez des valeurs correctes pour les variables $path_pdf (chemin du répertoire où seront sauvés les fichiers pdf), $class_path (emplacement des classes PHP servant à générer les pdf) et $site_logo_path (chemin vers le logo de votre site, si vous en avez un).

-  N’oubliez pas d’activer l’extension PHP php_gd2 sur votre serveur, si ce n’est déjà fait.

-  Dans le répertoire Code SPIP Demo, vous trouverez aussi le code SPIP ayant servi à générer le PDF de démo. Vous pouvez le réutiliser en local pour vos tests (attention aux numéros des images dans le texte SPIP, qui ne seront probablement pas les mêmes chez vous, par exemple : img07|left).

Explications


Parsing des liens

Le point d’entrée pour construire le PDF se trouve dans article_pdf.html. Il s’agit de Build :

$pdf-Buid($file_out) ;

Build est défini dans la classe PDF du fichier lib_pdf_global.php. On fait deux itérations par des PDF_SPIP::BuildDocument() et ce n’est qu’à la fin qu’on enregistre le document en appelant FPDF::Output().

PDF_SPIP::BuildDocument() appelle PDF_SPIP::GenerateText() qui appelle plusieurs fois PDF::WriteHTML. C’est dans cette dernière méthode que l’on détecte la présence de liens (’HREF’ est positionné à true) et que l’on fait la distinction entre les différents types de liens évoqués au début de ce document.

Les notes de bas de page nécessitent deux itérations. Pourquoi ? Parce que lorsque vous rencontrez le raccourci typographique de note (format SPIP : 2 crochets ouvrants et 2 crochets fermants), vous devez créer deux liens dans la page html générée (et donc le PDF basé sur la page) : celui dans le texte et celui en bas de page. Or, lors du parsing, vous ne connaissez pas l’emplacement de ce dernier lien de bas de page, puisque vous n’avez pas fini de parcourir le texte. On utilise deux tableaux BottomLinkIDArray et TopLinkIDArray pour sauver les identifiants de liens. A la première itération, on ajoute un lien bidon. A la seconde itération, on met un vrai lien en allant chercher son identifiant dans les tableaux.


Modèle de PDF

C’est la classe PDF_SPIP, définie dans le fichier lib_pdf_spip.php qui détermine l’aspect de la page de garde ainsi que les en-têtes et pieds de page. Mon modèle est une version légèrement modifiée du modèle d’origine :

L’entête est simplement constituée du titre.

En haut, on reprend le logo du site auquel on accole son nom et son URL. Attention : dans ce modèle, on ignore les logos de la rubrique et de l’article.

Au centre, le surtitre, le titre et le chemin des rubriques.

Plus bas, les dates de mise en ligne et parution.

En bas, le descriptif suivi d’une notice de copyright.

Le pied de page est constitué d’un copyright avec le nom du site et du numéro de la page sur le nombre total de page.

Problèmes avec Internet Explorer

Dans article_pdf.php3 ont été définis deux modes : Release et Debug.

Le mode Debug force la regénération du fichier pdf, quelque soit la date du fichier préexistant. Il affiche également le pdf directement dans le navigateur. Ce navigateur doit être Firefox. En effet, l’affichage direct semble poser problème sous IE6 (même SP2) : au lieu de lancer l’affichage du contenu du pdf, il affiche un dump du fichier !
Le mode Release, lui fonctionne sous IE (SP2) et Firefox. Il produit une boîte de dialogue demandant à l’internaute s’il souhaite lancer un lecteur de PDF externe ou sauver le pdf sur son disque. Le pdf n’est recréé que si la date de mise à jour dépasse celle du fichier pdf préexistant (ou si aucun fichier pdf n’existe, bien sûr).


Ce qu’il reste à faire

(pour les perfectionnistes...)

-  Habillage correct des images avec le texte et les placer correctement sur la page (à gauche, à droite, ou centrée)

-  Gestion étendue des tableaux : permettre l’insertion de liens (ignorés pour le moment) et d’images (placées à l’extérieur du tableau pour le moment) à l’intérieur d’une cellule de tableau.

-  Quand on insère une ancre dans le texte, créer dans le pdf un lien qui pointe directement vers cette ancre, sans passer par un lien HTTP externe.

-  Prendre en compte les citations, pour le moment ignorées.

-  Afficher une puce différente par niveau de hiérarchie en cas de puces imbriquées.

-  Afficher correctement du code informatique. Actuellement, la première ligne est ignorée.

-  Refactoring du code (par exemple, ne garder qu’une classe ou deux classes parmi les trois classes PDF, FPDF et PDF_SPIP)

Archive génération PDF avec liens

Dernière modification de cette page le 11 février 2007

Retour en haut de la page

Tout afficher

Vos commentaires

  • Le 7 septembre 2007 à 07:12, par ? En réponse à : Articles SPIP au format PDF avec support des liens

    tres bonne contrib
    j’ai cependant un chti probleme,
    tout fonctionne sauf pour « Date de mise en ligne : vendredi 24 aot 2007 »,
    comme vous pouvez le constater pour le mois d’août le « û » est mangé,le mode choisi est utf-8, j’ai essayé avec les iso, mais dans ces cas c’est tout le reste du pdf qui apparait mal

    Pouvez vous me donner la solution pour faire apparaitre la date en chiffre du type 24/08/2007 ou encore mieux avec le « û » ?

    Encore bravo pour ce code et d’une maniere generale pour cet open-source !!!!
    Indepedenza !!

    Répondre à ce message

  • Le 20 décembre 2006 à 04:35, par Bigfoot_ En réponse à : Articles SPIP au format PDF avec support des liens

    Merci pour cette merveilleuse contrib.
    J’ai un problème :
    FPDF error : GIF parser : unable to open file IMG/siteon0.gif

    alors que j’Ai placé :
    $path_pdf = « /IMG/_article_PDF/ » ;
    $class_path = $GLOBALS[’dossier_squelettes’] . « #DOSSIER_SQUELETTE/pdf/ » ;
    $site_logo_path = $GLOBALS[’dossier_squelettes’] . « IMG/(#LOGO_SITE_SPIP » ;

    une idée ?

    • Le 3 juillet 2007 à 15:24, par fleg En réponse à : Articles SPIP au format PDF avec support des liens

      Par rapport a l’ erreur FPDF error : GIF parser : unable to open file j’ai eu le meme probleme. Ca venait du passage a php5. En effet, dans la librairie gif.php il y a un certain nombre d’ appels de fonction avec une initialisation de variable dans l’ appel : ex :$this->m_img->load($this->m_lpData, $imgLen = 0) Or, ces fonctions doivent retourner une valeur de ce parametre en sortie (passage par reference). En php4, il semble que l’ affectation de la variable se fasse AVANT l’ appel de la fonction alors qu’ en php5 elle se fait APRES... conclusion, $imgLen est remise a zero. Qui plus est, ces affectations dans l’ appel sont inutiles car les fonctions appellees font deja l’ initialisation.

      Il suffit donc de supprimer l’ affectation dans l’ appel. Ca revient a modifier comme suit le fichier gif.php :

      612c614
      <                               if(!$this->skipExt($data, $len)) {
      ---
      >  
                                 if(!$this->skipExt($data, $len = 0)) {
      620c622
      <                               if(!$this->m_gih->load($data, $len)) {
      ---
      >
                                   if(!$this->m_gih->load($data, $len = 0)) {
      627c629
      <                               if(!($this->m_data = $this->m_lzw->deCompress($data, $len))) {
      ---
      >                               if(!($this->m_data = $this->m_lzw->deCompress($data, $len = 0))) {

      778c780
      <               if(!$this->m_gfh->load($this->m_lpData, $len)) {
      ---
      >               if(!$this->m_gfh->load($this->m_lpData, $len = 0)) {

      784c786
      <                       if(!$this->m_img->load($this->m_lpData, $imgLen)) {
      ---
      >                       if(!$this->m_img->load($this->m_lpData, $imgLen = 0)) {

      806c808
      <               if(!$gfh->load($data, $len)) {
      ---
      >               if(!$gfh->load($data, $len = 0)) {

    Répondre à ce message

  • Le 8 avril 2007 à 20:22, par corentin garrault En réponse à : Articles SPIP au format PDF avec support des liens

    Bonjour à toutes et à tous,

    Je n’arrive pas à faire fonctionner le plugin. Si quelqu’un pouvait m’aider ?

    Je suis sous SPIP 1.9.1, avec GD2 activée.
    Le plugin est installé dans MON_SITE/plugin/article_pdf_1_9
    Il est reconnu et activé sous SPIP
    J’ai placé la balise : #ARTICLE_PDF dans le fichier squelette article.htm
    Je vois sur mon site en visite dans les articles le logo cliquable du pdf...
    Je clique et je reviens à ma page d’acceuil !
    Je précise que le dossier sous /IMG/article_pdf est en 777...

    OS COURT !

    Répondre à ce message

  • Le 9 mars 2007 à 14:56, par Sylvain En réponse à : Articles SPIP au format PDF avec support des liens

    Bonjour,

    j’utilise cette contrib pour générer les pdf et je trouve cela trés bien. En revanche je rencontre un probleme avec les carractères accentués ou spéciaux.

    J’utilise SPIP 1.9.1 avec codage UTF-8 .

    J’ai tenté de remplacer la contrib par le plugin, mais là c’est page blanche ... En même temps le plugin semble etre conçu pour la 1.9 donc je peux comprendre. Peut-être y a t-il quelques modifs à apporter mais cela n’est pas dans mes comptétences.

    En tous cas merci aux nombreux contributeurs bénévoles et salariés qui démocratisent l’informatique.

    Répondre à ce message

  • Le 12 décembre 2006 à 08:50, par Marcel BOLLA En réponse à : Articles SPIP au format PDF avec support des liens

    Bonjour,
    J’ai plusieurs questions et interrogations :
    -  dans ’votre’ classe PDF vous faites référence aux fonctions SetCopyright et ResetBuffer qui ne figurent pas dans la classe ’originale’ située sur www.fpdf.org. Pourquoi ne pas les mettre dans la classe dérivée ?
    -  pourquoi la variable $this->PDFVersion est initialisée à 1.3 alors que c’est la version 1.53 ?
    -  dans « article_pdf.html », vous appelez $pdf->debug = $debug ; avant d’instancier la classe par $pdf = new PDF_SPIP() ; et de plus la variable $debug n’existe dans aucune classe ? Est-ce normal ?

    L’utilisation (en local, désolé pour l’exemple) me génère bien un pdf, mais à l’ouverture, Acrobat (7.0) affiche une fenêtre d’erreur avec la message « Le nouveau format de ce fichier n’est pas pris en charge par ......... » puis affiche les pages 1 et 2. Par contre Acrobat (5.0) n’affiche pas la page 1 ( Zoom 1600% !!!!) et la page 2 est incomplète.

    Est-ce que j’ai mélangé des librairies ?

    Help !

    Cordialement,

    Répondre à ce message

  • Le 10 septembre 2006 à 01:41, par tony En réponse à : Probleme avec les intertitres

    Les intertitres dans mes articles, h2 ou h3, ne sont pas pris en compte lors de la generation PDF.

    Je suis allé dans le code du fichier lib_pdf_global.php au niveau des fonctions ’open_tag’ et ’clos_tag’ où tout semble pourtant normal.
    Quelque chose m’échappe...
    Quelqu’un a-t-il déjà eu ce problème ?
    Merci d’avance

    PS : j’ai modifié la mise en page du document généré (plus de page de garde, nom du site & hierarchie dans l’entete, titre de l’article en haut de page).
    Si cela peut intéresser quelqu’un contactez-moi, je vous la ferais parvenir.
    Pour la voir >>> ici

    • Le 10 septembre 2006 à 01:47, par tony En réponse à : Probleme avec les intertitres

      desole pour le lien precedent... (??)

      Voici le bon >>>

    • Le 11 septembre 2006 à 03:56, par tony En réponse à : Probleme avec les intertitres

      Problème inexistant lorsque le plugin « barre typo enrichie » est desinstallé.
      De là à ce qu’il y’ait un lien... ;-)

    • Le 15 septembre 2006 à 10:40, par Pierre Lo Cicero En réponse à : Probleme avec les intertitres

      Je serais intéresser par la suppression de la page de garde

      Merci

      Pierre Lo Cicero

    • Le 2 octobre 2006 à 12:53, par tony En réponse à : Probleme avec les intertitres

      Désolé pour le retard...
      Voici le code modifié du fichier ’lib_pdf_spip.php’ (squelette/pdf) pour enlever la page de garde (et quelques modifs de formattage... voir le lien precedent) :

      <?

      /**
      * class PDF_SPIP extends PDF :
      */


      class PDF_SPIP extends PDF
      {


      // haut, gauche,  bas, droite
      function SetAllMargins($TopMargin, $LeftMargin, $BottomMargin, $RightMargin)
      {
              // gauche, haut, droite
              $this->SetMargins($LeftMargin,$TopMargin,$RightMargin);
             
              // bas
              $this->SetAutoPageBreak(auto, $BottomMargin*3/2);
      }


      function Header()
      {
              global $site, $titre, $yahoo, $conf_url_site;
             
              $this->SetY($this->tMargin/2);
              $this->SetLineWidth(0.3);
              $this->Line($this->lMargin - 3, $this->tMargin, $this->w - $this->rMargin + 3, $this->tMargin);
             
              //Extrait du site xxx
              $this->SetFont('times','',12);
              $this->SetTextColor(0,0,0);

              $this->Cell(0,$this->tMargin/2, "Extrait du site  ' ".$site." '",0,0,'L',0,$conf_url_site );
                     
              //hierarchie
              $this->SetFont('times','',9);
              $this->SetTextColor(0,0,0);
              $this->SetX($this->w-$this->rMargin*2-5);
              $this->Cell(0,$this->tMargin/2, $yahoo." >> ".$titre,0,0,'R',0 );


             
              // $this->tMargin = marge du haut, définie dans FPDF
              $this->Ln(9);
      }


      /* /// Pied de page du document)
      /* ///////////////////////////// */
      function Footer()
      {
              global $conf_nom_site , $conf_url_site  ;
             
              $this->SetY(-$this->bMargin/2);       
              $this->SetLineWidth(0.3);
              $this->Line($this->lMargin - 3, $this->GetY(), $this->w - $this->rMargin + 3, $this->GetY());
             
             
              //Police helvetica 8       
              $this->SetFont('helvetica','I',8);
              $this->SetTextColor(0,0,0);

              // Copyright
              $this->Cell(0,6,"Copyright © ".$conf_nom_site ,0,0,'L',0,$conf_url_site );
             
              //Numéro de page
              $this->SetX($this->w-$this->rMargin*2-5);
              $this ->Cell(0,6,'Page '.$this->PageNo().'/{nb}', 0, 1, 'C');
      }

      function GenerateTitlePage()
      {
              global $site, $rubrique, $yahoo, $surtitre, $titre, $soustitre;
              global $logo_site, $auteur, $descriptif;
              global $copyright;
              global $conf_url_site;
              global $DateParution,$DateMiseEnLigne;
             
             
              // En-tête
              if (file_exists($logo_site))
              {
                      $this->Image($logo_site,$this->rMargin+3,$this->tMargin+2,20,20);
              }
             
              $this->SetFont('times','',12);
              $this->SetXY($this->rMargin+10,$this->tMargin+6);
              $this->MultiCell(0,5,"Extrait du site  ' ".$site." '");

             
              $this->SetXY($this->rMargin+130,$this->tMargin+6);
              $this->PutLink($conf_url_site,$conf_url_site);
             
             
             
              //Surtitre (type du document)
              $this->unhtmlentities($surtitre);
              $this->SetXY(20,92);
              $this->SetFont('courier','B',14);
              $this->MultiCell(170,6,$surtitre,0,'C',0);
             
             
              //Titre centré
              $this->SetXY(20,100);
              $this->SetFont('helvetica','B',32);
              $this->unhtmlentities($titre);
              $this->MultiCell(170,20,$titre,0,'C',0);
             
             
              // Rubriques
              $this->Ln(2);
              $this->SetFont('helvetica','',8);
              $this->MultiCell(0,5,$yahoo,0,'C',0);
             
             
              //Dates
              $this->SetFont('times','',10);
             
              if ($DateMiseEnLigne)
              {
                      $this->SetXY(110,184);
                      $this->unhtmlentities($DateMiseEnLigne);
                      $this->MultiCell(0,6,"Date de mise en ligne : $DateMiseEnLigne",0,'L',0);
              }
             
              if ($DateParution)
              {
                      $this->SetXY(110,190);
                      $this->unhtmlentities($DateParution);
                      $this->MultiCell(0,6,"Date de parution : $DateParution",0,'L',0);
              }


              // Descriptif        
              if ($descriptif)
              {
                     
                      $this->SetFont('helvetica','B',10) ;
                      $this->SetXY($this->rMargin+5,220);
                      $this->SetFont('helvetica', 'BU', 10);
                      $this->Write(5, 'Description :');
                      $this->Ln();
                      $this->SetFont('times', '', 8);
                      $this->WriteHTML($descriptif,5) ;
              }
             
              if ($copyright)
              {
                      $this->SetXY(45,250);
                      $this->SetFont('times', 'B', 10);
                      $this->MultiCell(120,8,$copyright,'TB','C',0);
              }
      }

      function GenerateText()
      {
              global $titre, $texte, $chapo, $ps, $notes ;
                     
                      //Titre centré
              $this->SetXY(20,20);
              $this->SetFont('helvetica','B',22);
              $this->unhtmlentities($titre);
              $this->MultiCell(170,20,$titre,0,'C',0);

                     
              $this->SetFont('helvetica');
              if ($chapo)
              {
                      // Chapeau
                      $this->SetFont('times','B',13);
                      $this->WriteHTML($chapo,5);
                      $this->Ln(12);
              }
             
              //Texte - justifie
                        $this->SetFont('helvetica','',10);
                      $this->WriteHTML($texte,5);
                      $this->Ln(12);
              if ($ps)
              {
                      //ps
                      $this->SetFont('','I',8);
                      $this->WriteHTML("Post-scriptum : ",4);
                      $this->WriteHTML($ps,4);
                      $this->Ln(8);
              }
              if ($notes) {
                      //notes
                      $this->SetFont('','',8);
                      $this->WriteHTML($notes,3);
                      $this->Ln();
              }
      }

      function BuildDocument()
      {
              /*$this->AddPage();
              $this->GenerateTitlePage(); <-- page de garde */
              $this->AddPage();
              $this->GenerateText();
             
              // On repasse en police à la bonne taille pour le nombre de pages.
              $this->SetFont('helvetica','I',8);
              $this->AliasNbPages();
      }
      //
      }

      ?>

      Voili voilou

    • Le 8 décembre 2006 à 10:42, par mistero En réponse à : Probleme avec les intertitres

      Y a t’il une solution existante pour ce problème d’inter-titres ?

    Répondre à ce message

  • Le 4 juillet 2006 à 17:49, par Philippe En réponse à : Articles SPIP au format PDF >>> V 1.9

    Bonjour,

    Excellent travail pour les version antérieures à la 1.9, mais vu les chamboulement de cette dernières version serait-il possible d’envisager une mise à jour de cette contrib (si un peu de temps ce qui n’est pas toujours facile...).

    Merci quand même pour ce beau boulot ;-)

    • Le 5 juillet 2006 à 12:08, par L’instit En réponse à : Articles SPIP au format PDF >>> V 1.9

      C’est fait, le plugin existe pour la 1.9

    • Le 7 juillet 2006 à 21:37, par bob En réponse à : Articles SPIP au format PDF >>> V 1.9

      elle se trouve ou ? .. Merci pr tt !

    • Le 10 juillet 2006 à 16:52, par Pierro En réponse à : Articles SPIP au format PDF >>> V 1.9

      ici :

      http://zone.spip.org/files/spip-zone/

      Télécharge plugins.zip, il y a plusieurs plugins dont celui qui t’interesse (je connais pas d’adresse où télécharger le plugin seul).

      Par contre j’ai essayer de l’utiliser, mais je n’y suis pas parvenu... j’ai eu des erreurs faisant réference a des .php3. Mais mon spip 1.9, il a plus de .php3... j’ai du me planter, mais où ...?

    • Le 19 juillet 2006 à 14:58, par fredbref En réponse à : Articles SPIP au format PDF >>> V 1.9

      ça marche pas... l’activation du plug in a pour effet... la venue d’une superbe page blanche sur la page d’accueil du site, les autres pages, au mieux, s’affichent partiellement...

      le plug in n’est donc pas prêt pour la 1.9, dommage...

    • Le 5 novembre 2006 à 12:14, par aurelboiss En réponse à : Articles SPIP au format PDF >>> V 1.9

      Salut, j’ai exactement le même problème que toi une fois le plug in activé, j’ai que des pages blanches ce qui m’a un peu apeuré :( par ce que je voyais ou plutôt ce que je ne voyais plus. C’est dommage mais je vais garder l’ancien méthode qui consisté à tout installer à la main mais mon problème n’est toujours pas résolu car fpdf ne prend pas en compte l’utf-8.

      A+

    • Le 6 décembre 2006 à 17:37, par Cyril En réponse à : Articles SPIP au format PDF >>> V 1.9

      Salut,

      Il semblerait que tu aies un conflit avec mes_fonctions ; dans mon cas le plugin est devenu fonctionnel après que j’aie supprimé toute référence au pdf dans la précédente versions de mes_fonctions. En effet, mes_fonctions et mes_options sont maintenant inclues avace le plugin.

      A+
      Cyril

    Répondre à ce message

  • Le 25 juillet 2006 à 12:23, par fcdi En réponse à : Articles SPIP au format PDF avec support des liens

    je suis sur la 1.9 et je voudrais vous feliciter pour ce plugin car il marche super

    j’aurais une question est til possible d’associer l’envoi d’un mail au plugin pdf

    c’est a dire generer le pdf pour qu’il l’envoi par mail

    ou bien faire un mailto du pdf ?

    encore bravo et merci

    Répondre à ce message

  • Le 5 juin 2006 à 10:06, par Mist. GraphX En réponse à : Articles SPIP au format PDF avec support des liens

    Bonjour,

    j’essaye d’integrer le logo de l’article dans la génération de mon pdf, mais sans succès j’ai bien déclaré une variable $logo_article= « (#LOGO_ARTICLE|pdf_first_clean) » ; dans mon fichier _article_pdf mais j’obtient toujours une erreur de squelette sur ma page. quand c’est une image intégrée a l’article ça passe. Est ce un probleme due a la génération des LOgo par GD() ?? quelqu’un as-t’il essayé d’inclure ce type de fonction et pourrais m’éclairé un peut ;-)

    merci pour la contrib en tous cas et les réponsses si il y en a.

    Répondre à ce message

  • Le 21 mars 2006 à 01:19, par François Schreuer En réponse à : Problème de charset

    Bonsoir,

    Je viens de tester votre contrib et je la trouve pas mal du tout. J’ai toutefois un problème de taille : l’utf-8 dans lequel mon site est encodé n’est pas reconnu, les pdf générés sont remplis de signes cabalistiques à la place des caractères accentués et autres caractères spéciaux.

    Par ailleurs, j’aurais vraiment besoin de pouvoir gérer des citations dans mon texte. Avez-vous prévu d’ajouter le support du raccourci <quote> dans un avenir proche ?

    Un grand merci

    François

    PS : Est-ce que ça ne voudrait pas le peine de mettre ce code sur la zone (éventuellement sous forme de plugin pour faciliter l’installation par les utilisateurs ?) pour permettre son amélioration collective. C’est vraiment quelque chose d’essentiel pour SPIP que de disposer d’une fonctionnalité de génération de pdf.

    • Le 21 mars 2006 à 01:41, par François Schreuer En réponse à : Quelques idées en vrac,... (il faut faire un plugin de cette contrib)

      Encore moi. L’idée de mettre le truc en plugin est vraiment intéressante, parce qu’elle permettrait en plus de gérer un panneau de config, dans lequel on pourrait notamment :

      -  Définir la présente du copyright ou pas (c’est franchement pas nécessaire dans tous les cas).

      -  Définir la présence d’une page de garde ou d’un simple titre. En LaTeX, on dispose de différents modes (livre, article, etc). Est-ce qu’il serait possible de faire quelque chose de ce genre ?

      -  Choisir la police de caractères utilisées. SPIP permet depuis la version 1.9 de gérer un dossier de polices personnelles (pour le filtre image_typo). Ca pourrait être intéressant de brancher la contrib sur ce répertoire aussi.

      -  Vider le cache. Par exemple après avoir modifié une option.

      Si c’est utile, je veux bien donner un coup de main pour tout ça (même si je ne connais pas grand chose à pdf) ; j’ai un usage immédiat du truc (un site sur lequel les étudiants de ma fac encodent leurs notes de cours pour les partager ; il est évidemment hyper utile de pouvoir disposer de ces fichiers dans un format imprimable de bonne qualité).

      Par ailleurs, j’ai encore une série de remarques/demandes, que je me permets de noter ici :

      -  Les semi-cadratins semblent ignorés par votre contrib, on se retrouve avec des &mdash;.

      -  Est-ce qu’il est possible de personnaliser les styles. J’aimerais par exemple avoir du texte en mode justified, définir l’alignement de mes intertitres, ce genre de choses,...

      -  J’aimerais pouvoir concaténer tous les articles d’une même rubrique dans un même fichier pdf (pour générer un syllabus pour chaque cours, en reprenant simplement tous les articles qui composent ce cours). Possible avec votre contrib ?

      Un grand merci pour votre travail et, j’espère, pour vos réponses à mes nombreuses questions :)

      François

    • Le 21 mars 2006 à 08:56, par Pierre_31 En réponse à : Problème de charset

      Cela tient sûrement à l’encodage des polices voir ici : http://www.fpdf.org/fr/tutorial/tuto7.htm

      Les polices sont encodées apparemment par défaut en cp1252, pour la 1.9 il faudrait de l’UTF-8.

      Mais je n’ai pas encore testé...

      En tout cas c’est une excellente contrib. Merci à l’auteur.

    • Le 8 avril 2006 à 23:41, par Aquinatus En réponse à : Quelques idées en vrac,... (il faut faire un plugin de cette contrib)

      Merci pour ces commentaires et remerciements.

      L’intégration de cette contrib n’est pas de mon ressort, mais des auteurs SPIP. A eux de voir si elle peut faire l’objet d’un « plug-in ».

      Par ailleurs, j’aurais vraiment besoin de pouvoir gérer des citations dans mon texte. Avez-vous prévu d’ajouter le support du raccourci ’quote’ dans un avenir proche ?

      Non, je ne l’ai pas prévu. En fait, ça peut être résolu en introduisant un style (voir plus bas).

      Les semi-cadratins semblent ignorés par votre contrib, on se retrouve avec des —.

      Rajoutez ce caractère dans la fonction « 
      pdf_first_clean($texte) » du fichier « mes_fonctions.php3 » (voir le tableau « $trans »)

      Est-ce qu’il est possible de personnaliser les styles. J’aimerais par exemple avoir du texte en mode justified, définir l’alignement de mes intertitres, ce genre de choses,...

      Oui, dans le principe, c’est faisable ; mais je n’ai pas prévu de le faire. Avis aux amateurs qui ont le temps pour ça ! Ca nécessite d’enrichir pas mal la logique de l’appli...

      J’aimerais pouvoir concaténer tous les articles d’une même rubrique dans un même fichier pdf (pour générer un syllabus pour chaque cours, en reprenant simplement tous les articles qui composent ce cours). Possible avec votre contrib ?

      Je n’ai pas prévu de le faire non plus, mais ça me semble plus simple que le point précédent. Dans le fichier « article_pdf.html », il faut faire une boucle permettant de concaténer les différents éléments des articles à transformer en PDF :

      [$surtitre=« (#SURTITRE|pdf_first_clean) » ;]

      [$titre=« (#TITRE|supprimer_numero|pdf_first_clean) » ;]

      [$soustitre=« (#SOUSTITRE|pdf_first_clean) » ;]

      [$chapo=« (#CHAPO|pdf_first_clean) » ;]

      [$descriptif=« (#DESCRIPTIF|pdf_first_clean) » ;]

      [$texte= « (#TEXTE|pdf_first_clean) » ;]

      [$ps=« (#PS|pdf_first_clean) » ;]

      [$notes=« (#NOTES|pdf_first_clean) » ;]

      J’espère vous avoir donné des pistes utiles.

      Cordialement,

    Répondre à ce message

Répondre à cet article

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Ajouter un document

Retour en haut de la page

Ça discute par ici

  • Convertir un site SPIP 3 en utf-8 avec le plugin Grenier

    8 janvier 2014 – 23 commentaires

    SPIP 3 fonctionne nativement avec l’encodage universel unicode utf-8. Sur certains sites (par exemple sur une mise à jour), on peut avoir un site qui est resté en iso-latin ce qui n’est pas conseillé (source de bugs, d’incompatibilité, ...) . (...)

  • ScolaSPIP 4

    19 janvier 2016 – 360 commentaires

    ScolaSPIP est plugin-squelette responsive personnalisable pour sites Web d’établissements scolaires basé sur SPIPr Présentation de ScolaSPIP Ce plugin pour SPIP 3 est développé par la Dane de l’académie de Versailles pour les webmestres de cette (...)

  • SPIP 3.2, Agenda et FullCalendar

    6 juin – 10 commentaires

    Nous avions publié un article sur la manière d’utiliser FullCalendar avec SPIP 3.0 afin d’afficher des évènements sous forme d’Agenda. La version de FullCalendar a changé avec SPIP 3.2. Le présent article est donc un tutoriel adapté à SPIP 3.2. Pour (...)

  • Mailsubscribers

    16 janvier 2013 – 408 commentaires

    Ce plugin permet de gérer les inscriptions (ou abonnements) à la diffusion de contenu par email. Mailsubscribers permet de gérer les inscriptions par Opt-in simple ou double et la désinscription par URL. Ce plugin gère également plusieurs listes de (...)

  • Nouvelle version - Modération de modifications

    29 janvier 2012 – 49 commentaires

    Suite à une migration depuis SPIP-Agora, j’ai développé ce plugin permettant de reprendre la fonctionnalité « Nouvelle version » inexistente sur SPIP2 ni sur SPIP3 Ce plugin permet d’étendre le work-flow de -rédaction-publication d’un article au cas d’un (...)