This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
I am trying to generate doc/rtf files based on server data.
I've tried generating the files from scratch using iText. However there are dozens of letter templates to generate, and what takes minutes to design in Word takes hours to design in a Java program. Besides, the boss has just stated that she would like to be able to change the templates herself.
The obvious solution should have been an automated 'mail merge' process, but iText can only write rtf files, not read them. (http://www.nabble.com/Re:-Also---merge-fields-in-RTF--p17925932.html) I would have thought find & replace would have been a much simpler process than generating an rtf from scratch, but so far I haven't managed to find a tool that allows this in a straightforward manner.
RtfTemplate seems to have something to do with what I want, but the 'English' documentation is incomprehensible to me.
At this point we are willing to pay money for an off-the-shelf solution if there is one.
It would need to be able to handle inserting images at marked positions in the document, as well.
iText will never be able to do this; it's a write-only API. While RTFs could be read, altered and changed, PDFs can't, and they are really the root of iText - RTFs are just an add-on.
I'd create the RTFs manually (e.g. using Word), and do the replacements with string/text processing. The elements to be replaced could be marked something like [[name]], [[content]], [[image1]] etc. If the templates are to be altered manually, then the merge code would have to validate them before processing.