2010-01-26 128 views
11

我有一个要求,能够在我们的(ASP.net)应用程序中生成PDF。我们需要满足以下要求:从模板动态生成PDF

  1. 该文本将基本上是动态的,必须以编程方式添加。

  2. 理想情况下,我们希望将这些生成的文档基于我们的设计人员提供的PDF模板。

  3. 根据特定条件,某些部分/页面可能会或可能不可见 - 理想情况下,我们希望内容在向上“流动”时填充空间,以便删除某些内容。

  4. 某些页面可能需要重复,具体取决于特定条件。

  5. 某些PDF模板将不在我们的控制范围之内(我们正在填充由第三方提供的应用程序表单),因此能够读取空白PDF并填充它将会很好。

我看iTextSharp的,似乎做大部分的这些东西(即我可以带一个PDF,编辑它,包括我们需要填写数据,然后使用iTextSharp的阅读,在表单字段作为模板并填充数据),但是,我不确定如何去隐藏整个部分和/或重复页面。

我在这里寻找的是来自任何处于类似情况的人的一点建议。


小更新在这里,我们就用iTextSharp的 - 它是一个强大的工具,但它需要一些学习的,但它的快速,重量轻,不正是我们想要做的事。

但是......

我想指出的是,最新的版本是不再真的是免费的(如啤酒) - 该许可证不允许商业用途。因此,我们现在有一个行货版本,但它并不令人震惊地便宜(并且他们不公布价目表)。

+0

关于基于模板的报告,请参阅此文章(http://www.nopcommerce.com/boards/t/15568/feature-request-template-based-reporting-system.aspx)。这是他们正在讨论的[html to pdf converter](http://www.hiqpdf.com)。 – 2012-03-09 09:24:04

回答

5

我会使用iTextSharp。我根据不同的模板创建各种PDF文件,iText为我效力最好。它是一个非常强大的控件,可以以任何方式处理PDF文件。

我不确定iText能否处理您的第三项要求。我知道它可以从HTML文件创建一个PDF。也许使用Tomas发布的内容并用iText创建PDF。

+0

iTextSharp不适用CSS ...我想用边框制作表格,但它不起作用....同样背景色,不起作用... – 2016-04-22 04:53:29

5

有这样做的各种商业组件。看看:PDFLib(http://www.pdflib.com/),高组件(http://www.tallcomponents.com/)等

我已经使用高组件的产品,并可以推荐他们。

其他一些是更昂贵的。

如上所述,ITextSharp非常好,可以用来添加/删除外部页面,在这种情况下,您可以通过忽略整个页面或用占位符页面替换它们来隐藏整个页面。 iText可以使用现有的PDF文件或创建空白页面。

根据我个人的经验,我只是将图像和文本放入现有页面,并在需要表格数据时添加由报告工具生成的页面。

HTH

+0

嗯。但是,如果要隐藏的内容是页面内的某个部分,则会变得更加困难。 – Paddy 2010-01-26 16:55:22

+0

您可以添加一个不包含该部分的页面,然后以编程方式调整另一个页面(或两者),然后在需要时替换它。 – 2010-01-26 17:18:06

0

我会考虑使用从模板创建HTML文件,并把它们转换成PDF与Prince。王子非常灵活,从模板创建HTML文件比直接创建PDF文件容易得多。

+1

我们目前正在做这样的事情(使用activePDF),它有点慢。 – Paddy 2010-01-26 15:56:37

+0

'我们提供Prince的非商业用途的免费许可证。此许可证为生成的PDF文件的第一页添加了一个小徽标.' – Thomas 2016-07-05 13:58:59

2

为什么需要PDF格式的模板文件?使用你想要的动态报告模板是一种不好的格式。使用也可输出为pdf的报告软件。您的设计师可以使用GUI轻松创建模板。你会在stackoverflow上找到很多报告解决方案。

1

我们已经使用http://www.dynamicpdf.com/,对于这样的项目并且对结果感到满意。他们有一个PDF WYSIWYG设计器工具,您可以使用它来构建PDF的布局模板,以及基于字段到列映射将模板与数据合并的工具。这样可以节省数小时手动编码给定PDF的每个元素。它支持页面页眉和页脚,并处理分页复杂性。

+0

这不是免费软件 – luka 2017-10-16 11:32:56