Génération de documents Word côté serveur
sebsauvage
Messages postés
32893
Date d'inscription
Statut
Modérateur
Dernière intervention
-
rubinse -
rubinse -
Bonjour,
mon site web doit générer des documents Word côté serveur.
La solution retenue a été de générer du HTML contenant des balises et CSS spécifiques Word.
Ça marche assez bien, y compris avec des choses comme les sauts de page.
Exemple:
Ce code html: http://sebsauvage.pastebin.com/VbEQYkPQ
Donne ceci une fois ouvert dans Word: https://i.imgur.com/9o211.png
Mais j'ai un soucis: Je n'arrive pas à insérer une table des matières.
Je m'arrache les cheveux sur l'horreur du code HTML généré par Word
(et même la documentation officielle de Microsoft n'aide pas :
https://docs.microsoft.com/en-us/previous-versions/office/developer/office2000/aa155477(v=office.10)?redirectedfrom=MSDN )
Avez-vous déjà réussi ?
mon site web doit générer des documents Word côté serveur.
La solution retenue a été de générer du HTML contenant des balises et CSS spécifiques Word.
Ça marche assez bien, y compris avec des choses comme les sauts de page.
Exemple:
Ce code html: http://sebsauvage.pastebin.com/VbEQYkPQ
Donne ceci une fois ouvert dans Word: https://i.imgur.com/9o211.png
Mais j'ai un soucis: Je n'arrive pas à insérer une table des matières.
Je m'arrache les cheveux sur l'horreur du code HTML généré par Word
(et même la documentation officielle de Microsoft n'aide pas :
https://docs.microsoft.com/en-us/previous-versions/office/developer/office2000/aa155477(v=office.10)?redirectedfrom=MSDN )
Avez-vous déjà réussi ?
A voir également:
- Génération de documents Word côté serveur
- Word 2013 - Télécharger - Traitement de texte
- Tableau word - Guide
- Impossible de supprimer une page word - Guide
- Word et excel gratuit - Guide
- Espace insécable word - Guide
6 réponses
Bon plutôt que continuer à philosopher seul dans cette discussion, j'ai créé une page sur mon wiki et je continue là-bas:
https://sebsauvage.net/wiki/doku.php?id=word_document_generation
https://sebsauvage.net/wiki/doku.php?id=word_document_generation
Bon je me répond à moi-même.
Voici le code (quasi-minimal) pour insérer une table des matières en HTML MS Office:
Ça marche très bien. L'utilisateur doit juste faire "Clic-droit" > "Mettre à jour les champs".
Voilà ce que ça donne:
https://i.imgur.com/ffbtQ.png
https://i.imgur.com/lXxbo.png
Voici le code (quasi-minimal) pour insérer une table des matières en HTML MS Office:
<p class=MsoToc1> <!--[if supportFields]> <span style='mso-element:field-begin'></span> TOC \o "1-3" \u <span style='mso-element:field-separator'></span> <![endif]--> <span style='mso-no-proof:yes'>Table des matières - Faites un clic-droit -> Mettre à jour les champs</span> <!--[if supportFields]> <span style='mso-element:field-end'></span> <![endif]--> </p>
Ça marche très bien. L'utilisateur doit juste faire "Clic-droit" > "Mettre à jour les champs".
Voilà ce que ça donne:
https://i.imgur.com/ffbtQ.png
https://i.imgur.com/lXxbo.png
Et si vous cherchez les options du champ dynamique "TOC", c'est là:
http://office.microsoft.com/en-us/word-help/field-codes-toc-table-of-contents-field-HP005186201.aspx
http://office.microsoft.com/en-us/word-help/field-codes-toc-table-of-contents-field-HP005186201.aspx
Notez que ces documents générés peuvent être renommés en .doc et Word les ouvrira sans aucun problème.
Il est également possible d'inclure des macros (je ne sais plus comment, mais j'ai déjà vu ça.)
Il est également possible d'inclure des macros (je ne sais plus comment, mais j'ai déjà vu ça.)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bon pour continuer mon investigation: L'utilisation d'entête et pieds de page fonctionne, mais il est nécessaire de les placer dans des fichiers html extérieurs au corps du document (sinon ils apparaissent en copie en fin de document).
Il en va de même pour les images.
Conséquence: il faut générer un fichier mhtml et non un seul fichier html.
mhtml n'est rien d'autre qu'un simple fichier MIME 1.0 contenant les différents fichiers html (Microsoft Office HTML) et les images.
Renommé en .doc, Word l'ouvre comme une fleur.
Je mettrai des exemples quand j'aurai avancé (ici ou sur mon wiki).
Pour résumer: C'est un peu chiant (plusieurs fichiers à créer, utiliser du code HTML spécifique à MS Word et créer un fichier MIME), mais c'est réalisable: On peut générer des fichiers Word côté serveur sans utiliser Word.
Il en va de même pour les images.
Conséquence: il faut générer un fichier mhtml et non un seul fichier html.
mhtml n'est rien d'autre qu'un simple fichier MIME 1.0 contenant les différents fichiers html (Microsoft Office HTML) et les images.
Renommé en .doc, Word l'ouvre comme une fleur.
Je mettrai des exemples quand j'aurai avancé (ici ou sur mon wiki).
Pour résumer: C'est un peu chiant (plusieurs fichiers à créer, utiliser du code HTML spécifique à MS Word et créer un fichier MIME), mais c'est réalisable: On peut générer des fichiers Word côté serveur sans utiliser Word.