with 1 Comment

I’ve been hitting this wall a lot recently. Just think about writing a document… Let’s start with a simple document — I just need section headers and simple wrapped paragraphs of text. No images, no tables, nothing complicated. I can do this in any simple text editor (Notepad, TextMate, SciTE, whatever). This works great at first. I can keep some notes in this format easily enough. It’s easy to use — nothing special to fiddle with.

Then something changes and I need some “special” formatting. Maybe some graphics, tables, more focus on things like margins, etc. We have a million options now. Convert it to Word? To Pages? (that’s Apple’s word processor for those unfamiliar) How about simply converting to HTML? I despise Word documents (especially because of the oddities associated with their formatting). Pages is nicer in a way (it doesn’t get in your way while you’re writing documents) but has many of the same problems. HTML is too loosely defined to display the same universally (on Firefox it will look great but something will inevitably go wrong on Safari/IE).

In the last couple years, I’ve started to use simple, consistent markup languages like WikiText, reStructuredText, etc. These have mostly been implemented on Wiki sites (like MediaWiki) but in theory, you could write a local application that used the same notation. These intermediate markup languages provide things like header formatting, table layouts, graphic alignment, etc. but don’t tend to focus on the “page” related details like margins, headers/footers on printed output, and other details. They translate the result into a fairly rigorously tested standards-oriented HTML. This works fine for anything I don’t intend to print into a glossy handout. Notes to myself, development and design comments, and many other daily working documents work well here.

Stack of Paper by cohdraBut then, after several weeks of tweaking a design doc, the PHB decides that he wants to see a copy of my design. He wants it printed. Printing the wiki-based version and handing it to him results in the comment “this isn’t using standard headers/footers on each page is it?” So now I’m stuck. I paste the output into Word and spend far too long formatting it for his consumption. He marks up the Word copy and I had to merge my changes back into the wiki.

What a pain.

At work, I’m mostly stuck with Microsoft tools so I tend to use Word if I have to use anything complex. However, elsewhere I typically take an additional step: converting my Word/Pages output to Adobe PDF. It’s sort of the universal printable format and it works for most things.

Wiki’s have definitely answered my need for most documents. The only link that’s missing is how to enable Wiki’s and other screen-displayed documents to be able to be easily converted to printable documents (with  header/footers, page numbers, etc.). Ideally, there could be some meta-tags that did this sort of thing. The problem currently is that while a slightly varied HTML rendering is acceptable when viewing on a screen, the printable layout MUST conform to a strict standard. Maybe someone will (or already has) put together a plugin or something that will let this happen easily. I eagerly await the day…

Update: I will mention here that under the leading of a certain Coder, I was able to help build at least a partial tool that did this exact thing for my last position. It parsed MediaWiki content and converted to Word format. This was nice but it was a little limited. I’d like to see a more generic solution in place — especially one that would allow output from the browser without having to have Word at all.

One Response

  1. Dave

    I’ve come up with that same problem when trying to create print media from a web application… for instance, to dynamically create a PDF that can then be printed on letterhead or something like that. The problem is that HTML pages have no concept of a page break or really any physical measurement units, so formatting them to nicely fit on a page without cutting in the middle of a paragraph or something is nearly impossible, not to mention margin issues and all that. ColdFusion has means for creating document headers and footers in a PDF dynamically, but since it doesn’t really know how many print pages there are going to be ahead of time, it’s pretty difficult to dynamically insert page breaks and that sort of thing. Still haven’t figured out a good way to do that one.

Leave a Reply