既存のWebプリント制御技術はいくつかの案に分かれています.


http://haoxiai.net/wangzhanzhizuo/JavaScript/118683.html
既存のWebプリント制御技術はいくつかの案に分かれています.
カスタムコントロールの印刷完了
IEが持つWebBrowserコントロールを利用して印刷を実現する.
第三者コントロールによる印刷
以下は主に前の二つの方面の内容を話します.
一、ユーザー定義のコントロール方式
ユーザー定義のコントロール方式はVBやVCなどのツールを利用してCOMコンポーネントを生成し、定義された印刷フォーマットで印刷元ファイルを分析して印刷を実現します.生成したコンポーネントをクライアントにダウンロードして登録するだけで、クライアントでの印刷が可能です.
難点は主に印刷フォーマットを定義し、どのように印刷元ファイルを分析するかです.既存の比較的良い方法はXML技術を利用して問題を全面的に解決し、XMLを利用して印刷対象のテキストや表などの内容のフォーマットを簡単に定義することができる.しかし、プログラマの開発要求が高く、難易度が高いです.
二、WebBrowserを利用してWebプリントを実現する.
WebBrowserはIEが内蔵するブラウザコントロールであり、ユーザがダウンロードする必要がない.この文書で検討しているのは、IE 6.0バージョンのWebBrowserコントロール技術の内容です.関連する技術要求は、文書の生成、ページの設定、印刷操作の実現などいくつかの段階があります.
(一)、文書の作成
1、クライアントスクリプト方式
クライアントのスクリプトはVScript、javascript、JScriptのいくつかのスクリプト言語に分けられます.IE下開発で使われている文法はJScriptの文法です.javascriptとほとんど区別がないので、javascriptとも言えます.一般的には、JSを使用してDOMドキュメントの分析を行い、DOMはマイクロソフトが提案したWeb文書モデルであり、主にWebスクリプトのプログラミングを実現するために用いられる.
JSを利用してソースページの内容を分析し、印刷したいページ要素を抽出し、印刷を実現します.ソースドキュメントの内容を分析することにより、印刷対象ドキュメントを生成することができます.
利点:クライアントは独立して印刷対象文書の生成を完了し、サーバの負荷を軽減する.
短所:ソースドキュメントの解析操作が複雑で、ソースドキュメントの印刷内容に約束があります.
2、サーバ端末のプログラム方式
サーバ端末プログラム方式は、主にバックグラウンドコードを利用してデータベースから印刷元を読み取り、印刷対象文書を生成する.ページが生成される場合は、CSSを使用して強制的な改ページ制御を実現することも適切に考慮しなければならない.
利点:非常に豊富な印刷対象文書が生成され、対象文書の内容の制御性が高い.印刷内容はデータベースから取得したものですので、生成操作は比較的簡単です.
短所:サーバー側の負荷が大きい;
(二)、ページ設定
ページ設定とは、主に印刷ドキュメントのページ余白、ヘッダー、フッター、紙などの内容を設定することです.ページの設定は印刷ドキュメントのレイアウトの生成効果に直接影響しますので、印刷ドキュメントの生成と密接な関係があります.たとえば、表の行数、大きさ、位置、フォントの大きさなどです.
従来の技術は、IE 6.0に内蔵されたプリントテンプレートを用いてページ設定を制御するものであり、印刷対象ドキュメントに非常に大きな影響を与えることができる.テンプレートは、ページ余白、ヘッダー、フッター、パリティページなどの内容を制御し、ユーザーの設定を取得したり、設定をサーバ端に送信したりすることができます.
印刷テンプレート技術は、プレビューウィンドウと印刷フォーマットを自由に設定し、対象ドキュメントと印刷効果に最大限影響を与えます.
(三)、印刷操作の実現
この機能の実現は主にWebBrowserコントロールの関数インターフェースを利用して印刷、印刷プレビュー(デフォルト)、ページ設定(デフォルト)を実現します.
<object ID='WebBrowser 1'WIDH=0 HEIGHT=0
CLASSID='CLSID:8856 F 961-140 A-11 D 0-A 96 B-00 C 04 FD 705 A 2'
//印刷
WebBrowser 1.ExecWB(6,1)
//印刷設定
WebBrowser 1.ExecWB(8,1)
//印刷プレビュー
WebBrowser 1.ExecWB(7,1)
三、本プロジェクトで採用した印刷方案
サーバ端末のプログラム方式、印刷プレビューインターフェースの呼び出しは、以下の例として、主な参照項目の中の:PageError Print.aspx.vbファイル
メインページ
function PrintPage(iPageIndex,strQuery)
{
var strURL;
strURL = "PageErrorPrint.aspx?PageIndex=" + iPageIndex + "&QueryString=" + strQuery;
winPrint=window.open(strURL,"","left=2000,top=2000,fullscreen=3");
}
印刷ページHTMLソースでのプレビュー制御
<SCRIPT language="javascript">function print(){
document.write("<object ID='WebBrowser' WIDTH=0 HEIGHT=0
CLASSID='CLSID:8856F961-340A-11D0-A96B-00C04FD705A2'></object>");
WebBrowser.ExecWB(7,1);
window.opener=null;
window.close();}
</SCRIPT>