在打印機設置中已經設置了自定義大小,並且默認也為自定義大小。
但在使用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 }