Webインターフェイスを介して特定の(バーコード)プリンターに送信されるCrystalレポートを設計しました。標準のCrystalReportViewerでレポートを生成できるようにすると問題が発生したため、現在、コードビハインドを使用してレポートを直接プリンターに送信しています。
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を作成/使用することで変更が発生していると確信しています。
フォントをデフォルトでTimesNewRomanに戻さずに、レポートを直接印刷物に送信するにはどうすればよいですか?