最近的一个项目要求在后台可以打印rdlc报表文件,于是参照微软官方的例子写了一个PrintService。
感觉这个应该蛮常用的,和大家分享下,自己也备忘记一下。
至于怎么构建数据源和画rdlc报表文件这里就不赘述,主要是打印功能的实现。
各方法的作用见代码注释。
using System;
using System.Collections;
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Imaging;
using System.Drawing.Printing;
using System.IO;
using System.Text;
using Microsoft.Reporting.WebForms;
namespace Domain.Base.Service
{
public class PrintService
{
private int m_currentPageIndex;
private IList<Stream> m_streams;
//创建打印数据流
private Stream CreateStream(string name,
string fileNameExtension, Encoding encoding,
string mimeType, bool willSeek)
{
Stream stream = new MemoryStream();
m_streams.Add(st