-1

有一个包含数百个数据项的数据列表(假设每个数据项是一个客户),以及一个预定义的word文档作为模板,要求是 - 对于每个数据项,将相应的数据填充到模板字段中,并生成一个只读的PDF文件结果。

首选平台是带有 C# 的 ASP.NET。

我找到了两个解决方案:

  1. 将 word 文档转换为 PDF 表单,并使用 iTextSharp 填充表单域。但是创建具有正确格式(字体、布局等)的 PDF 表单是一项艰巨的工作,并且当系统用户想要添加新模板时需要特定的工具和新技能(除非 PDF 表单总是由开发人员创建)。

  2. 在word文件中添加文本占位符,程序可以读取word文件,替换文本,转换成PDF。但我不确定应该使用哪些组件。

我想就这个问题得到一些建议。tks。


更新 20130416:

经过一番搜索和实验,我的结论如下:

  1. 客户端解决方案:使用Microsoft.Office.Interop.Word(Office2007+plugin或Office2012)读取数据,转换为pdf等。但是这种方法运行在服务器端可能不安全。

  2. 服务器解决方案:

    • 制作 PDF 表单,并使用 iTextSharp 填写表单字段。缺点上面已经说了。
    • 制作 HTML 模板,替换字段占位符,使用 iTextSharp+XMLWorker 将 HTML 转换为 PDF。难点在于手动创建HTML模板并优化PDF效果。
    • MS SharePoint Office 自动化服务是基于 MS Office 的服务器解决方案,也许这种方法会更简单,但它需要许可证和 SharePoint 服务器成本。

最后,我为这个请求选择了 HTML 模板解决方案。QED。

4

3 回答 3

0

对于第二个选项,您可以使用支持占位符替换生成 PDF的iTextsharpAspose,它支持基于 MSWord 和 Openoffice 模板创建文件,这对于不想购买 MSWord 仅创建模板的用户很有用。

于 2013-04-10T08:25:37.280 回答
0

另一种选择是使用 ASP.NET 的 Tx 文本控件。他们有个

邮件合并功能 ,允许您将数据填充到 word 模板中。

合并后的文档可以很容易地保存为 pdf。

于 2013-04-10T08:30:47.543 回答
0

另一种选择,您可以使用 nustache 模板,用列表数据填充它们,然后使用 ItextSharp 中的 xmlworker 渲染为 pdf。

于 2015-05-06T08:28:12.140 回答