2

我有一个用 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);
4

1 回答 1

1

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

当您想使用 id 大于 118(Windows 编码的纸张尺寸)的纸张尺寸时,您必须将纸张尺寸的 id 提供给 PrintOptions.PaperSource。显然,您需要将其投射到 CrystalDecisions.Shared.PaperSource 我这样做:

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

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

其中 m_PageSettings 是我的 System.Drawing.PageSettings 指定正确的 PaperSize

于 2012-08-17T14:54:38.160 回答