发布时间 : 2015-12-17 10:35:56.000|阅读 3499 次
概述:本片文章主要介绍Stimulsoft Reports.Net开发者在打印报表时遇到的常见问题及解决方案。
相关链接:
< Stimulsoft Reports.Net v2015.3最新版本下载>
按照下面的方法先加载报表:
C#
StiReport report = new StiReport(); report.Load("report.mrt"); report.Print();
VB
Dim Report As StiReport = New StiReport() Report.Load("report.mrt") Report.Print()
重载StiReport类里的Print方法:
C#
StiReport report = new StiReport(); report.Load("report.mrt"); report.Render(); PrinterSettings printerSettings = new PrinterSettings(); printerSettings.Copies = 2; Report.Print(printerSettings);
VB
Dim Report As StiReport = New StiReport() Report.Load("report.mrt") Report.Render() Dim PrinterSettings As PrinterSettings = New PrinterSettings() PrinterSettings.Copies = 2 Report.Print(PrinterSettings)
你可以使用Print方法。示例:
C#
StiReport report = new StiReport(); report.Load("MyReport.mrt"); report.RegData(myDataSet); report.Render(); //创建打印机设置 PrinterSettings printerSettings = new PrinterSettings(); printerSettings.Copies = 1; printerSettings.FromPage = 1; printerSettings.ToPage = report.RenderedPages.Count; //直接打印,不显示打印对话框 report.Print(false, printerSettings);
VB
Dim Report As New StiReport Report.Load("MyReport.mrt") Report.RegData(MyDataSet) Report.Render() '创建打印机设置 Dim PrinterSettings As New PrinterSettings PrinterSettings.Copies = 1 PrinterSettings.FromPage = 1 PrinterSettings.ToPage = Report.RenderedPages.Count '直接打印,不显示打印对话框 Report.Print(False, PrinterSettings)
你可以在PrinterSettings类的PrinterName属性指定打印机的名称。示例:
C#
StiReport report = new StiReport(); report.Load("MyReport.mrt"); report.RegData(myDataSet); report.Render(); //创建打印机设置 PrinterSettings printerSettings = new PrinterSettings(); //设置用于打印的打印机 printerSettings.PrinterName = "MyPrinterName"; //直接打印,不显示打印对话框 report.Print(false, printerSettings);
VB
Dim Report As New StiReport Report.Load("MyReport.mrt") Report.RegData(MyDataSet) Report.Render() '创建打印机设置 Dim PrinterSettings As New PrinterSettings '设置用于打印的打印机 PrinterSettings.PrinterName = "MyPrinterName" '直接打印,不显示打印对话框 Report.Print(False, PrinterSettings)
使用PrinterSettings类:
C#
StiReport report = new StiReport(); report.Load("MyReport.mrt"); report.RegData(myDataSet); report.Render(); //创建打印机设置 PrinterSettings printerSettings = new PrinterSettings((); //指定纸张来源 printerSettings.DefaultPageSettings.PaperSource = printerSettings.PaperSources[1]; //直接打印,不显示打印对话框 report.Print(false, printerSettings);
VB
Dim Report As New StiReport Report.Load("MyReport.mrt") Report.RegData(MyDataSet) Report.Render() '创建打印设置 Dim PrinterSettings As New PrinterSettings '指定纸张来源 PrinterSettings.DefaultPageSettings.PaperSource = PrinterSettings.PaperSources.Item(1) '直接打印,不显示打印对话框 Report.Print(False, PrinterSettings)
默认情况下,所有边的页边距都设置为1厘米,但是有的打印机的底部边距大于1厘米(例如DeskJet打印机),这种情况设置下边距为2厘米就行了。
通常情况下你需要输出版权、系统信息、铭文、水印、项目名称以及其它一些无法在设计器中删除的编辑信息。Stimulsoft Reports.Net提供了这样的专用输出功能即页面的两个静态事件:PagePainting和PagePainted。当页面被绘制时这两个事件都被调用。
如此假设需要在报表的每一页上输出公司的著作权。为此,你应该为事件服务创建一个静态方法:
C#
private static void OnPagePainting(StiPage sender, StiPagePaintEventArgs e) { }
VB
Private Shared Sub OnPagePainting(ByVal sender As StiPage, ByVal e As StiPagePaintEventArgs) End Sub
然后处理程序分配页面的静态事件。
C#
StiPage.PagePainting += new StiPagePaintEventHandler(OnPagePainting);
VB
AddHandler StiPage.PagePainting, New StiPagePaintEventHandler(AddressOf Form1.OnPagePainting)
假若现在需要输出铭文,所有需要输出的信息包含在处理程序的StiPagePaintEventArgs参数中。
下面是出版权字符串的输出代码:
C#
private static void OnPagePainting(StiPage sender, StiPagePaintEventArgs e) { Font font = new Font("Arial", 20 * (float)sender.Zoom)); e.Graphics.DrawString("(C) 2005 MyCompany", font, Brushes.Red, e.FullRectangle); font.Dispose(); }
VB
Private Shared Sub OnPagePainting(ByVal sender As StiPage, ByVal e As StiPagePaintEventArgs) Dim Font As Font = New Font("Arial", (20.0! * CType(page.Zoom, Single)) e.Graphics.DrawString("(C) 2005 MyCompany", Font, Brushes.Red, e.FullRectangle, Format) Font.Dispose() End Sub
使用这种页面打印的静态事件,你可以输出几乎任何形式的信息-图像、文本等。
将TextQuality属性设置为WYSIWYG或Typographic。
购买最新正版授权!"咨询在线客服"
慧都年终盛典火爆开启,一年仅一次的最强促销,破冰钜惠不容错过!!优惠详情点击查看>>