Le format de document OpenDocument est standard et ouvert ; les fichiers respectant ce standard sont donc potentiellement manipulables par n'importe quelle application. Notamment par des scripts PHP.
Mon objectif est simple : déposer par FTP des documents .odt sur un serveur web et les proposer à la lecture sous forme HTML via une conversion dynamique.
J'ai par ailleurs deux contraintes :
- je souhaite un code x/html excessivement propre (pas de "html" façon OpenOffice ou Word et consorts),
- je souhaite convertir ces documents dynamiquement, ce qui interdit tout utilitaire graphique.
J'ai donc fouiné sur le web et suis tombé sur différentes librairies/outils permettant d'envisager la manipulation de documents odt via PHP.
odt2xhtml :: http://odt2xhtml.eu.org/
Cet librairie génère du xhtml "propre", une démonstration en ligne est utilisable.
Je n'ai pas encore regardé le code PHP, mais ça devrait être bien puisqu'orienté objet en PHP.
Package PEAR OpenDocument :: http://pear.php.net/package/OpenDocument
Je n'ai pas essayé cette librairie, mais la dernière version est en alpha et date de juillet 2007, ce qui ne m'inspire pas vraiment.
Librairie odtPHP :: http://sourceforge.net/projects/odtphp/
Cette librairie permet de manipuler des fichiers .odt via PHP, mais est visiblement orientée vers la génération de documents.
Par ailleurs, l'installation ne fonctionnait pas directement sur ma Debian (problèmes d'include mineurs, mais problèmes tout de même ; pour faire fonctionner des "tests" qui ne sont pas très explicites)
Note : une librairie ods-php existe également pour manipuler les feuilles de calcul ; je n'ai pas du tout creusé.
Writer2LaTex :: http://www.hj-gym.dk/~hj/writer2latex/ (pas en PHP mais...)
Il se trouve que j'avais déjà utilisé la démonstration en ligne de odt2xhtml, mais ne parvenant pas à remettre la main dessus (jusqu'à maintenant), j'ai cherché un peu plus loin que "php" et je suis également tombé sur writer2latex qui permet de convertir des documents odt en latex ou xhtml. L'intérêt de ce logiciel est qu'il convertit de base en un format xhtml excessivement propre (qui reprend notamment le nom des styles définis dans le document d'origine) et que son comportement peut être personnalisé en définissant des options ou la feuille de style XSL utilisée pour la conversion du document.
Bilan
Le site pour lequel je souhaite implémenter cette conversion dynamique étant hébergé sur un VDS, il m'est possible d'installer writer2latex. Je n'ai pas encore tranché, je penche légèrement vers cette solution tant le code généré est propre. Néanmoins odt2xhtml reste une librairie générant du xhtml presque "parfait" (de mon point de vue), et l'intégration sera facilitée puisque c'est déjà du PHP.
Note : les documents que je souhaite publier sont uniquement textuels : pas de tableaux, pas d'images, pas de mise en page complexe. Pour cette raison, je pense que votre opinion et vos retours d'expérience pourraient être utiles.
Merci
# (c) (r) (tm) debian-legal
Posté par Mouns (site web personnel) . Évalué à 1.
si tu ne le diffuses pas et qu'aucun morceau réexploité n'est sous une licence type AGPL ou BSD à publicité ... tu n'auras pas trop de soucis ;)
[^] # Re: (c) (r) (tm) debian-legal
Posté par LeBouquetin (site web personnel, Mastodon) . Évalué à 1.
- soit il n'y a pas de diffusion,
- soit ce sera une lib et du coup "peu importe la licence" (je m'adapte à GPL/LGPL/BSD pour ce genre de truc).
Donc pas de soucis.
#tracim pour la collaboration d'équipe __ #galae pour la messagerie email __ dirigeant @ algoo
[^] # Re: (c) (r) (tm) debian-legal
Posté par syj . Évalué à -1.
C'est interessant de le rappelé pour éventuellement les nouveaux du libre qui nous lirait.
Vu que c'est un site perso qui sera hebergé sur ton serveur:
Si la lib est en GPLv2, tu n'es pas obligé de diffusé le code source.
Si la lib est en GPLv3, tu seras obligé de diffusé le code à tes utilisateurs si il te le demande.
Par contre si ton application tourne chez un hébergeur, pourrait-il te demander le code source ? (... enfin, çà reste du PHP , il en a pas vraiment besoin)
[^] # Re: (c) (r) (tm) debian-legal
Posté par vida18 . Évalué à 1.
[^] # Re: (c) (r) (tm) debian-legal
Posté par LeBouquetin (site web personnel, Mastodon) . Évalué à 2.
Ca mériterait un journal, rien que pour résumer et comparer les licences "libres" les plus courantes...
#tracim pour la collaboration d'équipe __ #galae pour la messagerie email __ dirigeant @ algoo
[^] # Re: (c) (r) (tm) debian-legal
Posté par vida18 . Évalué à 1.
Il y a aussi la AGPL et la CeCILL.
[^] # Re: (c) (r) (tm) debian-legal
Posté par Earered . Évalué à 5.
Ça c'est pour l'AGPL
# writer2latex: un seul reproche, regarde du coté de XSLT
Posté par Amine Mokhtari . Évalué à 1.
Independement de cela, odt et xhtml sont tous deux des langages de balisages basés sur XML, il est donc possible d'utiliser directement XSL (ou XSLT directement) sans passer par un langage tel que PHP ou autres. Essaye de creuser de ce côté là aussi.
Références :
XSLT : http://fr.wikipedia.org/wiki/Extended_stylesheet_language_tr(...)
[^] # Re: writer2latex: un seul reproche, regarde du coté de XSLT
Posté par thedude . Évalué à 1.
[^] # Re: writer2latex: un seul reproche, regarde du coté de XSLT
Posté par Pinaraf . Évalué à 1.
Sinon pour la transformation du contenu en XHTML avec du XSLT, j'pense pas que ça soit si compliqué pour du contenu de base (paragraphes, liens, listes...)
Vu que tout est très proche du XHTML avec la séparation contenu/style...
[^] # Re: writer2latex: un seul reproche, regarde du coté de XSLT
Posté par thedude . Évalué à 1.
De tete, c'est un outil de transformation d'arbre XML en un autre arbre XML.
Ensuite pour ce qui est de la feuille de transformation, les possibilite de mise en page etant tres differentes entre OOo et XHTML, oui, je pense que c'est pas si simple d'ecrire une feuille de transformation.
Maintenant, si quelqu'un qui connaitb ien le sujet peut nous eclairer...
[^] # Re: writer2latex: un seul reproche, regarde du coté de XSLT
Posté par Cyrille Pontvieux (site web personnel, Mastodon) . Évalué à 1.
Donc oui c'est possible de convertir le styles.xml en styles.css. Pour ce qui est de l'héritage, on peut le faire aussi en CSS, vu que, comme son nom l'indique, l'héritage est géré. Le plus dur c'est d'écrire une telle feuille de style XSL, mais ça doit être faisable (avec quelques pertes).
[^] # Re: writer2latex: un seul reproche, regarde du coté de XSLT
Posté par Pinaraf . Évalué à 1.
Merci pour ta confiance.
http://www.w3schools.com/xsl/el_output.asp : comme tu peux le voir ici, l'élément xslt:output a un attribut method, qui peut prendre pour valeur xml, html, text ou name.
http://www.w3.org/TR/xslt : tu trouveras ici, en cherchant method="text", un exemple.
Et l'écriture d'une feuille de transformation n'est pas difficile je pense, le mieux étant juste de prendre les fichiers inclus dans OpenOffice.org (dossier /usr/lib/openoffice/basis3.0/share/xslt/export/xhtml dans le cas d'un OOo 3.0 installé avec les paquets debian)
[^] # Re: writer2latex: un seul reproche, regarde du coté de XSLT
Posté par thedude . Évalué à 2.
Je voulais dire pour la partie odf, pas pour xslt, desole si on s'est mal compris.
[^] # Re: writer2latex: un seul reproche, regarde du coté de XSLT
Posté par LeBouquetin (site web personnel, Mastodon) . Évalué à 2.
Tout à fait. Je bosse sur un logiciel qui transforme du XML au choix en XML, CSV ou SQL. Ceci à l'aide de feuilles de style XSL plutôt simples.
#tracim pour la collaboration d'équipe __ #galae pour la messagerie email __ dirigeant @ algoo
[^] # Re: writer2latex: un seul reproche, regarde du coté de XSLT
Posté par B16F4RV4RD1N . Évalué à 2.
Only wimps use tape backup: real men just upload their important stuff on megaupload, and let the rest of the world ~~mirror~~ link to it
# ODF@WWW ?
Posté par gouchi (site web personnel) . Évalué à 5.
http://odf-at-www.services.openoffice.org
également ODFXSLTRunner :
http://odftoolkit.org/projects/odftoolkit/pages/ODFXSLTRunne(...)
JODConverter :
http://www.artofsolving.com/opensource/jodconverter
Dio :
http://gitorious.org/projects/dio
# unoconv
Posté par Mathieu . Évalué à 2.
C'est du python qui va interroger un openoffice pour convertir un document X dans un format Y (tous les formats supportés par openoffice).
L'avantage est qu'en plus de l'ODT, tu pourras convertir différents formats vers X/HTML (*.pdf, *.doc, etc.). L'inconvénient est qu'il faut avoir un openoffice d'installé sur ton serveur.
C'est par ici : http://dag.wieers.com/home-made/unoconv/
# xhtml direct sous openoffice
Posté par SLMitch . Évalué à 3.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.