Sortie de odtPHP v0.9 : Générez des documents OpenOffice avec PHP

Posté par (page perso) . Modéré par Mouns.
Tags : aucun
12
30
mai
2009
Bureautique
La bibliothèque PHP : odtPHP vient de sortir en v0.9.

Cette bibliothèque permet de générer des fichiers OpenOffice avec PHP en se basant sur des fichiers odt modèle.

Le système est simple, il consiste à mettre des "tags" dans vos fichiers OpenDocument (par exemple {titre} ) qui seront automatiquement remplacés lors du parsing de PHP.

Fonctionnalités supportées :
  • Gestion des balises simples ;
  • Ajout d'images ;
  • Gestion de boucles ;
  • Gestion de tableaux.
La version 0.9 est la dernière version avant la v1.0 et contient les améliorations suivantes :
  • Fix : Possibilité d'ajouter des images à l'intérieur des boucles ;
  • Add: Possibilité d'insérer plusieurs segments à l'intérieur d'un autre ;
  • Possibilité de répéter des lignes de tableaux ;
  • Ajout de nouveaux tutoriels afin de montrer les nouvelles fonctionnalités de la bibliothèque ;
  • Les retours chariots sont désormais pris en compte correctement dans le document généré ;
  • Appeler la fonction saveToDisk() sans paramètre ne génère plus d'erreur PHP ;
  • saveToDisk() lance maintenant une exception lorsque la méthode tente d'écraser un fichier dont on n'a pas les droits en écriture ;
  • Un 4ème paramètre optionnel ajouté à la méthode setVar() permet de gérer des données encodées en UTF-8.

Si vous utilisez le produit n'hésitez pas à nous en faire part.
  • # Modèle vs. génération

    Posté par (page perso) . Évalué à 3.

    Ave,

    C'est très pratique d'utiliser des fichiers ODT comme modèle, surtout lorsqu'on veut utiliser de la mise-en-page de haut niveau et autres.

    De mon côté, j'ai eut besoin de générer les documents à partir de rien, ça a donné le projet Dio ( http://gitorious.org/dio ) qui génère les ODT, ODS ainsi que les diagrammes et un support minimal pour les styles.

    Je pense pas que deux projets de ce types puissent fusionner : remplacer du texte dans du XML est vraiment très rapide, il n'est pas besoin de reconstruire l'arborescence du document en PHP. Mais ce sont deux types de projets complémentaires. Avis aux contributeurs !

    Bon courage pour la 1.0 !

    Étienne.
    • [^] # Re: Modèle vs. génération

      Posté par . Évalué à 1.

      Hola!

      Je cherchais justement un outil qui me permettrait de créer des fichiers OpenDocument à partir de PHP ; plus spécialement des documents texte, avec quelques chapitres et sections, et quelques images. Est-ce que ton projet Dio permet de faire cela ? Je pourrais contribuer s'il y a des choses à implémenter.
    • [^] # Re: Modèle vs. génération

      Posté par (page perso) . Évalué à 2.

      c'est marrant, j'ai justement fait ça dans mon coin aussi ^^
      http://oktail.org/odffactory == une page de demo a l'arrache
      http://oktail.org/odffactory/data/test.ods == le fichier lu par la page de demo
      coté ods, je parse et exécute les formules, je me tate a gérer les scripts si ils peuvent de se faire en java ou js
    • [^] # Re: Modèle vs. génération

      Posté par (page perso) . Évalué à 2.

      Sébastien Blondeel a aussi fait une génération automatique de documents ODF pour satisfaire l'échange de ses travaux de rédaction avec Eyrolles.
      Sébastien nous en avait fait une démonstration époustouflante à Bordeaux il y a deux ans.
      Encore des travaux intéressants qui ne sont pas exploités...
    • [^] # Re: Modèle vs. génération

      Posté par (page perso) . Évalué à 1.

      Par contre, l'avantage de générer du XML à partir de rien c'est que tu peux toucher à tout ce que tu veux dans le fichier, et ça devient très important avec les styles.

      Depuis hier, j'essaye d'utiliser odtPHP pour un petit projet que j'ai en tête (l'annonce linuxfr tombe à point nommé), et il me manque la possibilité d'ajouter un style (automatique ou pas) au fichier. Tiens, je vais peut-être coder ça et le soumettre.

      C'est vrai que beaucoup de monde code son implémentation de génération ODF, j'imagine que dans quelques mois/années il y aura une ou deux implémentations qui sortiront du lot, comme toujours.

      A noter aussi l'ensemble des outils portés par la fondation OpenDocumentFellowship, il y a quelques feuilles XSL très intéressantes là-dedans : http://opendocumentfellowship.com/projects/odftools
      • [^] # Re: Modèle vs. génération

        Posté par (page perso) . Évalué à 1.

        > C'est vrai que beaucoup de monde code son implémentation de génération ODF

        J'avoue que ça ne me gêne pas qu'il y ait d'autres projets. La foison de projets qui gravite autour d'un standard ne peux qu'augmenter sa popularité.

        Étienne.
  • # Plus que ODT vers PDF

    Posté par (page perso) . Évalué à 1.

    J'ai en ce moment le besoin de générer des PDF via PHP.

    J'ai choisi la solution actuelle la moins pire, à savoir FPDF mais qui reste très gourmant en ressources (et donc temps d'exploitation) surtout quand on "construit" 400 pages.

    Cette solution tomberait à point nommé (j'avais cherché vite fait) mais il manque la génération de pdf à partir de l'odt : impossible sans installer sur le serveur OOo (et donc X...) et scripter. D'après ce que je me souviens, c'était un peu lourd.

    Vivement qu'un utilitaire stand-alone soit disponible et ce sera parfait.
    • [^] # Re: Plus que ODT vers PDF

      Posté par (page perso) . Évalué à 2.

      L'excellent site Artisan Numérique a fait il y a quelques temps un article à ce propos. Au lieu de passer par FPDF, il proposait de passer via Firefox ou WebKit (après quelques tests, je préfère Firefox qui génère des PDF bien plus beaux et conformes aux résultats souhaités)

      Si tu utilise Firefox, il faut faire quelques modifications dans un fichier de configuration du plugin à installer. J'ai eu un peu de mal à trouver ce qui n'allait pas avec la configuration proposé par Artisan Numérique, mais en supprimant la ligne :
      settings.paperWidth=280;
      cela va tout de suite mieux pour moi.

      Alors, oui ce n'est pas un outil standalone, mais pour l'instant c'est ce que j'ai trouvé de mieux en terme de temps de développement.

      http://artisan.karma-lab.net/node/1711
      • [^] # Re: Plus que ODT vers PDF

        Posté par (page perso) . Évalué à 1.

        Pour FPDF, on trouve des "surcouche" tel que html2pdf mais c'est trop lourd, trop lent. Parser en PHP, c'est lent, très lent.... (les parseurs XML tel que la lib native, libxml ou simplexml sont écrits en C donc là c'est plus rapide). Surtout quand on veut sortir qqchose de 400 pages.
        Du coup, j'ai créé ma propre surcouche afin de gérer un modèle boîte comme en html (width, height, margin, padding, avec les retours à la ligne....) et surtout des lignes de tableaux. En l'optimisant au maximum... Pq au début c'était pas très très rapide. Pour l'instant, c'est le moins pire que j'ai trouvé.

        Sinon, j'avais pensé à utiliser un moteur de rendu html pour l'impression, mais c'était trop gros pour moi. Je suis content d'obtenir qqchose dans ce sens. Je vais regarder ça de près.

        Il doit y avoir moyen d'en faire un service standalone accessible en tcp (ça éviterait l'intervention de lignes de commandes et l'enfantage de processus potentiellement gourmand en mémoire à PHP et donc à un thread Apache ou encore le bidouillage du dossier surveillé en cron) On balance le html+css et on récupère le pdf. Après, une simple extension php et j'ai ce que je veux (un peu style memcached).

        J'y médite. S'il y a des intéressés, qu'ils me contactent... Plus on est de fous, plus on partage le riz.
  • # Une solution possible avec les eZ Components

    Posté par . Évalué à 1.

    Bonjour à tous,

    Les librairies eZ Components ([http://ezcomponents.org/]) proposent le composant Document ([http://ezcomponents.org/docs/tutorials/Document]), qui entre autres conversions entre divers formats (ReStructured text, XHTML, Docbook, eZ Publish XML markup, Wiki markup languages comme: Creole, Dokuwiki and Confluence), permettra à partir de Juin, période de la release 2009.1, d'écrire et de lire au format ODF. Un ticket est renseigné dans l'outil de bug tracking : [http://issues.ez.no/14428], ouvert aux suggestions.

    My 2 cents :)

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.