asp.net 印刷コントロールの使用方法

高洛峰
リリース: 2017-01-11 10:26:15
オリジナル
1907 人が閲覧しました

印刷効果や制御性はあまり良くありませんが、嫌がらずに使用でき、一般的な印刷に対応できます。
コードは次のとおりです:
コード

//调用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=&#39;display:none&#39;"); 
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); 
}
ログイン後にコピー

印刷 効果はおおよそ次の図に示すようになります。印刷されたページがフレーム ページにある場合は、「選択したフレームのみを印刷」オプションを選択する必要があります。

asp.net 打印控件使用方法

この方法を使用すると、コントロールをインストールする必要がなく、互換性という優れた利点があります。ただし、レポートの内容、特に一部のレポートの印刷の場合、複雑な内容の場合、制御がさらに面倒になるようです。はい、いくつかの欠点はありますが、全体的にはより良い選択です。

その後、ドキュメントの印刷に関する作業を行う必要があるとき、このコントロールではそれができなかったため、印刷をより適切に処理できるメソッドまたはコントロールが必要になりました。

気になるID印刷機能も搭載した、より良い印刷コントロールを見つけました。とても使いやすくておすすめです。

このコントロールを適用すると、通常のレポートの印刷効果は次のようになります:

asp.net 打印控件使用方法

上記 2 つのレポートの印刷は実際には似ており、どちらも HTML コンテンツの一部を印刷しますが、後者の方が見た目が良く、非常に完全なレポートを提供します。機能の設定。

コードは大まかに以下のとおりです。

コード

<script language="javascript"> 
function Print(preview) { 
var text = document.getElementById("content").innerHTML; 
printConten(preview, text); 
} 
 
 
  
 
ログイン後にコピー

多くの場合、私たちが持っていないコンテンツは CSS によって制御されているため、これらのスタイルがないと HTML の一部が印刷される場合があり、テーブルの形式とフォントが変更される可能性があります。次に、HTML スタイルを設定する必要があります。

asp.net 打印控件使用方法

印刷コンテンツのスタイルを設定すると、インターフェイスの効果がさらに向上します。

asp.net 打印控件使用方法

スタイルを設定するコードは以下の通りです。

コード

<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=&#39;text/css&#39; rel=&#39;stylesheet&#39; href=&#39;http://www.cnblogs.com/Themes/Default/style.css&#39; /><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 サイトに注目してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート