关于vb.net:直接打印RDLC报告,而不显示给用户

Directly print RDLC report without showing to user

我需要在用户(客户端)计算机上的默认打印机上打印RDLC报告。

我有一个具有RDLC报告的VB.Net(VS 2008 / .Net 3.5)Web应用程序。要求的一部分是不向用户显示生成的报告,而是直接在用户默认打印机上打印报告。用户将单击一个按钮,相应的报告应发送到用户打印机。

任何想法或建议都会很有帮助。

更新-到目前为止,我为rdlc报告构建客户端打印的所有尝试均失败了。无法从客户端默认打印机打印它们,仅服务器端打印有效


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
I have a solution for the rdlc printing directly without preview.
1. Convert the local report to word.
2. print the word document. You can pop up the print diaglog and let you choose the printer.
sample code like:

'Convert to word:
Dim bytes As Byte() = rptForm.ReportViewer1.LocalReport.Render("WORD", Nothing, mimeType, encoding, extension, streamids, warnings)

 Dim printDlg As New PrintDialog()
 Dim PrinterName as String
 If (printDlg.ShowDialog() = DialogResult.OK) Then
     PrinterName = printDlg.PrinterSettings.PrinterName
 End If

'Print the word document:
Dim appWord As New Word.Application
 appWord.Documents.Open(FullPath, m, m, m, m, m, m, m, m, m, m, m)
 appWord.WordBasic.FilePrintSetup(Printer:=PrinterName , DoNotSetAsSysDefault:=1)
 appWord.ActiveDocument.PageSetup.Orientation = WdOrientation.wdOrientPortrait
 appWord.ActiveDocument.PageSetup.PaperSize = WdPaperSize.wdPaperLetter
                    appWord.ActiveDocument.PrintOut()
                    appWord.Documents.Close()
                    appWord.Quit()
                    appWord = Nothing