【问题标题】:How to print a server side text file on a client printer programically如何以编程方式在客户端打印机上打印服务器端文本文件
【发布时间】:2014-12-31 17:42:29
【问题描述】:

我有一个服务器端应用程序,它在服务器上创建一系列文本文件。我需要允许用户通过单击网页上的按钮直接在客户端打印机上打印一个或多个文件。这应该会打开一个打印机选择窗口,然后开始打印选定的网页。我可以处理文件选择和打印机选择窗口,但无法获取要打印的文件。我在 Code Project (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

任何帮助将不胜感激。

【问题讨论】:

    标签: asp.net vb.net printing


    【解决方案1】:

    你需要调用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 语句和结束子。没有其他事情发生。显然该功能没有被触发。我花了很多时间阅读和尝试小的改变,但无法让 ti 工作。 java 脚本似乎没有被调用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-06
    • 2014-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-22
    • 1970-01-01
    相关资源
    最近更新 更多