Printing Sketch: Even PDF file is mangled

I use an external editor (not the Arduino IDE) for creating my code. That means I can print whenever I want AND I have a much better editor (in my case I use Gedit on Linux, but other options are available).

One of the tick-boxes in the IDE Preferences allows you to use an external editor. The IDE doesn't care which. It just reads the latest version of the file before verify/upload.

I use the IDE for verifying, compiling and viewing in the Serial Monitor in the normal way.

...R