VB.NET 2013 Crystal 直接向打印机报告打印,不显示

VB.NET 2013 Crystal Report print to printer directly without displaying

我正在研究 VB.Net 2013 + Crystal 报告项目。任务是根据用户标准从 MSSQL 中获取发票数据,并将其直接打印到预定义的打印机。在这样做时,发票的布局将按照客户提供的方式使用。所以这是在 Crystal 报告中完成的。

问题是如何将 crystal 报告直接打印到打印机而不在屏幕上显示任何报告。

请指教

我找到了这个问题的替代解决方案。我从这个站点使用了 Adob​​e Acrobat 的命令行开关:https://www.robvanderwoude.com/commandlineswitches.php#Acrobat

使用此开关,我可以将 PDF 发送到任何物理打印机。然而,PDF 创建是使用 BullPDF 打印机 (http://www.bullzip.com/products/pdf/info.php) 完成的,这是一个免费的 PDF 打印机应用程序。

所以完整的逻辑如下:

  1. 在 Crystal 报告 2013

  2. 中根据客户规范设计自定义报告
  3. 使用以下代码将 Crystal 报告中的报告打印到 PDF 打印机:

私有子运行报告() 昏暗的 CryRpt 作为新的 ReportDocument 将 crTblLogInfos 调暗为新 TableLogOnInfos 将 crTblLogInInfo 变暗为新 TableLogOnInfo 将 crConInfo 调暗为新的 ConnectionInfo 将 crTables 调暗为 Tables 昏暗的 crTable 作为 Table

    With crConInfo
        .ServerName = ServerName
        .DatabaseName = DBName
        .UserID = UID
        .Password = Pwd
    End With

    CryRpt.Load(FPath & "rptLink.rpt")

    crTables = CryRpt.Database.Tables
    For Each crTable In crTables
        crTblLogInInfo = crTable.LogOnInfo
        crTblLogInInfo.ConnectionInfo = crConInfo
        crTable.ApplyLogOnInfo(crTblLogInInfo)
    Next
    CryRpt.PrintOptions.PrinterName = "Bullzip PDF Printer"
    CryRpt.PrintToPrinter(1, False, 0, 0)

    OrdersLinking.DocPrinted = True
    Me.Close()

End Sub
  1. 如 Bull PDF Printer 中所述,上述步骤会将报告以 PDF 格式保存到预定义的文件夹中。现在使用 https://www.robvanderwoude.com/commandlineswitches.php#Acrobat
  2. 中提到的以下命令将 PDF 文件发送到物理打印机

静默打印 PDF 文件:

AcroRd32.exe /N /T PdfFile PrinterName 

任务完成。