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

时间:2011-07-04 20:13:01

标签: c# asp.net pdf reporting-services

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

我知道的几个选项已经用于我们公司的其他各种报告:

1)SQL Server内置的Reporting Services

2)Adobe Forms

3)Crystal Reports

我需要的PDF格式直接与用户的网页浏览器中显示的HTML格式相同,因此创建打印样式表并将浏览器正文转换为PDF也是一种选择。

所以这会创建选项4:

4)JavaScript将HTML转换为PDF(我此时的偏好)

是否有人建议我应采取哪种方法,或者更好的替代方案?所有的选择看起来都很可怕。

7 个答案:

答案 0 :(得分:2)

我使用iTextSharp效果非常好。它是java库的开源.NET端口。它适用于creating PDFs 从头开始。请记住,使用任何编辑 PDF总是很烦人,因为PDF是输出格式,不是读取 - 写格式。

如果您的HTML相当干净(删除javascript回发,锚点,...),iText HtmlWorker可以将HTML转换为PDF,如果您更喜欢该路线。

HTML to PDF in using iTextSharp

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

here

答案 1 :(得分:1)

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

答案 2 :(得分:1)

我使用了另外两个PDF报告库并取得了巨大成功; Active ReportsTelerik Reporting。就个性化控制布局而言,我个人更喜欢后者。

答案 3 :(得分:1)

另请参阅DevExpress报告(非免费第三方工具):

Overview

Online Demos

Documentation

答案 4 :(得分:1)

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

基本上,如果没有所有后端复杂性,您将获得SSRS的大部分优点。 %programFiles%\ Microsoft Visual Studio 10.0 \ ReportViewer中应该有一个ReportViewer文件夹 - 但是2005和2008版本也存在。查看http://gotreportviewer.com/

答案 5 :(得分:0)

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

但这只是关注该工具的功能。 不要忘记看看你自己的能力!

我的故事:我知道SQL,我知道C#。 (两个中级,我不是大师。) 然后我把手放在SSRS上。并烧掉它们,一次,两次,等等。 最后,结果很好。所以灼烧你的手指并不是一件坏事。 但首先尝试通过html将html拉到pdf转换器(演示版),看看它是否满足您的需求。

目前我正在使用两者:

  • 用于创建发票的SSRS,因为金额必须从一个页面传输到下一个页面

答案 6 :(得分:0)

我认为第四种选择是最好的。在这种情况下,如果其中一个已更改,则无需更改HTML页面的布局或PDF的布局。 通过HTML制作漂亮的设计比通过C#:)以编程方式进行设计更方便

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