【问题标题】:ASP.Net PrintingASP.Net 打印
【发布时间】:2011-04-06 09:42:59
【问题描述】:

以下是我的 ASP.Net 代码。当用户点击window.print()窗口中的“打印”按钮时出现问题,系统会调用onPrintPage来检查打印边距。

如何做到这一点?请帮忙。

谢谢。

Page.ClientScript.RegisterStartupScript(this.GetType(), "OnPrintPage", "window.print();", true);

private void OnPrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
    System.Drawing.Printing.PageSettings oPagesettup1 = new System.Drawing.Printing.PageSettings();
    PrintDocument PrintDoc = new PrintDocument();

    if (PrintDoc.DefaultPageSettings.Margins.Right < e.PageSettings.Margins.Right || PrintDoc.DefaultPageSettings.Margins.Bottom < e.PageSettings.Margins.Bottom)
    {
         string script = "<script language='javascript'>alert('Please set your Printer Orientation option to Landscape and your Page (Under File -> Page Setup) right margin to minimum value.')</script>";
         Page.ClientScript.RegisterClientScriptBlock(GetType(), "key", script);
     }
}

【问题讨论】:

    标签: asp.net printing


    【解决方案1】:

    您似乎在这里混淆了服务器端和客户端脚本。

    RegisterStartupScript 中的第二个字符串是用于检查此脚本是否已注册的键。

    您的 OnPrintPage 中的代码在 Web 服务器上运行,因此只会检查服务器的打印设置,而不是客户端。它也永远不会像你写的那样被调用。

    DOM 几乎不支持打印功能,例如检查边距。如果您需要做任何您不能做的事情,您需要使用 Javascript 来操作它并使用 AJAX 回调。

    clientscriptmanager 的参考页面: http://msdn.microsoft.com/en-us/library/system.web.ui.clientscriptmanager%28VS.80%29.aspx

    【讨论】:

    • +1。我唯一要补充的是,如果打印设置很重要,那么您通常最好生成带有必要设置的 PDF 并将其发送给客户端。
    【解决方案2】:

    当用户决定从浏览器打印您的网页时,浏览器就是控制打印过程的那个。

    您无法查看或设置边距值。但是,您可以拥有仅适用于打印的 CSS 样式,然后您可以使用它来设置不同的文档格式。

    【讨论】:

      【解决方案3】:

      您似乎在这里混淆了服务器端和客户端脚本。

      RegisterStartupScript 中的第二个字符串是用于检查此脚本是否已注册的键。

      您的 OnPrintPage 中的代码在 Web 服务器上运行,因此只会检查服务器的打印设置,而不是客户端。它也永远不会像你写的那样被调用。

      DOM 几乎不支持打印功能,例如检查边距。如果您需要做任何您不能做的事情,您需要使用 Javascript 来操作它并使用 AJAX 回调。

      clientscriptmanager 的参考页面:http://msdn.microsoft.com/en-us/library/system.web.ui.clientscriptmanager%28VS.80%29.aspx

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-04-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-02-18
        相关资源
        最近更新 更多