1

以下の方法を印刷に使用します(印刷したい各コントロールを送信します)が、この方法は背景色とフォントを印刷しません...たとえば、送信したコントロールの背景色が灰色の場合、この方法は行います背景色が白で、ソース管理で使用するフォントを使用しない場合が好きです

public static void PrintWebControl(Control ctrl, string Script)
    {
        StringWriter stringWrite = new StringWriter();
        System.Web.UI.HtmlTextWriter htmlWrite = new System.Web.UI.HtmlTextWriter(stringWrite);
        if (ctrl is WebControl)
        {
            Unit w = new Unit(100, UnitType.Percentage); ((WebControl)ctrl).Width = w;
        }
        Page pg = new Page();
        pg.EnableEventValidation = false;
        if (Script != string.Empty)
        {
            pg.ClientScript.RegisterStartupScript(pg.GetType(), "PrintJavaScript", Script);
        }
        HtmlForm frm = new HtmlForm();
        pg.Controls.Add(frm);
        frm.Attributes.Add("runat", "server");
        frm.Controls.Add(ctrl);
        pg.DesignerInitialize();
        pg.RenderControl(htmlWrite);
        string strHTML = stringWrite.ToString();
        HttpContext.Current.Response.Clear();
        HttpContext.Current.Response.Write(strHTML);
        HttpContext.Current.Response.Write("<script>window.print();</script>");
        HttpContext.Current.ApplicationInstance.CompleteRequest();
    }
4

1 に答える 1

1

コードが原因で、背景色が白に変わりません。背景色と背景画像を削除するブラウザです。たとえば、このページを印刷しようとすると、コード サンプルの灰色の背景が白に変わることに気付くでしょう。

ユーザーは、ブラウザー レベルで背景色と画像の印刷を制御できます。たとえば、IE では、次の手順に従います。

CSS 印刷スタイル シートを設定すると、印刷領域をより詳細に制御できます。

于 2013-01-10T07:51:05.053 に答える