我正在从事VB.Net 2013 + Crystal Reports项目。任务是按照用户条件从MSSQL提取发票数据,并将其直接打印到预定义的打印机上。在执行此操作时,将按照客户提供的方式使用发票的布局。因此,这是在Crystal Reports中完成的。
问题是如何在不在屏幕上显示任何报告的情况下直接将Crystal报告直接打印到打印机。
请告知。
答案 0 :(得分:0)
我找到了这个问题的替代解决方案。我从以下站点使用了Adobe Acrobat的命令行开关:https://www.robvanderwoude.com/commandlineswitches.php#Acrobat
使用此开关,我可以将PDF发送到任何物理打印机。但是,PDF是使用BullPDF打印机(http://www.bullzip.com/products/pdf/info.php)完成的,该打印机是免费的PDF打印机应用程序。
因此,完整逻辑如下:
在Crystal Reports 2013中具有根据客户要求设计的自定义报告
使用以下代码将报表从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
静默打印PDF文件:
AcroRd32.exe /N /T PdfFile PrinterName
任务完成。