【问题标题】:How to print in VB?如何在VB中打印?
【发布时间】:2011-09-25 10:53:14
【问题描述】:

我有一个使用经典 ASP 和 VB 构建的 Web 应用程序。如何从后端 VB 代码中打印文档?

Protected Sub btnPrint_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnPrint.Click

End Sub

我想要做的是让用户点击按钮生成一封信并将其发送到打印机?

【问题讨论】:

  • 这不是经典的 asp 或 vb。它是 ASP.NET 和 VB.NET。

标签: asp.net vb.net http printing


【解决方案1】:

您可以使用window.print javascript 函数,该函数将在客户端浏览器上打开打印对话框,让他选择打印机并打印页面:

Protected Sub btnPrint_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnPrint.Click
    ClientScript.RegisterStartupScript([GetType](), "print", "window.print();", true)
End Sub

附带说明,您拥有的不是带有 VB 的经典 ASP 应用程序,而是使用 VB.NET 作为代码的经典 ASP.NET WebForms 应用程序。


更新:

根据 cmets 部分的要求,您可以编写一个通用处理程序,该处理程序将动态生成您要打印的 HTML:

Imports System.Web
Imports System.Web.Services

Public Class Print
    Implements System.Web.IHttpHandler

    Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest
        context.Response.ContentType = "text/html"
        context.Response.Write("<html><body onload=""window.print();""><table><tr><td>value1</td><td>value1</td></tr></table></body></html>")
    End Sub

    ReadOnly Property IsReusable() As Boolean Implements IHttpHandler.IsReusable
        Get
            Return False
        End Get
    End Property

End Class

现在只需导航到/Print.ashx

【讨论】:

  • 也在代码中我想构建一个字母然后打印它
  • 抱歉,GetType 似乎是 VB.NET 中的某个注册关键字。尝试将其包装在 []: [GetType]()
  • 某种作品,但我不想打印当前页面。我想发送大量在 vb 中创建的文本进行打印
  • 在这种情况下,您可以重定向到一些通用处理程序,该处理程序将生成您想要打印的必要 HTML,并在正文的 onload 中包含 window.print() javascript 命令。
  • @Beginner,当然,请参阅我的更新。顺便说一句,这可能只是另一个.aspx 页面,您只需将ClientScript.RegisterStartupScript 放在Page_Load 中,如果您不想以通用处理程序的形式从头开始创建一个(@987654332 @)。在这两种情况下,当用户单击打印按钮时,您都可以使用 Response.Redirect 重定向到该页面。
【解决方案2】:

您可以查看一些报告框架,例如 CrystalReports(过去是 VS 附带的,但现在您必须从 SAP 下载它。

这是一个包含在 Visual Studio 中的报告引擎很好的教程(我不得不承认我没有太多经验,但对我来说看起来不错):Creating an ASP.NET Report

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-30
    • 1970-01-01
    • 2011-09-16
    • 1970-01-01
    • 1970-01-01
    • 2015-10-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多