如何通过代码设置水晶报告的确切长度



我有一个用 Crystal Rerports 12x8.5 英寸设计的报告。我已将 OKI 3320 打印机驱动程序完全设置为此大小。现在,当我使用 C# 代码打印报表时,页面长度比撕掉位置少半英寸。我必须卷起纸把它撕下来。我们是否可以通过代码更改任何设置以准确到达撕裂位置?

          ReportDocument oReportDocument = new ReportDocument();
            oReportDocument.Load(reportPath + "\OutDkt.rpt");
            List<TblOutDocket> lstDockets = new List<TblOutDocket>();
            lstDockets.Add(oTblOutDocket);
            oReportDocument.SetDataSource(lstDockets);
            oReportDocument.PrintOptions.PrinterName = LocalPrintServer.GetDefaultPrintQueue().FullName;
            oReportDocument.PrintToPrinter(1, false, 0, 0);
似乎当您

使用自定义页面大小时,您需要专门指定页面设置。根据此链接,您可以通过设置页面设置命名空间来实现此目的。

当您

要使用 ID 大于 118 (Windows 的纸张大小时编码纸张大小)必须提供纸张大小的 ID 到PrintOptions.PaperSource. 显然,你需要把它投射到CrystalDecisions.Shared.PaperSource 我这样做:

ReportDocument.PrintOptions.PaperSource =(CrystalDecisions.Shared.PaperSource)m_PageSettings.PaperSource.RawKind;

报告文档.打印选项.纸张大小 =(CrystalDecisions.Shared.PaperSize)m_PageSettings.PaperSize.RawKind;

其中m_PageSettings是我的系统.绘图.页面指定设置正确的纸张尺寸

最新更新