我尝试阅读相关问题但没有找到任何新工具。 这是我的问题:我从我的应用程序中的数据生成一些保险的PDF文件。像合同,证书,账单等等。保险人员给我模板文件为.docs,其中包含字段,我必须用我的数据填写字段并生成PDF。相当简单的问题。
我没有言语,我在java摇摆。
我不想在报告系统(如BIRT或iReport)中重新创建单词doc,因为它很长,很痛苦,而且它们通常甚至不能像单词那样做同样的布局。
我尝试在.odt(OpenOffice)中转换.doc,更改表单字段中的字段,将PDF格式生成为PDF格式(非装饰禁用字段,看起来像普通文本)并使用iText进行归档,但是我得到了便宜的结果(我无法在字段中选择字体,宽度是固定的,我无法在字段和周围文本中正确排列基线等。)
您是否有想法/工具可用于填写这些字段而无需在模板编辑器中重新创建doc文件?
这个问题非常开放,我正在寻找比你做作业更多的想法。
答案 0 :(得分:3)
有免费的应用程序来创建pdf表单,是否可以教保险人员使用它并为您的应用程序而不是单词模板提供pdf表单模板?我参与了一个成功使用这种方法的应用程序。用户的工作流程变为:
然后在服务器上替换占位符(如$ {context.person.firstname}),pdf“flattened”(将表单字段转换为文本)并返回填写的pdf。我们使用了一组定义的占位符,用户可以从中选择,并在需要时添加更多占位符。这是一个很好的权衡,用户希望使用他们的选择应用程序进行布局,我们希望避免多种格式(和Office)
如果我没记错,我们使用Scribus作为pdf表单编辑器
答案 1 :(得分:2)
有点晚了,但是如果有人正在寻找 - 试试Docmosis。它使用文档作为模板(doc或odt),可以从Java填充和控制文档。它可以吐出pdf,doc,odf等。它是Darknights解决方案的产品化版本(上图) - 它是免费的!
答案 2 :(得分:1)
我已经创建了一个完整的应用程序(实际上它被移植了3次)来解决这种情况,其中一个版本使用OpenOffice,它有.Doc模板(带有bookmakrs),然后应用程序就像一个“服务器” “它有自己的内置文件夹观察程序,它将通过XML处理需要并使用.doc / .dot模板渲染PDF文档。
可悲的是,这是在服务器环境中运行的(并导致问题,我从未设法让无头模式工作)
但至少在理论上它起作用。
从查看Open Office API开始,您应该能够更改字体/样式/大小等,还有为什么在使用书签时使用字段呢?这允许你跳转到预定义的光标(命名),然后插入任何东西(例如表格,图片,文本等)
优秀的部分是在样式和修改模板方面,你需要它的所有单词/ OpenOffice。
不知道是否有帮助
<强> Darknight 强>
答案 3 :(得分:1)
如果您可以提取数据(可能是POI?),则可以使用IText创建PDF。
答案 4 :(得分:1)
您可以将doc文件转换为rtf文件:这些文件使用显式“标记”来定义样式(如HTML):“{\ b bold test} {\ i italic test}”,例如。
因此,该文件非常容易被人理解。
在此文件中,您可以放置“标签”,由您选择的字符分隔:例如“%% first_name %%”。
在java中,您可以根据您的信息动态替换这些标签。要完成,您只需将此rtf文件转换为pdf文件(API,虚拟打印机......)。
使用此方法,您可以使用任何“标记”格式替换rtf格式,这种格式很容易理解。