ASP.Net Печать - PullRequest
       7

ASP.Net Печать

2 голосов
/ 06 апреля 2011

Ниже приведен мой код 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);
     }
}

Ответы [ 3 ]

1 голос
/ 07 апреля 2011

Вы, похоже, путаете скрипты на стороне сервера и на стороне клиента.

2-я строка в RegisterStartupScript - это ключ, позволяющий проверить, был ли зарегистрирован этот сценарий или нет.

Код в OnPrintPage запускается на веб-сервере, поэтому проверяет только параметры печати серверов, а не клиентов. Он также никогда не будет вызван так, как вы его написали.

В DOM очень мало поддержки функций печати, таких как проверка полей. Вам нужно будет использовать Javascript для манипулирования им и использовать обратные вызовы AJAX, если вам нужно сделать что-то, что вы не можете сделать.

Справочная страница для clientcriptmanager: http://msdn.microsoft.com/en-us/library/system.web.ui.clientscriptmanager%28VS.80%29.aspx

0 голосов
/ 05 января 2012

Вы, похоже, путаете скрипты на стороне сервера и на стороне клиента.

2-я строка в RegisterStartupScript - это ключ, позволяющий проверить, был ли зарегистрирован этот скрипт или нет.

Код в вашей OnPrintPage работает на веб-сервере, поэтому проверяет только параметры печати серверов, а не клиентов.Он также никогда не будет вызван так, как вы его написали.

DOM имеет очень небольшую поддержку функций печати, таких как проверка полей.Вам нужно было бы использовать Javascript для манипулирования им и использовать обратные вызовы AJAX, если вам нужно сделать что-то, что вы не можете сделать.

Справочная страница для clientcriptmanager: http://msdn.microsoft.com/en-us/library/system.web.ui.clientscriptmanager%28VS.80%29.aspx

0 голосов
/ 07 апреля 2011

Когда пользователь решает распечатать вашу веб-страницу из браузера, именно браузер контролирует процесс печати. ​​

Вы не можете видеть или устанавливать значения полей.Однако у вас может быть стиль CSS, который применяется только к печати, который затем можно использовать для другого формата документа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...