Consider a report page consisting of header, detail-top, detail-bottom and footer. I have a service which will run an "App". This App will produce what will ultimately appear in the detail-bottom portion of the report. It will store its output in a file system. After App has produced its output (and shutdown), a seperate "Service" will produce the final report "merging" the content produced by the App (the service provides the content of the header, footer and detail-top areas). If I was generating this by hand in Word, I would be in essense inserting a word document into final report document as an object.
I'm trying to identify an appropriate technology to accomplish this.
Requirements include:
- The Service producing the final report will be a Java service runnig on a Linux machine. I will be developing this code.
- The App producing the detail-bottom content could be a Windows (e.g., C#) or Linux (e.g., Java) application. Any number of other developers would be developing this code and interfacing with my service through a SDK I will provide. They are presumed to be skilled developers but I don't know what experience they have with any report generation technology
- The template utilized by the service will give the same look & feel to the finished report regardless of the App that is run, while the App will have total control over the content of the detail-bottom section of the finished report. In other words, if the template allocates a "frame" of say 7Wx5H in the finished report for the detail-bottom section, the App would in essence have a 7x5W blank page to work with.
- The finished report could be multiple pages and the first page could be different than the remaining pages. If the App produces multiple (e.g., 7Hx5W pages), the service would merge each App page into the detail-bottom section of each page of the finished report, thereby leaving the App to deal with pagenation as it would if it was producing the entire report itself.
- At some point I want to provide the end user a UI for managing the layout of the finished report (template).
- I'll don't really care how the App developer produces the content to be inserted into detail-bottom frame and as he is providing me with a finished executable for me to run, I will not provide him with any UI to manage his report layout/content
- The finished report delivered to the end user will be as a PDF.
- Since I'm not sure about the skill set of the App developer and there could be many Apps and developers, I want them to produce output I can accept for merging into the dertail-bottom frame with is well accepted, supported and not overly burdensome to use.
Various technologies suggested to me thus far are:
- Apache FOP (XML-FO)
- DOCX
- itext