如何以编程方式在客户端打印机上打印服务器端文本文件



我有一个服务器端应用程序,它在服务器上创建一系列文本文件。 我需要允许用户通过单击网页上的按钮直接在客户端打印机上打印一个或多个文件。 这应该会打开一个打印机选择窗口,然后开始打印选定的网页。 我可以处理文件选择和打印机选择窗口,但无法打印文件。 我在代码项目 (http://www.codeproject.com/Tips/689325/Send-PDF-files-directly-to-client-printer-without) 上找到了代码,它被描述为完全符合我的需要,但对于 PDF 文件。 我试图将其改编为文本文件,并且代码运行没有明显的错误,但是没有任何东西到达打印机,我不知道如何定位代码执行网页源代码的 Object 标签的 value 属性后会发生什么(见下文)。 我在 VB.Net 编程。

下面是源代码中的对象标记:

 <object id = "Object1" name="Txt1" 
type="file/txt" width="1" height="1" >
            <param  name='SRC' value='<%= SReportFileName %>'/>
</object> 

下面是代码隐藏文件中的代码:

Partial Class ViewResults_PrintingReports
    Inherits System.Web.UI.Page
    Public SReportFileName As String = ""
Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim PathName As String = ""
        Dim Uname As String = ""
        Dim Iyr As String = ""
        Dim Iwld As String = ""
        Dim Iqtr As String = ""
        Dim FName As String = ""
        Dim CNumber As String = ""
        Uname = "UserName"
        Iyr = "3"
        Iqtr = "1"
        FName = "ReportA"
        CNumber = "1"
        Iwld = "1"
        '       Dim cs As ClientScriptManager = Page.ClientScript
        PathName = "~/Competitions/" & Uname & "/BP/" & "World" & Iwld & "/Reports/QtrRpts" & Iwld & "." & Iyr & Iqtr & "/" & FName & "." & Iwld & CNumber & ".txt"
        SReportFileName = PathName '// temp/mypdf.pdf 
        Try
            ClientScript.RegisterStartupScript(GetType(Page), "MessagePopUp", "<script language=text/javascript>document.Txt1.printAll()</script>")
        Catch ex As Exception
            MsgBox("Problem printing file", , ex.Message)
        End Try
    End Sub
End Class

任何帮助将不胜感激。

你需要调用javascript。
这是 JavaScript

          function PrintFile(FilePath) {
                var printWin = window.open(FilePath, '','left=0,top=0,width=700,height=700,status=0');
                printWin.focus();
                printWin.print();
            }

这是按钮的代码隐藏

Dim FilePath As String
        FilePath = "This is your File Path"
        Dim PrintFile As String
        PrintFile = "PrintFile('" & FilePath & "')"
        ScriptManager.RegisterStartupScript(Me, Me.GetType(), "ntmtch", PrintFile, True)

最新更新