Friday, October 27, 2006

Everyone Loves Documentation...

And if you believe that, do I have a car to sell you! I recently had the wonderful pleasure of printing a binding a manual. The whole point of software is to save paper and then they need a manual printed out because they can't read it on the screen. They need to be able to hold something in their hands, and write on it and mark it all up with little notes to themselves.

All of our documentation is saved in HTML files. There is a lot of stuff in there that does not need to be printed (certain links and notes). All the images need to be resized to fit on 8x11'' paper. Page breaks need to be set up correctly. So on and so on.

The first issue was trying to get the HTML files to export out of our software with all the correct style sheet stuff. We had some export code but I seemed to need something more specific for the job so I ended up writing some new code. This handled stuff like getting rid of the screen style sheets and using the print style sheets for everything, ignoring pages that were tagged to hide, and evaluating calls to standard code. Good.

So then I had one huge HTML file that was formatted pretty much the way I wanted it to print. Now I wanted to add a table of contents. For the life of me I could not get the HTML file, exactly the way it was, into a text document to add a table of contents. The images would resize, I would lose the page breaks, and things that were supposed to be hidden would start showing up. So, fine, I would just have to add something to my new manual exporter to add a list of the contents at the beginning if wanted. So I whipped up some code to run recursively through the pages that were to be include in the document being exported and to add them all to an unordered list with gradually shrinking font size. That turned out pretty good. No page numbers but the order of how things appear in the document is there so you can find the section and the general area the documentation you are looking for is in. There, all I have to do now is print it.

Of course, three seconds after I finished printing it out it was already out of date. Not to mention that printing it out took a good couple hours. Of course I started it one night before leaving the office only to come in the next morning and of course find the printer out of paper. So then I had the pleasure of making enemies of anyone trying to use the printer the next morning and of sifting through hundreds of pages of help looking for someone's one page task report. So, after all that is done, I hear "That was supposed to be in color". DOH!! Well I'm not reprinting it all now. This will have to do and I will make sure to do the next one in color. Since I already printed the whole manual in black and white that I would make sure to do the covers for each module in color. So I print them out on some nice card stock and get the wholes all punched out for binding and I hear "You didn't laminate those?". Ugh!! Nope, I didn't laminate them. I'll remember that for next time. Honest! Then to binding. Heaven forbid the binding machine should take a break and just work with me long enough to get this done. I end up binding them all by hand (which is just fine because it was probably quicker then trying to figure out that stupid machine. Hmmm...I sound like a user!). You would think that having to write documentation is bad enough as it is, but then you have to print and bind it.

I don't know how to make the process any less painful. I guess the next time I have to do it all the code will already be written (great, the fun part will already be done). I used the export method I wrote to generate a PDF file for each module so that when the next customer wants a manual done I can just tell someone else where to get the PDF files and they can do all the printing and laminating and binding and then I won't have to worry about remembering to do it right. Which is good, because there are so many other things to worry about the documentation being in color.

No comments:

Post a Comment