如何在asp.net中打印(点阵打印机)

时间:2013-04-07 12:14:07

标签: c# javascript asp.net printing

在我的项目中,我必须打印一个表格,如姓名,年龄等。它全部用打印纸打印,我只需要根据纸张放置名称,年龄。目前我正在使用一个asp.net页面来实现我的目的。我已经把标签置于position = absolute。当我点击打印我正在调用该页面时,在onload事件中我将基于之前的页面内容放置标签值。

这很简单。那么有没有更好的方法在dotmatrix打印机中打印?请建议。

现在prnting工作正常,但问题是当我点击打印按钮时我打开那个页面就像弹出窗口一样并在那里调用打印。但是我想在点击打印或取消按钮后关闭弹出窗口。请帮帮我。

我的代码是这样的:

此BtnPrint位于我的主页面中。主页包含姓名,年龄等输入。 在PrtPage中,我根据打印空间放置了标签。所以我在PrtPage.aspx的onload事件中填写了主页面值。

protected void BtnPrint_Click(object sender,EventArgs e)

{

    Response.Write("<script>");
    Response.Write("window.open('PrtPage.aspx','_blank')");
    Response.Write("</script>");
}

在PrtPage的页面加载中:

protected void Page_Load(object sender,EventArgs e)

{

     Response.Write("<script>");
     Response.Write("window.print()");
     //Response.Write("window.close()");
     Response.Write("<script>");
}

但每当我点击打印按钮时,它会问“你想关闭窗口吗?”,所以请帮助我。我想点击打印或在打印设置窗口中取消后关闭。

或建议我是否有任何好的方法在dotmatrix打印.. 提前谢谢。

萨姆。

2 个答案:

答案 0 :(得分:0)

你得到这些的原因是asp.net的范围仅限于浏览器窗口。如果浏览器设置为询问用户是否要在尝试自动关闭页面时关闭页面(最常见的是),则无法从浏览器中阻止该页面。

与打印相同,你无法自动打印,因为浏览器不会让你。

答案 1 :(得分:0)

如何使用单个页面而不是打开弹出窗口。在下面的博客文章中,您可以看到示例用法。可隐藏两个带可打印和不可打印内容的div标签以及带有可打印内容的div标签。然后,您可以使用Jquery在DIV中打印内容。

http://itzonesl.blogspot.com/2013/02/how-to-print-content-inside-div-tag.html

<强>更新

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server" >
<title></title>
<script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
 <script src="jquery.printElement.js" type="text/javascript"></script>
<script type="text/javascript">
     function printpage() {
        $("#lblName").html($("#TextBox1").val());
        $("#lblSchool").html($("#TextBox2").val());
        $("#printable").printElement();
    }

</script>
<style type="text/css">
#printable { display: none; }
@media print
 {
     #nonprintable { display: none; }
     #printable { display: block; }
 }

</style>
</head>
<body>

    <form id="form1" runat="server">
     <div id="nonprintable">

        <table class="style1">
            <tr>
                <td>
                    <asp:Label ID="Label1" runat="server" Text="Name"></asp:Label>:
                </td>
                <td>
                    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td>
                    <asp:Label ID="Label2" runat="server" Text="School"></asp:Label>:
                </td>
                <td>
                    <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
                </td>
            </tr>
        </table>

 </div>
     <div id="printable">
 <table class="style1">
            <tr>
                <td>
                    <asp:Label ID="Label3" runat="server" Text="Name"></asp:Label>:
                </td>
                <td>
                    <asp:Label ID="lblName" runat="server" ></asp:Label>
                </td>
            </tr>
            <tr>
                <td>
                    <asp:Label ID="Label4" runat="server" Text="School"></asp:Label>:
                </td>
                <td>
                    <asp:Label ID="lblSchool" runat="server" ></asp:Label>
                </td>
            </tr>
        </table>
 </div>
    <asp:Button ID="Button1" runat="server" Text="Print" 
        OnClientClick="printpage();" />
    </form>
</body>
</html>

使用MasterPage:

<强> MasterPage.aspx

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head runat="server">
    <title></title>
    <link href="~/Styles/Site.css" rel="stylesheet" type="text/css" />
    <asp:ContentPlaceHolder ID="HeadContent" runat="server">
    </asp:ContentPlaceHolder>
</head>
<body>
    <form runat="server">
    <div class="page">
        <div class="header">
            <div class="title">
                <h1>
                    My ASP.NET Application
                </h1>
            </div>
              <div class="clear hideSkiplink">
                <asp:Menu ID="NavigationMenu" runat="server" CssClass="menu" EnableViewState="false" IncludeStyleBlock="false" Orientation="Horizontal">
                    <Items>
                        <asp:MenuItem NavigateUrl="~/Default.aspx" Text="Home"/>
                        <asp:MenuItem NavigateUrl="~/About.aspx" Text="About"/>
                    </Items>
                </asp:Menu>
            </div>
        </div>
        <div class="main">
            <asp:ContentPlaceHolder ID="MainContent" runat="server"/>
        </div>
        <div class="clear">
        </div>
    </div>
    <div class="footer">
    </div>
    </form>
</body>
</html>

<强> ContentPage.aspx

<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" Runat="Server">
<script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
 <script src="jquery.printElement.js" type="text/javascript"></script>
<script type="text/javascript">
     function printpage() {
        $("#MainContent_lblName").html($("#MainContent_TextBox1").val());
        $("#MainContent_lblSchool").html($("#MainContent_TextBox2").val());
        $("#printable").printElement();
    }

</script>
<style type="text/css">
#printable { display: none; }
@media print
 {
     #nonprintable { display: none; }
     #printable { display: block; }
 }

</style>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" Runat="Server">
     <div id="nonprintable">

        <table class="style1">
            <tr>
                <td>
                    <asp:Label ID="Label1" runat="server" Text="Name"></asp:Label>:
                </td>
                <td>
                    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td>
                    <asp:Label ID="Label2" runat="server" Text="School"></asp:Label>:
                </td>
                <td>
                    <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
                </td>
            </tr>
        </table>

 </div>
     <div id="printable">
 <table class="style1">
            <tr>
                <td>
                    <asp:Label ID="Label3" runat="server" Text="Name"></asp:Label>:
                </td>
                <td>
                    <asp:Label ID="lblName" runat="server" ></asp:Label>
                </td>
            </tr>
            <tr>
                <td>
                    <asp:Label ID="Label4" runat="server" Text="School"></asp:Label>:
                </td>
                <td>
                    <asp:Label ID="lblSchool" runat="server" ></asp:Label>
                </td>
            </tr>
        </table>
 </div>
    <asp:Button ID="Button1" runat="server" Text="Print" 
        OnClientClick="printpage();" />
</asp:Content>