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

Asp.net 如何以编程方式在客户端打印机上打印服务器端文本文件,asp.net,vb.net,printing,Asp.net,Vb.net,Printing,我有一个服务器端应用程序,它在服务器上创建一系列文本文件。我需要允许用户通过单击网页上的按钮直接在客户端打印机上打印一个或多个文件。这将打开打印机选择窗口,然后开始打印所选网页。我可以处理文件选择和打印机选择窗口,但无法打印文件。我在代码项目()上找到了代码,该项目被描述为除了PDF文件之外,我完全可以做我需要的事情。我尝试将其调整为文本文件,代码运行时没有可见错误,但打印机没有收到任何信息,我不知道如何定位代码执行网页源代码的Object标记的value属性后发生的情况(见下文)。我用VB.N

我有一个服务器端应用程序,它在服务器上创建一系列文本文件。我需要允许用户通过单击网页上的按钮直接在客户端打印机上打印一个或多个文件。这将打开打印机选择窗口,然后开始打印所选网页。我可以处理文件选择和打印机选择窗口,但无法打印文件。我在代码项目()上找到了代码,该项目被描述为除了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
部分类查看结果\u打印报告
继承System.Web.UI.Page
Public SReportFileName As String=“”
受保护的子按钮1\u单击(发送者作为对象,e作为事件参数)处理按钮1。单击
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=“用户名”
Iyr=“3”
Iqtr=“1”
FName=“ReportA”
CNumber=“1”
Iwld=“1”
'Dim cs As ClientScriptManager=Page.ClientScript
路径名=“~/Competitions/”&Uname&“/BP/”&“World”&Iwld&“/Reports/qtrrps”&Iwld&“&Iyr&Iqtr&“/”&FName&“&Iwld&CNumber&“.txt”
SReportFileName=PathName'//temp/mypdf.pdf
尝试
RegisterStartupScript(GetType(第页),“MessagePopUp”,“document.Txt1.printAll()”)
特例
MsgBox(“打印文件问题”,例如Message)
结束尝试
端接头
末级

任何帮助都将不胜感激。

您需要调用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)

我已经将函数放在我的aspx文件中的脚本标记之间,并将代码隐藏文件放在其中。当我运行调试时,执行会通过ScriptManager语句和end sub。没有其他事情发生。显然,该函数没有被激发。我花了很多时间阅读和尝试一些小的改变,但无法让ti工作。java脚本似乎没有被调用。