什么是好的企业级PDF生成解决方案?

7

我想找一个替代Crystal Reports的工具。哦,我是多么讨厌CR。

理想情况下,我想找到一个有以下特点的PDF生成工具:

  • .NET中坚实的API
  • 速度:我们希望每天能够生成1000-2500个PDF文件
  • 所见即所得编辑器
  • 图像文件(徽标)的热链接
  • 良好的孤行控制
  • 合理的排版控制(字距调整)
  • 可重复使用的字段(如银行对账单中看到的)
  • 易于从XML数据、数据集或直接SQL查询中导入数据
  • 大小:最终PDF文件的大小很重要,因为这些文件最终会进入数据库
  • 价格:免费并不总是好的选择;支付合适的解决方案比让开发人员基于几乎正确的解决方案来构建正确的解决方案更好

所见即所得编辑器尤其重要。我希望能够将工具交给我的设计师,让他们构建文档并将数据库字段放置在应该放置的位置,然后将其还给我,以便我可以将其链接到数据库。

类似于这个问题,但我觉得那个问题太模糊了

8个回答

2

JasperReports不能满足您的需求吗?

(如果您的报表始终包含相同类型的数据,则可以使用iText(Sharp)。您需要花费一些时间通过代码调整设计 - 这可能有点繁琐,但之后只需要导入数据即可)


1

我认为你这里有两个不同的东西:

  1. 一个PDF编辑器。最好使用Acrobat。
  2. PDF服务器技术。这取决于你的其余技术栈是什么样子,但我们成功地使用了PDFSharp。如果你没有做太多操作或者它更通用,我认为Adobe制作了“Adobe Distiller Server”。你应该看看两者。

我认为我们可以将PDF字节数组直接存入数据库中。 - jcollum
我从未听说过有人使用Acrobat和数据库中的数据来生成银行对账单类型的报告。并不是说这是不可能的,但似乎不是Acro擅长的领域。 - jcollum
jcollum:你说你想要一个设计师来设计PDF并创建数据输入的字段。你可以混合使用工具,Acrobat适合设计,它不必是完成其余工作的工具。我认为你不会找到一个完美解决方案,能够很好地完成所有工作。 - ryber

1
DevExpress XtraReports是一款出色的报表生成工具,当然可以保存为PDF格式。我在我所工作的一个程序中使用它来生成医疗报告。你可以通过编程方式或者使用他们的设计时图形界面来构建报表(他们还有一个面向最终用户的图形界面,可以创建/编辑报表)。

http://devexpress.com/Products/NET/Reporting/


哇,看起来非常有趣。它如何处理孤行和断页控制?几分钟前我遇到了CR在地址块中间生成分页的问题。唯一的解决方案是将地址放入自己的文本块中。很烦人。 - jcollum
关于孤行控制方面,我需要在Google上搜索一下,但您能否解释一下您的确切意思。我可能可以或者可能无法回答,但是它们的支持论坛和知识库非常全面。我从来没有注意到CR会导致分页,也许是因为我的不是真正的CR。您可以在可用的任一打印前事件中对字段进行一次清理。 - msarchet
当文档中有地址时,窗口孤儿问题非常明显。如果页面的某些部分具有重复器(详细部分?),那么该地址的一部分有时会推到下一页。在地址中间插入分页是不可接受的。使用CR,您必须将地址放在自己的文本块中以控制其保持在一起,但是没有像InDesign中那样的文本流链接。因此,您需要花费大量时间移动文本块以(希望)控制您的孤儿。这是一个繁琐的过程,我想摆脱它。 - jcollum
现在明白了。我见过的处理方式是,它会调整详细信息部分的大小以适应地址,如果一页放不下,您可以选择让其继续在新页面上显示,或者告诉它保持详细信息部分在一起。这意味着,如果某个部分需要的空间超过了可用空间,它将移动到新页面,因此不会出现文本孤立的情况。 - msarchet

0

既然你在使用Windows系统,那么SQL Server Reporting Services 是一个非常棒且免费的解决方案。你可以使用Visual Studio或单独的设计工具进行所见即所得的设计,并生成PDF以及其他类型的报告,例如Excel。

一旦报告设计完成,它只是一个XML文件,驻留在报告服务器上,并通过SOAP或URL在C#应用程序中调用。

很有可能你已经拥有了所有需要使用的东西。


我听说 SSRS 中的寡妇和孤行控制很差。我怀疑根本没有排版控制。今天我花了很多时间来解决 CR 的可怕排版控制问题:由于某种原因,它在左对齐文本中会产生半个大小空格而不是应该有的全尺寸空格。 - jcollum
虽然它不是InDesign,但我们使用它来复制印刷材料,如证书,并取得了良好的效果。 - Todd Moses
据我所知,SSRS比Crystal更好,但也有一些相同的限制。它是一个不错的选择,但我希望有更好的选择。 - jcollum

0

iTextSharp,非常强大且越来越受欢迎。我过去曾经使用过它并推荐它。它是开源的,具有出色的功能,如合并字段等,可用于报告。


"WYSIWYG编辑器尤为重要"和".NET中的坚实API": 我大约9个月前使用过itextsharp,发现其API混乱不堪。我从未听说过它有WYSIWYG编辑器。 - jcollum

0

我无法确定你是否认为这解决了我的问题,还是在问一个问题。 - jcollum

0
我不确定iTextSharp是否支持此功能,但我确信它曾经/现在有一个从HTML表示生成PDF的功能。如果您想要强大的功能、成本效益和所见即所得的界面,您真的不能错过您最喜欢的IDE来设计HTML页面,并从库中以PDF格式输出。

我理解你的观点,但我更喜欢一个像 MS Word 一样简单易用的编辑器。理想情况下是这样,但可能不太可能实现。 - jcollum
如果你想要一个最终用户使用场景,可能会发现很困难。CR是邪恶的,但其他替代方案也是如此。 - pms1969
同意。我可能在寻找一只白鲸。 - jcollum

0

Prince XML(http://www.princexml.com/)和 ABCPdf.net(http://websupergoo.com/linktous.htm)都可以实现这个功能。个人更喜欢ABCPDF,因为它是一个托管的.Net组件,而不是一个可疑的.exe包装。WMD编辑器用于内容。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接