SPIP-Contrib

SPIP-Contrib

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

286 Plugins, 197 contribs sur SPIP-Zone, 215 visiteurs en ce moment

Accueil > Rédaction > Imprimer et PDF > spiPDF > [archive] spiPDF v0.1.0 : des contenus sur mesure en PDF

[archive] spiPDF v0.1.0 : des contenus sur mesure en PDF

9 octobre 2010 – par Yves Tannier – 74 commentaires

18 votes

Une nouvelle version 0.2.0 du plugin spiPDF est disponible

Le plugin spiPDF génère des fichiers au format PDF d’article ou de tout autre élément SPIP, simplement à partir d’un squelette construit au format HTML 4 et facile à modifier.

Présentation

Ce plugin génère des fichiers PDF à partir d’un squelette défini au format HTML 4.

Il vous permet donc de créer un PDF réellement sur mesure sans d’autre compétence que de connaître le HTML 4 et CSS.

Le plugin utilise la classe HTML2PDF (qui elle même utilise grandement TCPDF. Vous pouvez vous rendre sur le site de HTML2PDF pour un aperçu des possibilités (notamment la page des exemples ).

Pré-requis

PHP 5 est requis ! (sérieusement, il y a encore des gens avec PHP4 ?!) pour un fonctionnement optimal. Cependant, vous pouvez télécharger séparément une version plus ancienne de HTML2PDF, compatible avec PHP4 et remplacer le répertoire.

Téléchargement

  • A télécharger sur la zone via SVN
  • Ou téléchargement du ZIP généré automatiquement toutes les heures.
    Zip - 9.3 Mo
    spiPDF v0.1.0

    Le plugin est relativement volumineux parce qu’il intègre un certain nombre de polices de caractères utilisées pour la génération des PDF

Utilisation

Pour utiliser ce plugin, outre son installation des plus classique (téléchargement, installation dans le répertoire plugins/ et activation via l’interface privée), une étape suffit.

Ajoutez un lien hypertexte vers le squelette du plugin, typiquement dans votre squelette article.html. Voici à quoi doit ressembler ce lien pour un article :

  1. [<a href="[(#URL_PAGE{spipdf}
  2. |parametre_url{spipdf,spipdf_article}
  3. |parametre_url{id_article,#ID_ARTICLE}
  4. |parametre_url{nom_fichier,article_#ID_ARTICLE})]">
  5. télécharger l'article au format PDF</a>]

Télécharger

Mise en page personnalisée

C’est tout l’intérêt du plugin : permettre une mise en page personnalisée sans connaître le PHP. Pour obtenir un PDF sur mesure, vous pouvez :

  • soit modifier le squelette qui se trouve dans le répertoire du plugin : spipdf_article.html
  • soir créer votre propre squelette et modifier la balise #URL_PAGE pour qu’elle appelle bien votre squelette à la place de spipdf_article (remplacer spipdf_article par le nom de votre squelette)

Par exemple, vous avez dans votre répertoire squelette, un squelette plan_site_pdf.html que vous souhaitez utilisé pour générer une sortie PDF de votre plan de site.

Il vous suffira d’appeler ce squelette/PDF de la façon suivante :

  1. [<a href="[(#URL_PAGE{spipdf}
  2. |parametre_url{spipdf,plan_site_pdf}
  3. |parametre_url{nom_fichier,plan_site_pdf})]">
  4. télécharger le plan de site au format PDF</a>]

Télécharger

Ce qui donnera l’URL : http://monsite.tld/spip.php?page=spipdf&spipdf=plan_site_pdf.html

Liens vers des articles SPIP dans le PDF

Si vous utilisez des liens internes du type [->art2] dans vos articles,
il est nécessaire d’utiliser le filtre url_abs sur les balises
DESCRIPTIF, CHAPO, TEXTE, PS et NOTES pour que les liens dans votre PDF pointent bien sur votre site.

Nom de fichier personnalisé

Par défaut, les fichiers PDF se nommeront document.pdf.

Si vous souhaitez préciser un nom particulier pour votre fichier, vous devrez préciser, comme dans les exemples ci-dessus, le paramètre nom_fichier dans la balise #URL_PAGE.

Format, orientation des pages et autres subtilités

HTML2PDF, vous permet, via la balise <page> (voir le squelette spipdf_article.html pour l’exemple), de régler :

  • l’orientation : paysage « L », ou portrait « P »
  • le format : A4, A5, Letter
  • les marges

Vous trouverez plus d’informations sur le wiki de la librairie et plus particulièrement sur la section concernant la fameuse balise page

Contraintes et bugs connus

Certaines balises HTML peuvent ne pas être gérées par le plugin

C’est notamment le cas de balises qui ne sont pas gérées par HTML2PDF. Dans ce cas, vous devriez avoir une erreur à la génération du PDF.

2 solutions :

  • le HTML qui pose problème est dans votre squelette ? et bien... trouvez autre chose en attendant mieux (mais signalez-le quand même dans les commentaires)
  • le HTML est généré par SPIP ? Signalez-le dans les commentaires pour une mise à jour du plugin

Note : actuellement testé avec pratiquement tous les raccourcis typographiques, il n’a pas été signalé d’incompatibilité entre les balises HTML générées par SPIP et HTML2PDF [1].

Certaines balises CSS ne sont pas gérées par le plugin

Bien entendu, dans ce cas, l’affichage au format PDF sera différent de l’affichage au format HTML. On notera par exemple que le positionnement float n’est pas géré.

Vous devrez palier à cette contrainte de positionnement en utilisant des tableaux imbriqués (snif !)

Encore une fois, toutes ces contraintes sont explicitées sur le site de HTML2PDF et sur son forum.

Changer l’encodage utilisé pour la génération de PDF

Le plugin génère les PDF en UTF-8. Certaines personnes ont rencontré des problèmes de génération des contenus dans cet encodage.

Pour changer ce comportement, et utiliser ISO-8859-15, vous devez changer la constante suivante dans votre fichier d’options :

  1. define('SPIPDF_CHARSET', 'ISO-8859-15');

Notes

[1Le forum de la librairie vous donnera plus d’informations sur les balises non supportées

Dernière modification de cette page le 16 février 2011

Retour en haut de la page

Tout afficher

Vos commentaires

  • Le 30 novembre 2011 à 12:19, par Alexmacapple En réponse à : [archive] spiPDF v0.1.0 : des contenus sur mesure en PDF

    Merci pour ce plugin. Je devais générer des pdf depuis des champs extra, ce qu’on ne pouvait pas faire avec article PDF. Cette librairie est vraiment superbe, ainsi que la squeletisation de la génération du pdf qui est énorme ! Fonctionne très bien sur la svn stable du jour SPIP 2.1.12 , donc je ne sais pas pourquoi le titre de l’article le place en archive. Un grand merci Yves.

    Répondre à ce message

  • Le 17 novembre 2011 à 11:16, par ? En réponse à : [archive] spiPDF v0.1.0 : des contenus sur mesure en PDF

    Bonjour,

    je suis repassée à la version 1 du plugin, qui me permet d’afficher plus de 20 résultats à une boucle (avec la version 2, j’obtenais malheureusement une page blanche...).
    Tout fonctionne cette fois très bien...

    sauf pour les articles où j’ai intégré une balise type Y-a-t’il un moyen, un hack, quelque chose... pour demander d’ignorer ces balise et de ne pas afficher les jeux (ou mieux de faire en sorte qu’ils s’affichent ?).

    J’imagine que ça serait à rajouter dans spipdf.php. J’ai regardé le code, mais j’ai vite senti mes limites...

    Répondre à ce message

  • Le 10 mai 2011 à 10:52, par audwill En réponse à : [archive] spiPDF v0.1.0 : des contenus sur mesure en PDF

    Bonjour,

    Je suis en train de tester le plugin sur un site en local (mamp, php5, spip 2.1.10). ça marche globalement sur tous les articles, sauf sur un article dans lequel le rédacteur a rentré deux images à la suite dans le champ texte :

    1. <emb349|center>
    2.  
    3. <emb350|center>

    Télécharger

    Dans ce cas le pdf est vide, blanc. Si j’enlève l’une des deux images, le pdf s’affiche bien.

    Répondre à ce message

  • Le 18 février 2011 à 14:43, par yonnel En réponse à : [archive] spiPDF v0.1.0 : des contenus sur mesure en PDF

    Bonjour,

    Avant tout merci pour le plugin qui me permet moi-aussi de résoudre les limitations de article-pdf avec une édition des auteurs.

    Mon problème est le suivant :
    je n’arrive pas à adresser une feuille de style en interne, style. Le programme bloque.

    1. [(#REM) Les styles de spip, il est possible d'utiliser sa propre feuille de style !]
    2. [<link rel="stylesheet" href="(#CHEMIN{spip_style.css}|direction_css)" type="text/css" media="all" />]

    Télécharger

    Idem quand je passe par le style interne à ma feuille d’édition, cela ne marche pas du fait que j’ai des images en référence :

    1. #ColContenu .tabbox ul.nav { padding:0; margin:0; height:25px; background:url(#CHEMIN{images/tabnav_bottom.gif}) repeat-x 0 bottom; width:100%; clear:both; float:none;}

    Avez vous une idée ?
    merci

    • Le 19 février 2011 à 15:51, par Yves Tannier En réponse à : [archive] spiPDF v0.1.0 : des contenus sur mesure en PDF

      Bonjour,

      Comment faites-vous appel à votre feuille de style ?

      Pour les images en background CSS, je n’ai pas testé... Je regarderais ce que ça donne....

      Avez-vous essayé avec la nouvelle version du plugin (voir lien au début de l’article) ?

    • Le 19 février 2011 à 18:07, par kurtz En réponse à : [archive] spiPDF v0.1.0 : des contenus sur mesure en PDF

      Bonjour,

      Mon appel est le suivant : ;

      1. [<link rel="stylesheet" href="(#CHEMIN{css/auteur.css}|direction_css)" type="text/css" media="all" />]

      J’ai bien SQUELETTES/CSS/auteur.css

      j’ai même dupliqué CSS/auteur.css dans lib du plugin pour voir

    • Le 21 février 2011 à 11:36, par YONNEL En réponse à : [archive] spiPDF v0.1.0 : des contenus sur mesure en PDF

      J’ai inspecté le code un peu de mpdf.
      Je ne connais rien à cette librairie et je me sens incapable de debuguer. Mais là ou cela bloque tout c’est à ce niveau de lecture du fichier css :

      dans : function _get_file($path) de mpdf.php, vers la ligne 10214

      Quand on execute : $contents = file_get_contents($path) voila ce que l’on obtient en message d’erreur :

      igne 10216 (_get_file) : http://localhost/smart_afe/trunk/site/squelettes/css/auteur.css
      Warning: file_get_contents(http://localhost/smart_afe/trunk/site/squelettes/css/auteur.css) [function.file-get-contents]: failed to open stream: Une tentative de connexion a échoué car le parti connecté n'a pas répondu convenablement au-delà d'une certaine durée ou une connexion établie a échoué car l'hôte de connexion n'a pas répondu. in K:\xampp\htdocs\smart_afe\trunk\site\plugins\spipdf\lib\mpdf\mpdf.php on line 10219

      Mon fichier est à la bonne adresse !
      De plus il est vide dans cet exemple :

      /* quelques styles en plus */

      Je n’arrive pas à voir pourquoi !

      Merci

    • Le 21 février 2011 à 12:29, par YONNEL En réponse à : [archive] spiPDF v0.1.0 : des contenus sur mesure en PDF

      Je viens de trouver une piste.
      Plusieurs messages sur le net parlent de problèmes quant à l’interprétation en local de
      localhost. Ils proposent de replacer ce terme par 127.0.0.1

      je vais jeter un coup d’oeil sur cela.

    • Le 21 février 2011 à 12:45, par YONNEL En réponse à : [archive] spiPDF v0.1.0 : des contenus sur mesure en PDF

      Encore moi dsl,

      C’était cela.
      Avec localhost tout plante.
      J’ai donc rajouté en ligne 217 de _get_file (mdpf.php) :

             $path=str_replace('localhost','127.0.0.1',$path);

      Désormais, la ligne de code :
      $contents = @file_get_contents($path);
      ne semble plus planter à cause de la feuille de style.

      Manque plus que les images en background qui plantent encore.

    • Le 21 février 2011 à 20:16, par Yves Tannier En réponse à : [archive] spiPDF v0.1.0 : des contenus sur mesure en PDF

      Je pense que vous utilisez la nouvelle version du plugin. je réponds donc sous l’article en rapport avec la version

    Répondre à ce message

  • Le 15 février 2011 à 18:47, par Nicolas Hoizey En réponse à : spiPDF : générer des contenus sur mesure en PDF

    Je voudrais savoir s’il serait possible de prévoir un mode de fonctionnement où le fichier PDF est écrit sur le disque (dans « local/spipdf/nom-du-fichier.pdf » par exemple) en plus d’être envoyé au navigateur.

    En effet, je voudrais générer le PDF, puis l’envoyer avec le Facteur.

    Merci.

    Répondre à ce message

  • Le 8 février 2011 à 23:18, par livier En réponse à : spiPDF : générer des contenus sur mesure en PDF

    Bonjour,

    Merci pour ce plugin et la possibilité de faire notre squelette pour présenter notre contenu à notre façon, ce qui n’étais pas possible avec le plugin Article-PDF. Par contre ce dernier produisait du « vrai » pdf (on pouvait copier du texte à partir d’une sélection de texte) et moins volumineux. Si j’ai bien compris, SpiPDF produit du pdf contenant une image du texte (on ne peux copier que l’image, pas le texte d’une sélection) qui est plus lourde. Idéalement ton plugin produirait du « vrai » pdf aussi ... :-}

    Dans la version actuelle j’ai 2 difficultés :
    Voir le fichier

    • les listes faites il y a longtemps (maladroitement) avec - blabla ... au lieu de -* blabla... apparaissent avec une puce et des espaces excessifs. (et si il faut reprendre tout cela sur tous les articles, ça le fait pas non plus)
    • les notes de bas de page faites avec des liens comme [[Doumbia Bakary [Qualité de la participation de la société civile au Cadre stratégique de lutte contre la pauvreté (CSLP), NEPAD et accords de Cotonou ->http://penserpouragir.org/article.php3?id_article=66] ]](exemple de la 3e note de l’article) apparaissent surchargés.
    • Le 10 février 2011 à 08:45, par Yves Tannier En réponse à : spiPDF : générer des contenus sur mesure en PDF

      Pour les listes à puce, je viens en effet de voir le souci. En attendant tu devrait peut-être utiliser le plugin « couteau suisse » qui intégre le plugin « belles puces » permettant de remplacer les puces graphiques par des ul/li

      Concernant les notes de bas de page. Je vais regarder s’il s’agit d’un problème de style.

      Une nouvelle version est en préparation et devrait sortir la semaine prochaine

    Répondre à ce message

  • Le 21 décembre 2010 à 15:06, par 3n3m4 En réponse à : spiPDF : générer des contenus sur mesure en PDF

    Plugin du tonnerre, mais il faut vraiment trouver un moyen de gérer les images en float ...

    en attendant j’ai décider dans spipdf.php de supprimer toutes les images ... :/

    Vite une solution ...

    Répondre à ce message

  • Le 3 février 2011 à 10:24, par Nicolas Hoizey En réponse à : spiPDF : générer des contenus sur mesure en PDF

    Bravo pour ce plugin qui m’a permis de mettre en place très rapidement la création d’un PDF à la volée !

    Parmi les manques dans le support des CSS, on ne peut pas mettre de background-color pour les <h1>, <h2>, etc....

    • Le 3 février 2011 à 11:46, par Yves Tannier En réponse à : spiPDF : générer des contenus sur mesure en PDF

      Merci Nicolas. Je suis assez dépendant des librairies existantes de génération de PDF n’ayant franchement pas le temps de me pencher plus en avant dessus (et c’est vite touffu comme genre de librairie)

      Par contre, un problème important étant le placement des images, je suis entrain de tester dompdf et mpdf. Ce dernier fonctionne plus que correctement et gère bien les images !

      Je vais donc proposer à l’utilisateur de choisir entre les différentes librairies. Elles ont chacune leurs avantages et leurs inconvénients.

      Je testerais ensuite l’implémentation des background-color sur chacune

    • Le 3 février 2011 à 14:02, par Nicolas Hoizey En réponse à : spiPDF : générer des contenus sur mesure en PDF

      Super, merci pour la réponse !

    Répondre à ce message

  • Le 18 novembre 2010 à 17:06, par freebsnet En réponse à : spiPDF : générer des contenus sur mesure en PDF

    Bonjour,
    Dans la Revision 42379 le à , accent grave n’est pas codé correctement en UTF-8 remplacé par des ?
    de plus lorsqu’il est dans une cellule d’un tableau, ça provoque un débordement du tableau hors de la page du PDF.

    Répondre à ce message

  • Le 24 décembre 2010 à 01:08, par chankalan En réponse à : spiPDF : générer des contenus sur mesure en PDF

    super,
    c’est du tonnerre !

    • Le 10 janvier 2011 à 22:34, par ? En réponse à : spiPDF : générer des contenus sur mesure en PDF

      Une nouvelle version de TCPDF est sortie recement, veuillez mettre le plugin a jour, et ajouter la direction RTL pour la prise en charge des langue qui s’ecrivent de droite a gauche,
      Bon courage

    • Le 11 janvier 2011 à 08:41, par Yves Tannier En réponse à : spiPDF : générer des contenus sur mesure en PDF

      Bonjour,

      Je dois répondre « oui chef, tout de suite » ?

      Le plugin n’utilise pas TCPDF directement mais HTML2PDF. Il faut donc attendre une mise à jour de HTML2PDF

    • Le 11 janvier 2011 à 23:13, par ? En réponse à : spiPDF : générer des contenus sur mesure en PDF

      est ce que j’ai dis quelque chose de pas bien pour que tu me repond d’une facon pas tt a fait poli, j’ai personnelement change la version du TCPDF du plugin par la nouvelle version et ca marche, donc puisque je ne suis pas pro, je crois bien que c’est facile pour TOI.

    • Le 11 janvier 2011 à 23:15, par ? En réponse à : spiPDF : générer des contenus sur mesure en PDF

      Je ne sais pas pourquoi dans un grand nombre de plugin on oublie ou en ne donne pas l’importance au langues RTL.

    • Le 11 janvier 2011 à 23:16, par Maïeul En réponse à : spiPDF : générer des contenus sur mesure en PDF

      bonjour,

      lorsqu’on utilise un impératif (« veuillez mettre à jour le plugin ») c’ets qu’on suppose que la personne est à vos ordre.

      ne vous étonnez donc pas de la réponse de Yves.

    • Le 11 janvier 2011 à 23:27, par ? En réponse à : spiPDF : générer des contenus sur mesure en PDF

      Mes excuses alors a vous Tous, c’etais avec une bonne intention, c’etais pas un ordre, et sans aucune rancune, alors je reconnais mon erreur, EXCUSEZ MOI et merci encore pour le plugin

    • Le 12 janvier 2011 à 10:46, par Yves Tannier En réponse à : spiPDF : générer des contenus sur mesure en PDF

      Y a pas de mal. Je vais regarder ce qu’il en est pour TCPDF.

    Répondre à ce message

Répondre à cet article

Qui êtes-vous ?
  • [Se connecter]

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

  • Acces Restreint 3.0

    11 décembre 2008 – 784 commentaires

    Le plugin accès restreint permet de définir et de gérer des zones de l’espace public en accès restreint. Cette version du plugin a été redévelopée et optimisée tout spécialement pour SPIP 2.0. Il en découle une amélioration des performances sur les gros (...)

  • Champs Extras 3

    16 janvier 2012 – 538 commentaires

    Ce plugin permet de créer et/ou de gérer des champs supplémentaires dans les objets éditoriaux de SPIP. Il permet donc de prendre en compte et d’afficher de nouveaux éléments dans n’importe quel objet éditorial de SPIP. Screencast Vous n’aimez pas (...)

  • Réservation d’événements

    16 mars 2015 – 190 commentaires

    Ce plugin permet d’offrir aux visiteurs de s’inscrire pour un évènement du plugin Agenda et de gérer les réservations enregistrées. Installation Le plugin s’installe comme n’importe quel plugin. il nécessite : Agenda API de vérification (...)

  • Les crayons

    23 avril 2008 – 815 commentaires

    Ce plugin permet d’éditer les contenus sur les pages publiques du site, sans passer par l’espace privé de SPIP.

  • LESS pour SPIP : Less-CSS (anciennement LESSpip)

    5 novembre 2010 – 43 commentaires

    Less-CSS (Anciennement LESSpip) est un plugin intégrant facilement le logiciel LESS dans SPIP. LESS est une extension de CSS ajoutant les variables, les classes, les opérations, les imbrications au langage. Facilitant ainsi l’écriture de (...)

Ça spipe par là