我要求能够在我们的(ASP.net)应用程序中生成PDF。我们需要满足以下要求:
该文本将在很大程度上是动态的,必须以编程方式添加。
理想情况下,我们希望将这些生成的文档基于我们设计师提供的PDF模板。
某些部分/页面可能会或可能不会显示,具体取决于某些条件 - 理想情况下,当内容被移除时,我们希望内容“向上流动”以填充空间。
根据某些条件,某些页面可能需要重复。
某些PDF模板将无法控制(我们正在填充第三方提供的申请表),因此能够读取空白PDF并填充它将会很好。
我看过iTextSharp并且似乎做了大部分这些事情(即我可以拍摄PDF,编辑它以包含我们需要填充数据的表单字段,然后使用iTextSharp作为模板读取它填充数据),但是,我不知道如何去挖掘整个部分和/或重复页面。
我在这里寻找的是来自任何处于类似情况的人的一些建议。
这里的小更新,我们使用iTextSharp - 它是一个强大的工具,但确实需要一些学习,但它快速,轻便,并且正是我们想要它做的。
...然而
我会指出最新版本不再是免费的(如啤酒) - 许可证不允许商业用途。因此,我们现在拥有许可版本,但它的价格并不便宜(而且它们没有公布价目表)。
答案 0 :(得分:5)
有各种商业组件可以做到这一点。请看:PDFLib(http://www.pdflib.com/),高大的组件(http://www.tallcomponents.com/)等
我使用的是Tall组件的产品,可以推荐它们。
其他一些要贵得多。
你提到的ITextSharp相当不错,可以用来添加/删除外部页面,你可以通过省略它们或者用占位符页面替换它们来隐藏整个页面。 iText可以使用现有的PDF文件或创建空白页。
根据我的个人经验,我刚刚将图像和文本放入现有页面,并在需要表格数据时添加由报告工具生成的页面。
HTH
答案 1 :(得分:5)
我会使用iTextSharp。我根据不同的模板创建各种PDF文件,iText对我来说是最好的。它是一个非常强大的控件,可以以任何方式操作pdf文件。
我不确定iText能否满足您的第三个要求。我知道它可以从html文件创建一个pdf。也许使用Tomas发布的内容并使用iText创建pdf。
答案 2 :(得分:2)
为什么需要pdf格式的模板文件?使用您想要的动态,它是报告模板的错误格式。使用也以pdf格式输出的报告软件。您的设计人员可以使用GUI轻松创建模板。您将在stackoverflow上找到许多报告解决方案。
答案 3 :(得分:1)
对于像这样的项目,我们已经使用http://www.dynamicpdf.com/并对结果感到满意。他们有一个PDF WYSIWYG设计器工具,您可以使用它来构建PDF的布局模板,以及基于字段到列映射将模板与数据合并的工具。这节省了手动编码给定PDF的每个元素的时间。它支持页眉和页脚,并处理分页符的复杂性。
答案 4 :(得分:0)
我会考虑使用从模板创建HTML文件并使用Prince将其转换为PDF。 Prince非常灵活,从模板创建HTML文件比直接创建PDF文件容易得多。