我设计了一个水晶报告,它将通过网络界面发送到特定的(条形码)打印机。允许在标准水晶报表查看器中生成报表会导致问题,因此我现在使用代码隐藏将报表直接发送到打印机。
ReportDocument Report = new ReportDocument();
ParameterDiscreteValue Order = new ParameterDiscreteValue();
Order.Value = Convert.ToInt32(txtOrder);
Report.Load(reportPath);
Report.SetParameterValue("OrderNo", Order);
PageMargins margins;
margins = Report.PrintOptions.PageMargins;
margins.bottomMargin = 0;
margins.leftMargin = 0;
margins.rightMargin = 0;
margins.topMargin = 0;
Report.PrintOptions.ApplyPageMargins(margins);
Report.PrintOptions.PrinterName = "\\\\printserver\\Zebra Z6M Plus (300dpi)";
Report.PrintToPrinter(1, false, PageNum, PageNum);
Report.Close();
从设计器 (CRXI) 打印时,一切正常,但是当 Web 界面将作业发送到打印机(任何打印机)时,它会将字体更改为 Times New Roman,这会弄乱所有字段大小。如果我使用标准的 .NET 报表查看器,它会使用正确的字体,所以我很确定更改是由创建/使用 ReportDocument 引起的。
如何在不将字体默认为 Times New Roman 的情况下将报告直接发送到打印件?