Vb.net Crystal报表打印到错误的打印机

Vb.net Crystal报表打印到错误的打印机,vb.net,crystal-reports,report,Vb.net,Crystal Reports,Report,我正在排除继承的VB.NET应用程序的问题 以下行执行打印操作: Me.rptShippingLabel1.PrintOptions.PrinterName = "LabelPrinter" Me.rptShippingLabel1.PrintOptions.PaperOrientation = CrystalDecisions.Shared.PaperOrientation.Landscape Me.rptShippingLabel1.PrintToPrinter(Me.txtLabelQ

我正在排除继承的VB.NET应用程序的问题

以下行执行打印操作:

Me.rptShippingLabel1.PrintOptions.PrinterName = "LabelPrinter"
Me.rptShippingLabel1.PrintOptions.PaperOrientation =   CrystalDecisions.Shared.PaperOrientation.Landscape
Me.rptShippingLabel1.PrintToPrinter(Me.txtLabelQty.Text, False, 1, 1)
有一个
Zebra
ZDesign
TLP2844通过直接
USB
连接到工作站,名为
LabelPrinter
。但是,尽管代码中指定了目标打印机,但必须在Windows中将该Zebra设置为默认打印机,否则作业将转到设置为默认的任何其他打印机。
更令人沮丧的是,在某些计算机上,配置完全相同的作业会转到正确的打印机,但我无法识别可控模式。 有什么建议吗

在“设计>页面设置”中,有问题的报告与打印机断开关联。

请尝试以下代码

    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 runtime 13.0.9测试的,请尝试以下代码

    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 runtime 13.0.9测试的,查看您的报告。在“页面设置”中,查看报表是否针对显示进行了优化。如果是,请取消选中它。若报告优化为仅显示,则将放弃PrinterOptions枚举。您仍然可以在旧框架中分配给打印机名称属性,但不能再分配了。

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

打印机名称必须与该计算机上的名称完全相同。不同计算机上的同一台打印机可以有不同的名称。@Steve-它在每个工作站和代码中都有拼写。您确认使用“打印机”集合了吗?这将保存本地计算机上安装的所有打印机,您可以获取需要为Crystal的“PrinterName”指定的“名称”。@Steve-正在使用System.Drawing.Printing.PrinterSettings.InstalledPrinters()@Steve-是的,获取了已安装打印机的集合。LabelPrinter在那里。我甚至在列表字符串中添加了额外的字符以捕捉隐藏的尾随空格(如果有的话)。打印机名称必须与计算机上的名称完全一致。不同计算机上的同一台打印机可以有不同的名称。@Steve-它在每个工作站和代码中都有拼写。您确认使用“打印机”集合了吗?这将保存本地计算机上安装的所有打印机,您可以获取需要为Crystal的“PrinterName”指定的“名称”。@Steve-正在使用System.Drawing.Printing.PrinterSettings.InstalledPrinters()@Steve-是的,获取了已安装打印机的集合。LabelPrinter在那里。我甚至在列表字符串中添加了额外的字符以捕捉隐藏的尾随空格(如果有)。如何设置这些页面设置?@Paul右键单击*.rpt文件>设计>页面设置,取消选中“无打印机(优化屏幕显示)”如何设置这些页面设置?@Paul右键单击*.rpt文件>设计>页面设置,取消选中“无打印机”(优化屏幕显示)