Silverlight打印与报表生成指南
立即解锁
发布时间: 2025-08-26 00:48:29 阅读量: 14 订阅数: 46 AIGC 


Silverlight 4商业应用开发指南
### Silverlight 打印与报表生成指南
在 Silverlight 应用程序中,实现打印和报表功能是常见的需求。下面将介绍几种不同的解决方案以及具体的实现方法。
#### 1. 不同报表工具介绍
| 工具名称 | 特点 | 价格 |
| --- | --- | --- |
| Perpetuum 的 Silverlight Viewer for Reporting Services | 若使用 SQL Server Reporting Services 生成报表,这是一个可行的选择。它还拥有自己的报表设计器和引擎,带有名为 Report Sharp - Shooter for Silverlight 的 Silverlight 查看器控件。 | 单个许可证 $500 |
| Telerik 的 Telerik Reporting | 有 Silverlight 报表查看器,可在 Silverlight 应用程序中查看其报表引擎生成的报表,但在编写本文时,需先导出为 PDF 才能打印。 | 单个许可证起价 $399 |
| DevExpress 的 XtraReports Suite | 其 Silverlight 报表查看器可在 Silverlight 应用程序中查看和打印由其报表引擎生成的报表。 | 含完整源代码单个许可证 $499.99,不含 $349.99 |
| First Floor Software 的 Document Toolkit + Aspose Converter | Document Toolkit 可在 Silverlight 应用程序中显示 XML Paper Specification (XPS) 文档。可使用 Aspose.Words for .NET 自动生成 XPS 文档。 | Document Toolkit 单个许可证 €299,Aspose.Words for .NET 单个许可证起价 €899 |
#### 2. Office 集成使用 COM
通过在具有提升信任的情况下在浏览器外运行应用程序,可访问 COM,从而与用户机器上安装的各种 Office 应用程序(如 Word、Excel 等)进行交互,使 Silverlight 应用程序直接在 Word 或 Excel 中生成报表,供用户打印。
#### 3. 选择报表策略
常见的两种报表场景如下:
- 使用 Silverlight 的打印功能打印屏幕。
- 在服务器上使用报表工具/引擎生成 PDF 报表,并在客户端显示,可使用 Adobe Reader 插件的打印功能进行打印。
#### 4. Silverlight 打印功能
Silverlight 4 的打印功能更适合打印屏幕。其打印功能围绕 `PrintDocument` 类,该类采用基于事件的模型,有三个事件可响应:
- `BeginPrint`:可用于初始化要打印的内容。
- `PrintPage`:用于将页面内容发送到打印机,每次打印页面时触发。
- `EndPrint`:打印完成或发生错误。
以下是使用 `PrintDocument` 类进行打印的示例代码:
```csharp
PrintDocument pd = new PrintDocument();
pd.BeginPrint += Document_BeginPrint;
pd.PrintPage += Document_PrintPage;
pd.EndPrint += Document_EndPrint;
pd.Print("Silverlight 4 Printing Demo");
```
事件处理方法接收 `PrintPageEventArgs` 对象,该对象有四个属性:
- `HasMorePages`
- `PageMargins`
- `PageVisual`
- `PrintableArea`
例如,要打印名为 `ProductDataForm` 的 `DataForm` 控件,`PrintPage` 事件处理程序如下:
```csharp
private void Document_PrintPage(object sender, PrintPageEventArgs e)
{
e.PageVisual = ProductDataForm;
e.HasMorePages = false;
}
```
#### 5. 生成和显示 PDF 报表
在服务器上生成 PDF 报表并在客户端显示的步骤如下:
##### 5.1 选择报表工具/引擎
报表工具主要有三个组件:
- 报表设计器:用于创建报表结构、格式和规则,生成报表模板。
- 报表引擎:使用模板创建和填充报表。
- 报表查看器:在客户端显示报表。
选择报表工具时,需确保三个组件与系统技术兼容。这里重点介绍 Visual Studio Report Designer 和 Local Report Engine,因为它们功能较强大,且 Silverlight 开发人员在 Visual Studio 标准版及更高版本中可使用。
##### 5.2 选择输出格式
Local Report Engine 可渲染为多种格式:
- HTML(在 ASP.NET Report Viewer 控件中托管时)
- Word 文档
- Excel 文档
- 图像
- PDF 文档
由于图像文件大且打印质量低,Excel 格式适用场景有限,ASP.NET 的 Report Viewer 控件打印有局限性,因此 PDF 或 Word 文档是可行的选择。这里选择生成 PDF 报表。
##### 5.3 向客户端提供报表
为了向 Silverlight 应用程序提供报表,需要创建一个 HTTP 处理程序。其工作流程如下:
```mermaid
graph LR
A[Silverlight 应用程序发送请求] --> B[HTTP 处理程序]
B --> C{用户是否认证}
C -- 是 --> D[查找对
```
0
0
复制全文
相关推荐









