前提是:在设计时选择有打印机,设计好报表后,将打印机复选框去掉
水晶报表打印支持以下几种情况
1、用 IE 在客户端进行打印
2、导出后打印
3、直接在服务器上打印
第一种情况,再加载报表后绑定前,编写以下代码
CrystalDecisions.CrystalReports.Engine.ReportDocument doc = new ReportDocument();
doc.Load(Server.MapPath("../report/Chi.rpt"));
//设置成 139.7 x 215.9 毫米的纸张,也就是“半刀纸”,约 A4 的一半。
doc.PrintOptions.PaperSize = CrystalDecisions.Shared.PaperSize.PaperStatement;
//设置报表方向为横向,注意系统没有真正的“半刀纸”,只有把上述纸张横着看才符合要求。打印时不需要设置为横打
doc.PrintOptions.PaperOrientation = CrystalDecisions.Shared.PaperOrientation.Landscape;
this.RptView.ReportSource=doc;
this.RptView.DataBind();
绑定后在页面上就能看到半刀纸的效果,也就是 A4 纸的一半,通过 IE 打印即可
第二种情况:在上述代码基础上,编写导出 pdf 文档代码
string Fname=Server.MapPath("../../ExportFiles/"+Guid.NewGuid().ToString()+".pdf");
myDestinationFile.DiskFileName=Fname;
CrystalDecisions.Shared.DiskFileDestinationOptions myDestinationFile=new DiskFileDestinationOptions();
ExportOptions exportOpts = doc.ExportOptions;
exportOpts.DestinationOptions=myDestinationFile;
exportOpts.ExportDestinationType = ExportDestinationType.DiskFile;
exportOpts.ExportFormatType = ExportFormatType.PortableDocFormat;
doc.Export();
Response.ClearContent();
Response.ClearHeaders();
Response.ContentType = "application/pdf";
Response.AppendHeader("Content-Disposition", "attachment; filename="+System.Web.HttpUtility.UrlEncode("Report.pdf",System.Text.Encoding.UTF8));
Response.WriteFile(Fname);
Response.Flush();
Response.Close();
File.Delete(Fname);
第三种情况:由连在服务器上的打印机进行打印
//设置打印机的名称,此处为服务器上拥有的网络打印机
doc.PrintOptions.PrinterName= @"//192.168.0.10/HPLaserJ";
doc.PrintToPrinter(1,true,0,0);
以下是水晶报表所拥有的纸张规格,好象 PaperEnvelope10 比较符合发票的纸张
DefaultPaperSize 打印机驱动程序中设置的默认大小。
Paper10x14 纸张大小为 254 x 355.6 毫米。
Paper11x17 纸张大小为 279.4 x 431.8 毫米。
PaperA3 A3 纸,297 x 420 毫米。
PaperA4 A4 纸,210 x 297 毫米。
PaperA4Small A4 小纸,210 x 297 毫米。
PaperA5 A5 纸,148 x 210 毫米。
PaperB4 B4 纸,250 x 354 毫米。
PaperB5 B5 纸,182 x 257 毫米。
PaperCsheet C 型纸,431.8 x 558.8 毫米。
PaperDsheet D 型纸,558.8 x 863.6 毫米。
PaperEnvelope10 #10 Envelope,104.8 x 241.3 毫米。
PaperEnvelope11 #11 Envelope,114.3 x 263.5 毫米。
PaperEnvelope12 #12 Envelope,120.7 x 279.4 毫米。
PaperEnvelope14 #14 Envelope,127 x 292.1 毫米。
PaperEnvelope9 #9 Envelope,98.4 x 225.4 毫米。
PaperEnvelopeB4 B4 Envelope,250 x 353 毫米。
PaperEnvelopeB5 B5 Envelope,176 x 250 毫米。
PaperEnvelopeB6 B6 Envelope,176 x 125 毫米。
PaperEnvelopeC3 C3 Envelope,324 x 458 毫米。
PaperEnvelopeC4 C4 Envelope, 114 x 229 毫米。
PaperEnvelopeC5 C5 Envelope,162 x 229 毫米。
PaperEnvelopeC6 C6 Envelope,114 x 162 毫米。
PaperEnvelopeC65 C65 Envelope,114 x 229 毫米。
PaperEnvelopeDL DL Envelope,110 x 220 毫米。
PaperEnvelopeItaly Italy Envelope,110 x 230 毫米。
PaperEnvelopeMonarch Monarch Envelope,98.4 x 190.5 毫米。
PaperEnvelopePersonal 6 3/4 Envelope,92.1 x 165.1 毫米。
PaperEsheet E 型纸,863.6 x 1117.6 毫米。
PaperExecutive Executive,184.1 x 266.7 毫米。
PaperFanfoldLegalGerman German Legal Fanfold,215.9 x 330.2 毫米。
PaperFanfoldStdGerman German Std Fanfold,215.9 x 304.8 毫米。
PaperFanfoldUS US Std Fanfold,377.8 x 279.4 毫米。
PaperFolio Folio,215.9 x 330.2 毫米。
PaperLedger Ledger,431.8 x 279.4 毫米。
PaperLegal Legal,215.9 x 355.6 毫米。
PaperLetter Letter,215.9 x 279.4 毫米。
PaperLetterSmall Letter Small,215.9 x 279.4 毫米。
PaperNote Note,215.9 x 279.4 毫米。
PaperQuarto Quarto,215 x 275 毫米。
PaperStatement Statement,139.7 x 215.9 毫米。
PaperTabloid Tabloid,279.4 x 431.8 毫米。
来源:http://cache.baidu.com/c?m=9d78d513d99000ed4fece4690d61c0676908d7252bd6a0020ea4843be4732b365015e6ac26520774d0d2