水晶报表,使用crystalReportViewer打印默认为letter问题解决。


在打印机设置中已经设置了自定义大小,并且默认也为自定义大小。

但在使用crystalReportViewer控件上的工具栏打印按钮时,弹出打印机设置框。在高级选项中,纸张规格每次默认是LETTER。
解决方法,自己写个打印Button。代码如下:

 1 private void button1_Click(object sender, EventArgs e)
 2         {
 3             if (DialogResult.OK == printDialog1.ShowDialog())
 4             {
 5                 
 6                 PrinterSettings ps=new PrinterSettings();
 7                 ps=printDialog1.PrinterSettings;
 8                 crystorage.PrintOptions.PrinterName =ps.PrinterName;    
 9                 int rawKind=1;
10                 System.Drawing.Printing.PrintDocument doc = new System.Drawing.Printing.PrintDocument();
11                 for (int i = 0; i < doc.PrinterSettings.PaperSizes.Count; i++)
12                 {
13                     //找到自定义的纸张
14                     if (doc.PrinterSettings.PaperSizes[i].PaperName == "21x9.5")
15                     {
16 
17                         rawKind = doc.PrinterSettings.PaperSizes[i].RawKind;
18 
19 
20                         //MessageBox.Show(doc.PrinterSettings.PaperSizes[i].PaperName);
21                     }
22                 }
23                 crystorage.PrintOptions.PaperSize =(CrystalDecisions.Shared.PaperSize)rawKind;
24                 crystorage.PrintToPrinter(1, true, 1, 1);
25                 
26                 
27             }

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM