Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

How do I easily write and syntax-highlighted PHP code (or any others programming language) in a Word 2009 document?

share|improve this question
3  
why would you want to? –  RCIX Sep 11 '09 at 10:02
    
I would just use Notepad++. It's great and has syntax highlighting for hundreds of languages –  D'Arvit Sep 11 '09 at 10:32
1  
@RCIX: I'm writing a concept document which will feature only code snippets, but no actual code. –  christian studer Sep 11 '09 at 11:51

7 Answers 7

up vote 35 down vote accepted

You can use Notepad++ to accomplish this in three ways. Just so you know, Notepad++ is a more advanced version of Notepad, which supports syntax highlighting of different code files "out of the box" - PHP included!

Download & install it, fire it up, and load up your PHP file. You should automatically see it beautifully coloured (if not, because the file extension is something other than .php, go to Language -> PHP or Language -> P -> PHP).

If you need to change any of the colours, you can easily do so - just go to Settings -> Styler Configurator. From that menu, you can change the various highlighting and font options, to suit your needs - although the default usually suffices for most.

Then, go to Plugins -> NppExport. From there, you have three options you can consider:

  • Export to RTF
  • Export to HTML
  • Copy all formats to clipboard

Start with the last one - "Copy all formats to clipboard" - which will copy the entire file with the highlighted syntax to the clipboard. Once you click it, then open Microsoft Word, and just hit paste! You should see the beautifully syntax-highlighted code. If something goes wrong, then you can try one of the other options (export to RTF/HTML), although I've never had a problem with the clipboard method.

share|improve this answer
1  
Thanks, I already had Notepad++ installed, but didn't knew about the NppExport-plugin. I'll go with your solution. –  christian studer Sep 11 '09 at 11:52
    
Yeah, it's quite useful for copying & pasting to Word to print documents out... I love it. :) –  Breakthrough Sep 11 '09 at 11:53
    
This is why I love SU. I had no idea you could do this! –  David Pearce Sep 11 '09 at 12:23
    
Absolute perfection! –  dcousineau Oct 4 '09 at 22:20
    
+1 Excellent answer, thank you –  Andreas Grech Oct 26 '09 at 11:15

Send your code to an online syntax highlighting website, this one for example (select the langage yourself, Autodetect doesn't work very well). There is a list of other online syntax highlighting site here.

Copy the highlighted code and paste it into Word.

share|improve this answer
    
Note: you have to use IE for this. Opera doesn't work, but I don't know about FF/Safari/Chrome. –  Vilx- Sep 11 '09 at 10:24
1  
Works fine with Chrome and Firefox. –  Snark Sep 11 '09 at 10:56
    
Thank you, it works great with Firefox indeed. –  christian studer Sep 11 '09 at 11:51

You could install the .PHPS file type into Apache then copy the output from your browser into Word.

in your http.conf

AddType application/x-httpd-php-source .phps
share|improve this answer
    
Creative, but not exactly easy (Requires a webserver...). ;-) –  christian studer Sep 11 '09 at 11:53
    
Fair point :) –  Greg B Sep 11 '09 at 14:21

Syntax highlighting many languages in Word documents: http://www.planetb.ca/2008/11/syntax-highlight-code-in-word-documents/

share|improve this answer

I found this question looking for the same thing for Outlook on Mac OS, but Notepad++ doesn't exist for OSX and I use Sublime Text (which has the advantage of being cross-platform).

For this there's a plugin called SublimeHighlight.

Assuming you use Sublime Package Control, the steps to install SublimeHighlight are:

  1. Press cmd shift P
  2. Run "Package Control: Add channel"
  3. Paste the github url: https://github.com/n1k0/SublimeHighlight
  4. Press cmd shift P again, and run "Package Control: Install Package"
  5. Install the "Highlight" Package, and restart Sublime Text.

Then to copy text you can press cmd shift P, and run "SublimeHighlight: copy to clipboard as HTML" (or RTF). These commands can also be assigned keyboard shortcuts.

Note that on Windows or Linux the shortcut key for the Command Palette is different, but it can be accessed by going to Tools > Command Palette.

share|improve this answer

Without manually creating character styles for each element of the language and applying them manually, you can't.

Your best bet is to take a screenshot in a editor that does do syntax highlighting and insert that into your document, or copy-and-paste the already colourful code from another program (perhaps a paste bin) and paste it into Word and hope that the colour formatting gets preserved.

share|improve this answer
    
Some browsers carry over formatting and colour when you copy & paste. ;) –  Breakthrough Sep 11 '09 at 10:56

You may want to consider abandoning Word altogether and use AsciiDoc instead. AsciiDoc is both a simple markup language and a processor to render documents into other formats. It supports HTML and DocBook. DocBook format can be converted to other formats (e.g. PDF, ePub) using additional tools (e.g. a2x).

By default, it uses GNU source-highlight to color code source code.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.