考虑一个由页眉、详细信息顶部、详细信息底部和页脚组成的报告页面。我有一项将运行“应用程序”的服务。此应用程序将生成最终将出现在报告的详细底部部分中的内容。它将其输出存储在文件系统中。在 App 产生输出(和关闭)后,单独的“服务”将产生最终报告“合并”由 App 产生的内容(服务提供页眉、页脚和细节顶部区域的内容)。如果我在 Word 中手动生成此文件,我实质上是将 Word 文档作为对象插入到最终报告文档中。
我正在尝试确定一种合适的技术来实现这一目标。
要求包括:
- 生成最终报告的服务将是在 Linux 机器上运行的 Java 服务。我将开发此代码。
- 产生详细底部内容的应用程序可以是Windows(例如,C#)或Linux(例如,Java)应用程序。任何数量的其他开发人员都将开发此代码并通过我将提供的 SDK 与我的服务进行交互。他们被认为是熟练的开发人员,但我不知道他们对任何报告生成技术有什么经验
- 服务使用的模板将为完成的报告提供相同的外观和感觉,而不管运行的应用程序如何,而应用程序将完全控制完成报告的详细底部部分的内容。换句话说,如果模板在完成的报告中为详细信息底部部分分配了一个 7Wx5H 的“框架”,则应用程序本质上将有一个 7x5W 的空白页可供使用。
- 完成的报告可能是多页,第一页可能与其余页不同。如果 App 生成多个(例如,7Hx5W 页面),则服务会将每个 App 页面合并到已完成报告的每个页面的 detail-bottom 部分,从而让 App 处理分页,就像它正在生成整个报告一样报告自己。
- 在某些时候,我想为最终用户提供一个 UI 来管理完成的报告(模板)的布局。
- 我并不真正关心应用程序开发人员如何生成要插入到细节底部框架中的内容,并且由于他为我提供了一个完成的可执行文件供我运行,我不会为他提供任何 UI 来管理他的报告布局/内容
- 交付给最终用户的完成报告将以 PDF 格式。
- 由于我不确定应用程序开发人员的技能组合,并且可能有许多应用程序和开发人员,我希望他们产生我可以接受的输出,以便合并到 dertail-bottom 框架中,并且得到很好的接受、支持且不会过于繁琐使用。
迄今为止向我推荐的各种技术是:
- 阿帕奇 FOP (XML-FO)
- DOCX
- 文本