【发布时间】:2016-05-31 22:23:20
【问题描述】:
我正在开发一个 MVC5 Web 应用程序,我需要从任何数据库表生成报告。用户将选择他想要打印的表格,然后选择要包含在报告中的列,系统应该简单地显示一个带有数据的网格(表格)。
在 HTML 表格中显示数据当然不是问题,我还设法使用数据生成 Excel 文件,供用户下载。
但是,我还需要提供报告的可打印形式,例如 PDF 或其他不需要特殊软件(例如 MS Office)即可打开和打印的格式。
起初我认为我应该选择 ReportViewer 控件,但问题是我的报告是动态的,因为用户选择了他需要的列。我看到其他人尝试生成报告定义文件,但我希望有一些不那么难看的东西。
有没有办法获取一个 HTML 表格,它可以很好地计算单元格的大小,并从中创建一个 PDF?如果列太多,我当然不介意将报告水平拆分为多个页面。
【问题讨论】:
-
既然你已经有了 HTML,我建议你看看 iText 的 XMLWorker:developers.itextpdf.com/examples/xml-worker/html-tables。这些示例是用 Java 编写的,但对于 C# 来说应该足够明显。 iTextSharp 是 iText 的 .NET 端口。披露:我在 iText Software 工作。
-
有趣。我能以某种方式水平处理柱子吗?我的意思是,如果一页中的列太多,我可以将其中的一些移到下一页吗?
-
@kagelos 我有一个解决方案可以满足您的需求,但它需要 jquery。那我可以用jquery给你解决方案吗?
-
当然,jQuery 没问题。
标签: c# asp.net-mvc-5 report pdf-generation xlsx