• [^] # Re: Documents Microsoft Word, Excel et Powerpoint

    Posté par (site web personnel) . En réponse à la dépêche ONLYOFFICE version 10 est disponible. Évalué à 5.

    Je ne suis pas expert, mais je vais tenter ma chance.

    tldr; Ici, par conversion, on entend passage d'une représentation mémoire à l'autre, pas du format texte en une représentation mémoire.

    C'est un peu comme traiter du HTML.
    Tu as le format écrit qu'on a l'habitude de voir : du texte organisé en utilisant du XML ou du SGML.
    Quand le navigateur analyse ce texte, il crée une représentation mémoire du document : le DOM.

    Dans le cas du HTML, le DOM est standardisé et est une représentation relativement directe du format texte, on peut (presque) passer de l'un à l'autre sans perte. Et dans tous les cas, les concepts sont directement compatibles : si une balise HTML contient trois balises, le nœud DOM correspondant va avoir trois enfants de type "Element" (grosso modo, il y a des exceptions mais l'idée est là).

    Pour le XML c'est encore plus vrai : la représentation mémoire (qui est standardisée) est très très proche du format texte. Par contre, il ne serait pas (en général) pratique de travailler sur un document XML directement à l'aide de son format texte pour faire des trucs avancés, notamment de l'édition WYSIWYG. On manipule sa représentation mémoire. Sinon, on se retrouve vite dans des situations similaires à celle décrite ici : https://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454

    De la même manière, LibreOffice interprète le fichier ODF dans la représentation mémoire propre à LibreOffice , très proche du format ODF (c'est même probablement standardisé, comme pour le XML et le HTML). Il y a une forte équivalence entre les deux.

    De la même manière, Microsoft Office interprète le fichier OOXML dans une représentation mémoire propre à Microsoft Office très proche du format OOXML qui a d'ailleurs certainement été conçu pour ça. Et c'est ce que ONLYOFFICE (essaie de) calquer.

    Mais ces représentations sont incompatibles entre elles. Notamment (si j'ai bien compris), l'entête et le pied de page sont gérés différemment dans les deux formats : l'un considère que ça fait partie de la zone imprimable, l'autre de la marge. Une conversion nécessite de jouer sur la taille des marges.

    Quand tu implémentes une suite office, tu dois en quelque sorte choisir ton camps sur comment tu représentes les choses. Et là, paf, conversion si on veut traiter l'autre format.