【问题标题】:How to write a simple designer for printed reports如何为打印报告编写一个简单的设计器
【发布时间】:2011-04-30 22:18:17
【问题描述】:

我目前有几份从我的表单应用程序打印的报告。 然而,仅使用内置的 .NET 打印方法构建打印报表非常繁琐。即使只是在几页上打印一个带有一点格式的简单表格也需要花费几个小时(如果它看起来不错的话)。

我需要的是一个所见即所得的布局设计器,所以我想写一个。 它不应该适用于最终用户,但对于作为开发人员的我来说,它只是要创建具有各种排列/字体/图像/格式等的报告的布局,而不必通过试用来做到这一点& 代码错误(并重新启动应用程序无数次)。

所以我的具体问题:

  1. 我将使用什么作为画布来编辑和显示报告?我在打印文档上绘制的图像控件/位图?有没有更好的办法?

  2. 在表单上绘图是否与在打印页面上绘图相当?分辨率打印机与屏幕的差异如何?

  3. 如何获得真正的所见即所得?我应该获取打印机设置并创建具有相同分辨率的画布吗?还有什么要考虑的吗?

我知道周围有报表设计者,但我认为有时了解您所使用的基本工作原理会很好,并且实施它们对我来说是最好的方法。

我知道这不是一个答案总是 B 的特定问题 A,但如果是这样,我会很快在 Google 中找到答案。

提前致谢!

【问题讨论】:

  • 我知道abt水晶,但我想写我自己的设计师。特别是因为要独立于它附带的任何许可条款。

标签: c# printing report


【解决方案1】:

关于设计所见即所得的编辑器我不能说太多,但我已经编写了一些自定义的内部报告引擎供我们的开发团队使用。

我创建报告的主要方式有两种。第一种是使用PDFsharp(MIT 许可)手动布局页面,不适合胆小的人。

第二个是使用Winnovative's HTML to PDF library (not free, but royalty-free),它使用当前安装的IE版本进行布局并输出PDF。看起来他们最近发布了一个名为EVO PDF 的新版本,我以前从未使用过它。*

对于 HTML 到 PDF 的解决方案,它支持 JavaScript,因此您可以添加来自 JavaScript 库的图表,例如 flotjqplot

*我不隶属于 Winnovative。

【讨论】:

    【解决方案2】:

    您可能希望节省时间并将 Visual Studio HTML 设计器用作您的所见即所得编辑器。

    我目前正在做的是使用 ASP.NET MVC 3 作为一个简单的报告引擎。您可以使用 MVC 模式真正分离报表数据源(模型)和呈现(视图),同时使用 Visual Studio 作为报表设计器。

    从您的应用程序中,您可以使用报告可选参数轻松调用您的操作。例如:

    http://localhost/Report/Customer/Orders/1

    您只需从 WebClient 的 DownloadString 方法获取返回字符串,即可生成报告。

    使用 HTML 有一些缺点,主要是很难知道页面何时会中断,但通过在视图中使用代码,您可以计算重复项目的数量并添加 CSS 中断页面并重新启动表格下一页的标题。

    您可以实现从图形到表格的任何内容,甚至可以生成指向其他报告的链接。

    HTH。

    【讨论】:

      【解决方案3】:

      在 Windows 窗体中打印报告 http://msdn.microsoft.com/en-us/library/ms996472.aspx

      【讨论】:

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