从C#中的数据库生成PDF报告,特别是ASP

本文关键字:报告 PDF 特别是 ASP 数据库 | 更新日期: 2023-09-27 18:01:13

我需要根据SQL Server数据库中的信息生成高质量的报告,并且我希望从C#内部非常明确地控制布局和外观。

据我所知,我有几个选择已经被用于我们公司的各种其他报告:

1( SQL Server的内置Reporting Services

2( Adobe Forms

3( Crystal Reports

作为PDF,我需要的这些信息与用户web浏览器中已经显示的HTML直接相似,因此创建打印样式表并将浏览器主体转换为PDF也是一种选择。

因此,这创建了选项4:

4( JavaScript将HTML转换为PDF(我现在更喜欢(

有人建议我应该采取哪种方法,或者更好的选择吗?所有的选择似乎都很可怕。

从C#中的数据库生成PDF报告,特别是ASP

我使用过iTextSharp,效果非常好。它是一个java库的开源.NET端口。它非常适用于从头开始创建PDF。请记住,编辑PDF在任何库中都会很麻烦,因为PDF是输出格式,而不是读写格式。

如果您的HTML相当干净(删除javascript回发、锚点等(,iText HtmlWorker可以将HTML转换为PDF,如果您喜欢这种方法的话。

使用iTextSharp:时的HTML到PDF

Document doc = new Document(PageSize.A4);
HTMLWorker parser = new HTMLWorker(doc);
PdfWriter.GetInstance(doc, Response.OutputStream);

也在这里。

使用SSRS,它有一个内置的PDF渲染模式。

我使用了另外两个PDF报告库,并取得了巨大成功;主动报告和Telerik报告。就我个人而言,当涉及到布局的程序控制时,我更喜欢后者。

还可以看看DevExpress Reporting(非免费第三方工具(:

概述

在线演示

文档

是的,您应该使用最好的工具来获得最好的解决方案。在这种情况下,最好的工具可能是SSRS。

但这只是看工具的功能。别忘了审视自己的能力!

我的故事:我了解SQL,我了解C#。(两者都是中级,我不是大师。(然后我把手放在SSRS上。然后烧掉它们,一次,两次,等等。最后,有一个不错的结果。所以烧手指并不是一件错误的事情。但首先尝试通过html到pdf转换器(演示版(提取html,看看结果是否符合您的需求。

目前我正在使用两者:

  • SSRS用于创建发票,因为金额必须从一页传送到下一页
    • Winnovive生成只需要页码的文档

我建议在本地模式下使用.Net ReportViewer控件(不需要报表服务器(。它可以在webforms和winforms中使用。您可以创建一个客户端报告(.rdlc(文件(其中包含所有视觉效果以及数据字段的位置(,将其链接到ReportViewer,并提供数据(DataTable或对象集合,只要字段匹配,都无关紧要(。在客户端模式下,它支持导出到pdf和excel(还有Word?不记得了(。默认情况下,这些操作是通过控件本身的下拉列表完成的,但是您也可以通过编程导出为任何支持的格式。您最终会得到一个可以插入文件流的字节数组。

基本上,您可以获得SSRS的大部分好部分,而不需要所有后端复杂性。%programFiles%''Microsoft Visual Studio 10.0''ReportViewer中应该有一个ReportViewer文件夹,但也存在2005和2008版本。退房http://gotreportviewer.com/

我认为第四个选项是最好的。在这种情况下,您不需要更改HTML页面的布局或PDF的布局,如果其中一个已经更改。通过HTML进行漂亮的设计也比通过C#编程更方便:(

看看WebToPDF.NET,它是一个用C#编写的.NET组件,可以将HTML转换为PDF。该转换器支持HTML 4.01、XHTML 1.0、XHTML 1.1和CSS 2.1,包括分页符、表单和链接。它通过了所有W3C测试(BIDI除外(。

你可以使用快速报告,这是一个很好的工具,我有一个免费版本