What is the best way to insert source code examples into a Microsoft Word document?

Viewed 296796

I have to write some documents that will include source code examples. Some of the examples will be written from the IDE, and others would be written in place. My examples are primarily in Java.

As someone who is used to LaTeX, doing this in Word is extremely painful. However, I am bound to Word for this. The only options I have seen are:

  1. Write or copy into the document, then use a fixed type font, arrange formatting and hope that Word didn't uppercase stuff for you. Needless to say, this looks like crap.
  2. Copy and paste screenshots of source code from the IDE. At least I keep colors. However, if I change my font size, I'm screwed. I'm also screwed across page boundaries. And let's admit it, Word is not great at managing multiple images on a document.
  3. Write HTML (not really an option here)

Is there some better (and ideally portable) way to do this? Is there at least some sort of verbatim style similar to the LaTeX environment? Is there at least some pretty printer that I could copy-and-paste as RTF?

16 Answers

Use this - http://hilite.me/

hilite.me converts your code snippets into pretty-printed HTML format, easily embeddable into blog posts, emails and websites.

How: Just copy the source code to the left pane, select the language and the color scheme, and click "Highlight!". The HTML from the right pane can now be pasted to your blog or email, no external CSS or Javascript files are required.

For Microsoft Word document: Copy the the content from the Preview section and paste to your Microsoft Word document.

3 sections : Source Code , HTML and Preview

These answers look outdated and quite tedious compared to the web add-in solution; which is available for products since Office 2013.

I'm using Easy Code Formatter, which allows you to codify the text in-place. It also gives you line-numbering options, highlighting, different styles and the styles are open sourced here: https://github.com/armhil/easy-code-formatter-styles so you could extend the styling yourself. To install - open Microsoft Word, go to Insert Tab / click "Get Add-ins" and search for "Easy Code Formatter"

enter image description here enter image description here enter image description here

If you are still looking for an simple way to add code snippets.

you can easily go to [Insert] > [Object] > [Opendocument Text] > paste your code > Save and Close.

You could also put this into a macro and add it to your easy access bar.

notes:

  • This will only take up to one page of code.
  • Your Code will not be autocorrected.
  • You can only interact with it by double-clicking it.

There is an easy way if you want simple code formatting.

  1. Open word> Insert tab> click on "Get Add-ins"
  2. search for "Content mixer" 3.click on "Add"

Then content mixer add will open automatically and you can copy paste your code in there and click on "Insert" to insert it in word doc.

In Word, it is possible to paste code that uses color to differentiate comments from code using "Paste Keep Source Formatting." However, if you use the pasted code to create a new style, Word automatically strips the color coded text and changes them to be black (or whatever the auto default color is). Since applying a style is the best way to ensure compliance with document format requirements, Word is not very useful for documenting software programs. Unfortunately, I don't recall Open Office being any better. The best work-around is to use the default simple text box.

I have tried all your methods, but they didn't work for me, in fact I have created an easier method using MS Word Tables.

Pros:

  1. More beautiful
  2. Easier to manage & more consistent
  3. Are less prone to problems
  4. No need for external plugins or MS Word micro coding.
  5. Easier to handle by simple users (such as myself).

Cons: It will not maintain code colouring although someone could improve my trick.

Steps:

  1. Insert a 3x3 table, in my case I always make the total width of the table equals the free page's width (3 rows minimum to test the tables style).

  2. Use invisible borders ("No Borders" option), and activate "View Gridlines" option. it should have this aspect. Be ware that those lines are for you to see the table's grid, and the will not be printed.

enter image description here

  1. Make the adjustments to cells' spacing and columns' width to get the aspect you like. (You will have to get in "Table Properties" for fine tuning). enter image description here

  2. Create a "Paragraph Style" with the name of "Code" just for your code snippets (check https://stackoverflow.com/a/25092977/8533804 to get the idea, you don't have to follow all of it)

  3. Create another "Paragraph Style" with the name of "Code_numberline" that will be based upon the previous created style. enter image description here

  4. In the newly created "Code_numberline" add the numbering style that you like (this will automate line numbering). enter image description here

  5. Apply "Code_numberline" to the first column, and "Code" to the 3 column. enter image description here

  6. Add a fill in the middle column. enter image description here

  7. Save that table style and enjoy!

So I've found the majority of answers on this question to either be only semi-functional or broken entirely (eg the website used is down). This solution is entirely self-contained in Word, works across multiple pages, and keeps your syntax highlighting.

Here's the steps:

  1. Temporarily set your IDE's theme to a light one, so that the text will fit in with the rest of your document.
  2. Copy the required code (HTML colourising info will be copied with it).
  3. In Word, hit Ctrl+Alt+V and choose HTML Format to paste the coloured text.
  4. Select all your text and then expand the styles gallery on the home tab of the ribbon.
  5. Choose "Create a style". Use a name such as "Code"
  6. Right click your new style in the gallery and choose "Modify".
  7. Under the formatting section, change the font to Consolas or your choice of monospace font. Also set the line spacing to Condensed (this option is next to the text alignment options).
  8. Under the format button in the bottom left, choose "Language", then enable the "Don't check spelling or grammar" option.
  9. If you want this style to be available in future documents, change to the "New documents based on this template" radio button.

Optional: for line numbers...

  1. Back in the Modify Style dialogue, choose the format button again and choose "Numbering".
  2. Choose the "Define new number format" option.
  3. Remove the dot after the number '1' in the number format box.
  4. Choose "Right" as the number alignment.
  5. Hit ok, then select your new number alignment option. Finally, hit ok on the Modify Style dialog.

Finally, select your code, and set it to be the Code style, which should apply all the required formatting.

Related