VB.NET 2013 Crystal Report直接打印到打印机而不显示

时间:2019-03-04 16:36:16

标签: vb.net printing crystal-reports

我正在从事VB.Net 2013 + Crystal Reports项目。任务是按照用户条件从MSSQL提取发票数据,并将其直接打印到预定义的打印机上。在执行此操作时,将按照客户提供的方式使用发票的布局。因此,这是在Crystal Reports中完成的。

问题是如何在不在屏幕上显示任何报告的情况下直接将Crystal报告直接打印到打印机。

请告知。

1 个答案:

答案 0 :(得分:0)

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

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

因此,完整逻辑如下:

  1. 在Crystal Reports 2013中具有根据客户要求设计的自定义报告

  2. 使用以下代码将报表从Crystal Reports打印到PDF打印机:

私人子RunReport()         昏暗的CryRpt作为新的ReportDocument         将crTblLogInfos昏暗为新TableLogOnInfos         将crTblLogInInfo设为新TableLogOnInfo         昏暗的crConInfo作为新的ConnectionInfo         Dim crTables作为表格         将crTable设置为表格

    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. 上述步骤会将报告以PDF格式保存到Bull PDF Printer中提到的预定义文件夹中。现在,按照https://www.robvanderwoude.com/commandlineswitches.php#Acrobat
  2. 所述使用以下命令将PDF文件发送到物理打印机

静默打印PDF文件:

AcroRd32.exe /N /T PdfFile PrinterName 

任务完成。