2603 votes

Comment afficher les extraits de code dans MS Word en préservant le format et la coloration syntaxique ?

Quelqu'un connaît-il un moyen d'afficher du code dans des documents Microsoft Word en préservant les couleurs et le formatage ? De préférence, la méthode serait également discrète et facile à mettre à jour.

J'ai essayé d'inclure le code sous forme de texte normal, ce qui est horrible et gêne l'édition du texte normal. J'ai également essayé d'insérer des objets, un document WordPad et une zone de texte, dans le document, puis de placer le code dans ces objets. Le code a une bien meilleure apparence et est plus facile à éviter lors de l'édition du reste du texte. Cependant, ces objets ne peuvent couvrir qu'une seule page, ce qui fait de l'édition un cauchemar lorsque plusieurs pages de code doivent être ajoutées.

Enfin, je sais qu'il existe de bien meilleurs éditeurs/formats qui n'ont aucun problème à gérer cela, mais je suis coincé avec MS Word.

0 votes

J'ai opté pour une solution mixte. Copier avec le format RTF, coller dans OpenOffice Writer, supprimer l'arrière-plan (s'il y en a un), puis coller le code dans MS Word. Pour une raison quelconque, je ne peux pas supprimer l'arrière-plan dans Word. "Copie sur les stéroïdes" Le plugin pour faire cela dans PhpStorm, WebStorm, PyCharm est génial !

8 votes

En commençant par Office 365, je ne sais pas, peut-être même pour Word 2013 ou 2016. Il existe un module complémentaire en ligne appelé "Code Format". Installer cet addin Office et dans votre doc word vous pouvez juste sélectionner tout le code (même plusieurs pages) et cliquer sur le bouton convertir le depuis l'addin Code Format et il le convertit en un code couleur formaté avec des numéros de ligne. Je n'ai pas trouvé l'option de formatage sans numéros de ligne ! !! Mais néanmoins, pas trop mal ! !!

0 votes

En dehors de tout add-in spécifique qui serait dédié au formatage du code, la meilleure solution consiste à utiliser des styles ou des images. Les styles sont destinés à la mise en forme. J'ai utilisé de nombreuses bifurcations, de Star Office à Libre Office aujourd'hui, mais je viens de me mettre à Word et j'ai trouvé comment le faire en explorant simplement la configuration des styles. Il suffit d'utiliser Notepad++ pour exporter le RTF puis d'utiliser les styles. Parmi les choses que j'ai faites, j'ai ajouté une bordure, une couleur de fond que j'aime, coché "Ne pas ajouter d'espacement entre le même style" ou similaire (j'ai l'interface graphique française donc je ne connais pas la légende exacte en anglais) et tout ce que vous voulez.

2622voto

gargamel Points 5906

Voici la meilleure façon, pour moi, d'ajouter du code dans Word :

  1. Aller à Insert onglet, Text cliquez sur Object (il se trouve à droite)
  2. Choisissez OpenDocument Text ce qui ouvrira un nouveau document Word incorporé
  3. Copiez et collez votre code depuis Visual Studio / Eclipse à l'intérieur de cette page word intégrée
  4. Enregistrer et fermer

Avantages

Le résultat est très beau. Voici les avantages de cette méthode :

  • Le code conserve sa disposition et ses couleurs originales
  • Le code est séparé du reste du document, comme s'il s'agissait d'une image ou d'un graphique.
  • Les fautes d'orthographe ne seront pas mises en évidence dans le code (c'est cool !).

Et cela ne prend que quelques secondes.

3 votes

Brillant conseil. A noter que cela ne fonctionne pas si l'on copie du code depuis IntelliJ (il est copié sans coloration syntaxique).

29 votes

Brillant ! J'ai bricolé des styles, des tableaux et d'autres solutions de contournement pendant des années. Cette solution permet de tout régler en une seule fois. Notez que vous avez également le bonus d'ajouter une légende à votre code. J'ai ajouté un nouveau type d'étiquette "Listing" pour gagner des points :-)

1 votes

Bien entendu, cette approche souffre d'un manque de maintenabilité. Que se passe-t-il si vous modifiez votre code au milieu/après avoir écrit votre document Word. Vous devez alors appliquer à nouveau cette astuce pour mettre à jour l'extrait de code dans votre document. Avec LaTeX et le package listings, il vous suffit de pointer vers le fichier source et votre extrait de code sera mis à jour la prochaine fois que vous compilerez votre fichier .tex. Pas de copier/coller. De plus, vous bénéficiez de la coloration syntaxique automatique et de la numérotation des lignes.

1188voto

Saad Points 4085

Télécharger et installer Notepad++ et faites ce qui suit :

  1. Collez votre code dans la fenêtre ;

  2. Sélectionnez la langue de programmation dans le menu de langue ;

  3. Sélectionnez le texte à copier ;

  4. Cliquez à droite et sélectionnez Commandes du plugin -> Copier le texte avec la mise en évidence de la syntaxe ;

  5. Collez-la dans MS Word et c'est parti !

Mise à jour 29/06/2013 :

Notepad++ dispose d'un plugin appelé "NppExport" (préinstallé) qui vous permet de copier vers RTF, HTML et ALL. Il permet des dizaines de langues, alors que les IDE susmentionnés sont limités à une poignée chacun (sans autres plugins).

J'utilise Copier tous les formats dans le presse-papiers et "coller en tant que HTML" dans MS word.

screenshot from notepad++

9 votes

Cela a fonctionné à merveille. J'avais déjà Notepad++ pour d'autres projets de code, mais je n'avais jamais pensé à l'utiliser. Combiné à un style Word qui a ajouté un fond bleu pâle, une bordure et désactivé la vérification orthographique, le résultat est plutôt bon et assez rapide pour un certain nombre de fichiers, contrairement aux méthodes impliquant des exportations et importations de fichiers. J'aimerais cependant qu'il existe un moyen de l'ajouter en tant que champ qui vérifierait automatiquement les mises à jour des fichiers .java originaux et conserverait le dernier code source dans le fichier Word.

97 votes

Merci pour cette astuce. Plugins -> NppExport -> Copier le RTF dans le presse-papier fonctionne également.

1 votes

@AndyH Merci ! Mon menu de clic droit n'a pas Commandes du plugin .

85voto

Jimmy Points 35501

Je tape mon code dans Visual Studio, puis je fais un copier-coller dans word. cela préserve les couleurs.

9 votes

Mais loin d'une fidélité à 100%. Le processus de copie semble supprimer une grande partie du formatage pour une raison quelconque.

3 votes

Cela fonctionne très bien avec Eclipse et OpenOffice Writer, d'ailleurs (je ne connais pas Eclipse/Word ou VisualStudio/Writer, par contre).

1 votes

Je me demande si cela dépend si vous utilisez des tabulations ou si vous demandez à Visual Studio de convertir les tabulations en espaces. Je ne remarque aucun problème avec les espaces.

32voto

Donal Fellows Points 56559

Lorsque je l'ai fait, j'ai fait un usage intensif des styles. Cela aide beaucoup.

Ce que je fais, c'est créer un style de paragraphe (peut-être appelé " Code Example " ou quelque chose comme ça) qui utilise une police monospace, des tabulations soigneusement choisies, un fond gris très clair, une fine bordure noire au-dessus et en dessous (cela aide beaucoup la visibilité) et avec l'orthographe désactivée. Je m'assure également que l'espacement entre les lignes et les paragraphes est correct. Je crée ensuite des styles de caractères supplémentaires par-dessus (par exemple, " Comment ", " String ", " Keyword ", " Function Name Decl ", " Variable Name Decl ") que je superpose ; ces éléments définissent la couleur et le caractère gras/italique du texte. Il est alors assez simple de passer en revue et de marquer un exemple collé comme étant du code et de faire en sorte qu'il ait l'air vraiment bien, et cela fonctionne bien pour les courts extraits. Les longs morceaux de code ne devraient probablement pas figurer dans un document destiné à être placé sur un arbre mort :-)

L'avantage de cette méthode est qu'elle est facile à adapter au code que vous utilisez ; vous n'avez pas à compter sur un IDE pour comprendre ce qui se passe pour vous. (Le principal problème ? Les pages imprimées ne sont généralement pas aussi larges que les fenêtres de l'éditeur, ce qui fait que l'habillage sera nul...)

0 votes

Merci Donal pour cette information. Je me demande cependant comment je peux utiliser les intents pour représenter des lignes de code imbriquées ? Si j'utilise une couleur de fond et une bordure pour mon paragraphe, lorsque j'utilise l'indentation, tout le bloc se déplace.

7 votes

Il aurait été intéressant de partager votre style/template ?

0 votes

Je fais la même chose depuis des années - un gros problème : chaque fois que j'applique le style, Word souligne toujours en rouge les problèmes d'orthographe. Si je modifie le style et que je sélectionne Format->Langue, "Ne pas vérifier l'orthographe et la grammaire" est coché, et si je ferme maintenant la boîte de dialogue de formatage avec Ok, les lignes disparaîtront - mais elles apparaissent toujours jusqu'à ce que je fasse cela.

27voto

frankodwyer Points 9422

Essayez de définir un style appelé "code" et faites en sorte qu'il utilise une petite police à largeur fixe, cela devrait être mieux.

Utilisez CTRL + SPACEBAR pour réinitialiser le style.

21 votes

Vous ne conserverez pas la coloration syntaxique.

1 votes

La coloration syntaxique est surfaite si nous parlons ici d'un document Word. Mais elle est aussi facilement implémentée dans un script VB qui colore tout le texte stylisé comme "Code".

0 votes

C'est ainsi que je procède également, avec d'assez bons résultats, bien que je désactive également la vérification orthographique/grammaticale pour mon style "code".

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X