我需要根据SQL Server数据库中的信息生成一个高质量的报告,并且我希望从C#内部非常明确地控制布局和外观。
据我所知,我有几个选项已经用于我们公司的各种其他报告:
1)SQL Server的内置报告服务
2)Adobe表单
3)水晶报道
我需要的PDF格式的信息与用户Web浏览器中已经显示的HTML格式的信息直接对应,因此创建打印样式表并将浏览器主体转换为PDF也是一个选项。
这就产生了选项4:
4)JavaScript将HTML转换为PDF(目前我的首选项)
有谁能推荐我应该采取哪种方法,或者更好的替代方案吗?所有的选择看起来都相当可怕。
8条答案
按热度按时间ql3eal8s1#
我用过iTextSharp,效果非常好。它是java库的一个开源. NET端口。对于creating PDFs来说,它 * 从头开始 * 工作得非常好。记住,* 编辑 * PDF总是会对 * 任何 * 库很麻烦,因为PDF是一种 * 输出 * 格式,* 而不是 * 读写格式。
如果HTML相当干净(删除javascript回发、锚点等),iText
HtmlWorker
可以将HTML转换为PDF,如果您喜欢这种方法的话。HTML to PDF in using iTextSharp:
也叫here。
xhv8bpkk2#
使用SSRS,它有一个内置的PDF渲染模式。
ukqbszuj3#
我已经使用了另外两个PDF报告库,并取得了巨大的成功; Active Reports和Telerik Reporting。就我个人而言,当涉及到布局的编程控制等时,我更喜欢后者。
0vvn1miw4#
还可以查看DevExpress报告(非免费的第三方工具):
Overview
Online Demos
文件
6qfn3psc5#
是的,你应该使用最好的工具来获得最好的解决方案。在这种情况下最好的工具可能是SSRS。
但这只是看工具的能力,别忘了看自己的能力!
我的故事:我知道SQL,我知道C#。(都是中级的,我不是Maven。)然后我开始接触SSRS。烧了一次,两次,等等。最后,有一个很好的结果。所以烧手指不是一件错误的事情。但首先尝试通过html到pdf转换器(演示版)拉你的html,看看结果是否符合你的需要。
目前我正在使用两个:
xwmevbvl6#
我建议在本地模式下使用.Net ReportViewer控件(不需要报表服务器)。它可以在webforms和winforms中工作。您可以创建客户端报表(.rdlc)文件(包含所有视觉效果以及数据字段的位置),将其链接到ReportViewer,并提供数据(DataTable或对象集合,只要字段匹配,没关系),客户端模式下支持导出pdf和excel(Word也是?我不记得了)。默认情况下,这些操作是通过控件本身的下拉菜单完成的,但是你也可以通过编程导出为任何支持的格式。最后你会得到一个字节数组,你可以将其推到文件流中。
基本上,您可以获得SSRS的大部分优点,而不需要后端的复杂性。%programFiles%\Microsoft Visual Studio 10.0\ReportViewer中应该有一个ReportViewer文件夹-但也存在2005和2008版本。请查看http://gotreportviewer.com/
chhkpiq47#
我认为第四种选择是最好的。在这种情况下,你不需要改变HTML页面的布局或PDF的布局,如果其中一个已经改变。它也是更方便的通过HTML比编程通过C#:)
看看WebToPDF.NET,它是一个用C#编写的.NET组件,可以将HTML转换为PDF。该转换器支持HTML 4.01、XHTML 1.0、XHTML 1.1和CSS 2.1,包括分页符、表单和链接。它通过了所有W3C测试(BIDI除外)。
e7arh2l68#
你可以使用Fast Report这是一个很好的工具,我有一个免费的版本