为每个数据项生成基于Word文档的PDF

时间:2013-04-10 08:19:56

标签: c# asp.net pdf ms-word pdf-generation

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

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

我找到了两个解决方案:

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

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

  3. 我想就这个问题得到一些建议。 TKS。


    更新20130416:

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

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

      < / LI>
    2. 服务器解决方案:

      • 制作PDF表单,并使用iTextSharp填写表单字段。上面提到了缺点。
      • 制作HTML模板,并替换字段占位符,并使用iTextSharp + XMLWorker将HTML转换为PDF。困难在于手动创建HTML模板并优化PDF效果。
      • MS SharePoint Office Automation Service是基于MS Office的服务器解决方案,也许这种方法会更容易,但需要许可证和SharePoint服务器成本。
    3. 最后,我为此请求选择了HTML模板解决方案。 QED。

3 个答案:

答案 0 :(得分:0)

对于第二个选项,您可以使用支持iTextsharpAsposeplaceholder replacementgeneration PDF,它支持基于MSWord和Openoffice的模板创建文件对于不想仅购买MSWord以创建模板的用户非常有用。

答案 1 :(得分:0)

另一种选择是使用Tx Text Control for ASP.NET。他们有一个

mailmerge feature,可让您将数据填充到单词模板中。

合并的文档可以轻松保存为pdf。

答案 2 :(得分:0)

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