ホームページ >バックエンド開発 >C#.Net チュートリアル >asp.net 印刷コントロールの使用方法
印刷効果や制御性はあまり良くありませんが、嫌がらずに使用でき、一般的な印刷に対応できます。
コードは次のとおりです:
コード
//调用PrintControl.ExecWB(?,?)实现直接打印和打印预览功能。(直接用系统提供的print()方法打印无法隐藏某些区域) //preview:是否显示预览。null/false:不显示,true:显示 function printPage(preview) { try { var content=window.document.body.innerHTML; var oricontent=content; while(content.indexOf("{$printhide}")>=0) content=content.replace("{$printhide}","style='display:none'"); if(content.indexOf("ID=\"PrintControl\"")<0) content=content+"<OBJECT ID=\"PrintControl\" WIDTH=0 HEIGHT=0 CLASSID=\"CLSID:8856F961-340A-11D0-A96B-00C04FD705A2\"></OBJECT>"; window.document.body.innerHTML=content; //PrintControl.ExecWB(7,1)打印预览,(1,1)打开,(4,1)另存为,(17,1)全选,(10,1)属性,(6,1)打印,(6,6)直接打印,(8,1)页面设置 if(preview==null||preview==false) PrintControl.ExecWB(6,1); else PrintControl.ExecWB(7,1); //OLECMDID_PRINT=7; OLECMDEXECOPT_DONTPROMPTUSER=6/OLECMDEXECOPT_PROMPTUSER=1 window.document.body.innerHTML=oricontent; } catch(ex){ alert("执行Javascript脚本出错。"); } } function printConten(preview, html) { try { var content=html; var oricontent=window.document.body.innerHTML; while(content.indexOf("{$printhide}")>=0) content=content.replace("{$printhide}","style='display:none'"); if(content.indexOf("ID=\"PrintControl\"")<0) content=content+"<OBJECT ID=\"PrintControl\" WIDTH=0 HEIGHT=0 CLASSID=\"CLSID:8856F961-340A-11D0-A96B-00C04FD705A2\"></OBJECT>"; window.document.body.innerHTML=content; //PrintControl.ExecWB(7,1)打印预览,(1,1)打开,(4,1)另存为,(17,1)全选,(10,1)属性,(6,1)打印,(6,6)直接打印,(8,1)页面设置 if(preview==null||preview==false) PrintControl.ExecWB(6,1); else PrintControl.ExecWB(7,1); //OLECMDID_PRINT=7; OLECMDEXECOPT_DONTPROMPTUSER=6/OLECMDEXECOPT_PROMPTUSER=1 window.document.body.innerHTML=oricontent; } catch(ex){ alert("执行Javascript脚本出错。"); } }
上記の 2 つの関数は、Js ファイルに配置されます。 スクリプト ファイルを適用し、ページ コンテンツでさらにカプセル化された関数を呼び出すことで、コンテンツの指定された部分を印刷できます。
<script language="javascript"> function Print(preview) { var text = document.getElementById("content").innerHTML; printConten(preview, text); }印刷 効果はおおよそ次の図に示すようになります。印刷されたページがフレーム ページにある場合は、「選択したフレームのみを印刷」オプションを選択する必要があります。 この方法を使用すると、コントロールをインストールする必要がなく、互換性という優れた利点があります。ただし、レポートの内容、特に一部のレポートの印刷の場合、複雑な内容の場合、制御がさらに面倒になるようです。はい、いくつかの欠点はありますが、全体的にはより良い選択です。 その後、ドキュメントの印刷に関する作業を行う必要があるとき、このコントロールではそれができなかったため、印刷をより適切に処理できるメソッドまたはコントロールが必要になりました。 気になるID印刷機能も搭載した、より良い印刷コントロールを見つけました。とても使いやすくておすすめです。 このコントロールを適用すると、通常のレポートの印刷効果は次のようになります: 上記 2 つのレポートの印刷は実際には似ており、どちらも HTML コンテンツの一部を印刷しますが、後者の方が見た目が良く、非常に完全なレポートを提供します。機能の設定。 コードは大まかに以下のとおりです。
コード
<script language="javascript"> function Print(preview) { var text = document.getElementById("content").innerHTML; printConten(preview, text); }多くの場合、私たちが持っていないコンテンツは CSS によって制御されているため、これらのスタイルがないと HTML の一部が印刷される場合があり、テーブルの形式とフォントが変更される可能性があります。次に、HTML スタイルを設定する必要があります。 印刷コンテンツのスタイルを設定すると、インターフェイスの効果がさらに向上します。 スタイルを設定するコードは以下の通りです。
コード
<script language="javascript" type="text/javascript"> function Preview() {//打印预览 CreateLicenseData(); LODOP.SET_SHOW_MODE("PREVIEW_IN_BROWSE", 1); LODOP.PREVIEW(); }; function CreateLicenseData() { LODOP.PRINT_INIT("申请处理单"); var strBodyStyle = "<link type='text/css' rel='stylesheet' href='http://www.cnblogs.com/Themes/Default/style.css' /><style><!--table { border:1;background-color: #CBCBCC } td {background-color:#FFFFFE;border: 1; } th { background-color:#F1F1F3;padding-left:5px;border:1}--></style>"; var strFormHtml = strBodyStyle + "<body>" + document.getElementById("content").innerHTML + "</body>"; LODOP.ADD_PRINT_HTM(20, 40, 610, 900, strFormHtml); LODOP.PREVIEW(); } </script>asp.net 印刷コントロールの使用方法に関連するその他の記事については、PHP 中国語 Web サイトに注目してください。