【问题标题】:Generating PDF Report from database in C#, specifically ASP从 C# 中的数据库生成 PDF 报告,特别是 ASP
【发布时间】:2011-07-04 20:13:01
【问题描述】:

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

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

1) SQL Server 内置的 Reporting Services

2) Adob​​e 表单

3) 水晶报表

我需要的 PDF 信息直接与用户 Web 浏览器中已显示为 HTML 的内容平行,因此创建打印样式表并将浏览器正文转换为 PDF 也是一种选择。

所以这会创建选项 4:

4) JavaScript 将 HTML 转换为 PDF(我目前的偏好)

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

【问题讨论】:

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


【解决方案1】:

我使用iTextSharp 取得了很好的效果。它是一个 Java 库的开源 .NET 端口。它非常适合creating PDFs 从头开始。请记住,编辑 PDF 总是会使用 any 库,因为 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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      我已经成功使用了另外两个 PDF 报告库; Active ReportsTelerik Reporting。当涉及到布局的编程控制等方面,我个人更喜欢后者。

      【讨论】:

        【解决方案4】:

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

        Overview

        Online Demos

        Documentation

        【讨论】:

          【解决方案5】:

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

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

          【讨论】:

            【解决方案6】:

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

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

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

            目前我正在使用两者:

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

            【讨论】:

              【解决方案7】:

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

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

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多