Apr 232009

I’m working on a project that takes an HTML document and allows users to edit and mark it up with their comments and notes.

Previously this was all done on paper. The form was submitted by a customer. It was then printed and placed in a customer folder which would be passed around to the different departments. Each department would work some aspect of the form, and would add their notes to it. At the end of the process, the form would be scanned back into our system and attached to the customer record. Did you get that last part? The form is printed out from our customer system, marked up, and scanned back into the same customer system! Kind of redundant.

So my project is meant to be an improvement on the process that should eliminate the need to print it out. Since our users are very resistant to change, my Boss has tasked me to create a solution that mimics the existing business process as much as possible. So to that end, I was trying to find a way that they could mark up the existing HTML form electronically but have it track changes as they are made.
I found a very good WYSIWYG editor that I could embed in a .Net form called HTML Editor. It’s Open source and written in C#. So that took care of my editing requirement, but the markup requirement was a little harder. I started working on a way to detect differences and insert style elements around them, but that was getting really tedious and was not going well. So I did a little more hunting online, and found a great little library that merges two HTML files and marks up the differences showing new text as well as deleted text. Check it out: Rainbow.MergeEngine