使用Epson LX-300 +通过Crystal Reports(VB.NET)打印票证

时间:2010-11-24 14:17:15

标签: vb.net crystal-reports

点阵打印机打印机票存在问题。

  • 我有EPSON LX-300 +
  • 我使用的是VB.NET 2008和Crystal Reports
  • 我使用rpt.PrintToPrinter(1, False, 1, 1)方法打印

我的问题是当我打印我的票时,对齐是完美的但是打印机会弹出后一张大小的票据纸。它应该在一张票后停止。

  • 票据大小高度= 4,宽度= 10
  • Crystal Reports和打印机属性中的纸张设置为信封#10 9 1/2 * 4 1/8 in。

1 个答案:

答案 0 :(得分:0)

注意:此方法要求您首先设置具有默认纸张尺寸的打印机 然后在打印时访问此打印机

此方法适用于 Epson LX-300 + ii点阵打印机

如果您使用的是打印机,尤其是打印收据 以下是如何将打印机设置为所需纸张尺寸的步骤

首先设置要使用的打印机: 转到设备和打印机 在“打印机”中选择您要使用的打印机,然后单击 - 右键单击​​打印机属性 点击首选项... 按钮。在主要标签下 - 将文档尺寸更改为用户定义 将出现一个新的新窗口。 在纸张尺寸名称中指定名称(即OR纸张) 并根据需要更改纸张宽度和高度 点击保存,然后确定

enter image description here

然后通过右键单击然后设置为默认打印机

来设置打印机

为您的打印添加以下代码行。您仍然可以在打印机中使用参数和数据集

Dim c As Integer
        Dim doctoprint As New System.Drawing.Printing.PrintDocument()
        doctoprint.PrinterSettings.PrinterName = "EPSON L1300 Series"
        Dim rawKind As Integer
        For c = 0 To doctoprint.PrinterSettings.PaperSizes.Count - 1
            If doctoprint.PrinterSettings.PaperSizes(c).PaperName = "OR Receipts" Then
                rawKind = CInt(doctoprint.PrinterSettings.PaperSizes(c).GetType().GetField("kind", Reflection.BindingFlags.Instance Or 

Reflection.BindingFlags.NonPublic).GetValue(doctoprint.PrinterSettings.PaperSizes(c)))
                Exit For
            End If
        Next

        Report1.PrintOptions.PaperSize = CType(rawKind, CrystalDecisions.Shared.PaperSize)
        frmPreview.CrystalReportViewer1.ReportSource = Report1
        Report1.PrintToPrinter(1, False, 1, 1)