【问题标题】:Crystal report printing to wrong printer水晶报表打印到错误的打印机
【发布时间】:2018-05-28 23:43:46
【问题描述】:

我正在解决我继承的 VB.NET 应用程序的问题。

以下行执行打印操作:

Me.rptShippingLabel1.PrintOptions.PrinterName = "LabelPrinter"
Me.rptShippingLabel1.PrintOptions.PaperOrientation =   CrystalDecisions.Shared.PaperOrientation.Landscape
Me.rptShippingLabel1.PrintToPrinter(Me.txtLabelQty.Text, False, 1, 1)

有一个ZebraZDesignTLP2844通过直接USB连接到工作站并命名为LabelPrinter。但是,尽管在代码中指定了目标打印机,但 Zebra 必须在 Windows 中设置为默认打印机,否则作业将转到任何其他设置为默认打印机的打印机。
更令人沮丧的是,在某些计算机上,具有完全相同的配置作业会转到正确的打印机,但我无法识别可控模式。 有什么建议为什么会这样?

有问题的报告在设计>页面设置中与打印机解除关联。

【问题讨论】:

  • 打印机名称必须与该计算机上的名称完全相同。不同计算机上的同一台打印机可以有不同的名称。
  • @Steve - 它在每个工作站和代码中都有详细说明。
  • 您确认使用“打印机”系列了吗?这包含安装在本地计算机上的所有打印机,您可以获得需要为 Crystal 的“打印机名称”提供的“名称”。
  • @Steve - 现在正在使用 System.Drawing.Printing.PrinterSettings.InstalledPrinters() 进行处理
  • @Steve - 是的,收集了已安装的打印机。标签打印机在那里。我什至在列表字符串中添加了额外的字符以捕获隐藏的尾随空格(如果有的话)。

标签: vb.net crystal-reports report


【解决方案1】:

查看您的报告。在页面设置中查看报告是否针对显示进行了优化。如果是,请取消选中它。如果报表被优化为仅显示,PrinterOptions 枚举将被丢弃。您仍然可以分配给旧框架中的打印机名称属性,但现在不行了。

【讨论】:

  • 如何进入这些页面设置?
  • @Paul 右击 *.rpt 文件> 设计> 页面设置,取消选中“无打印机(针对屏幕显示进行优化)”
【解决方案2】:

试试下面的代码

    Dim rptShippingLabel1 As New CrystalReport1
    Dim PrinterSettings1 As New Printing.PrinterSettings
    Dim PageSettings1 As New Printing.PageSettings

    'Replace it with your printer name
    PrinterSettings1.PrinterName = "Microsoft XPS Document Writer"
    rptShippingLabel1.PrintToPrinter(PrinterSettings1, PageSettings1, False)

要获取打印机名称,不要从 rptShippingLabel1.PrintOptions.PrinterName 读取它,它将显示为空白。尝试从 PrinterSettings1.PrinterName 读取。

这是使用 Crystal Reports 运行时 13.0.9 测试的

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-15
    • 2012-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多