发布时间 : 2015-12-17 10:35:56.000|阅读 3738 次
概述:本片文章主要介绍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。
购买最新正版授权!"咨询在线客服"
慧都年终盛典火爆开启,一年仅一次的最强促销,破冰钜惠不容错过!!优惠详情点击查看>>
渝ICP备12000582号-15/渝公网安备 50010702501010号