Web 印刷の代替方法 wfmazhenhai のブログから選択
キーワード Web 印刷の代替方法
出典
B/S メソッドを使用してアプリケーションを作成したことがある人なら誰でも、このような問題に遭遇する可能性があると思います。レポートの印刷。ブラウザの印刷メニューを使用して印刷すると、アプリケーション メニューなど、Web ページ上の不要な部分がレポートに印刷されます。 Web ページを印刷するために印刷メニューを選択すると、Web ページ内のすべてのコンテンツが印刷されるため、アプリケーションにフレームがある場合、印刷されるコンテンツには各フレーム内のコンテンツが含まれ、実際に必要なコンテンツはその一部にすぎません。したがって、多くのアプリケーションは印刷機能をバックグラウンドでしか実行できません。この状況では何をすべきでしょうか?実際、Web ページの印刷機能を実装するにはさまざまな方法があります。
1 つの方法は、Crystal Reports などのプロ仕様の印刷ツールを使用することです。 Visual Studio 5.0 を使用したことがある友人はこのツールを覚えているはずですが、当時のバージョンはわずか 4.0 でした。現在の最新バージョンはバージョン 9 であり、Crystal Reports の最新バージョンは WEB 印刷をサポートしています。最も簡単な方法は、最初に Crystal Reports を使用してテンプレートを作成し、次に ASP を使用して、準備されたテンプレートをパラメータ付きで呼び出すことです。 Crystal Reports が Web ページ上にレポートを生成した後、そのレポートを直接印刷したり、比較に合格する Excel ファイルなどの他のファイルに転送したりできます。 Crystal Reports を使用すると、非常に美しいスタイルを作成できます。Crystal Reports の開発能力が鍵となります。ただし、Crystal Reports は価格が高いため、プロジェクトの収益性が非常に高い場合にのみ購入できます。
2 番目の方法は、サードパーティのオンライン印刷コントロールを購入することです。コストは Crystal Reports よりも安価ですが、有効性とパフォーマンスは異なります。
3 番目の方法は、スタイル シートと JavaScript カスタム関数を使用することです。 Web ページの印刷はスタイル シートと JavaScript によって実現されており、その効果は許容範囲内です。ここに誰もが見てわかる例があります。以下は、印刷関数の実装の詳細な説明です。
OK、すべての準備が整いました。ここで DP 関数を呼び出します。同じ Web ページ上で呼び出されるボタンを設計している場合は、直接呼び出すことができます。フレーム メソッドを使用し、呼び出されるボタンが別の Web ページ上にある場合は、 DP 関数 window.focus() コマンドを最初の行に追加します。追加しないと、ボタンのある Web ページのみが印刷されます。
4 番目の方法、実装は注意が必要な方法です。同じことが window.print() を呼び出すことによって実現されますが、印刷するコンテンツは Web ページとして特別に生成され、印刷ボタンは別のフレーム上にあります。レポート Web ページが mainFrame 上にあり、ボタンが topFrame 上にあるとします。ボタンは PrintReports() 関数を呼び出します。PrintReports() 関数は次のようにして印刷を実現します。
function PrintReports() //topFrame Web ページの関数
{
試してください。
//*********************** ******* ***********************************
// エラー処理 (if) MainFrame の Web ページには DP 機能がありません。印刷しないでください。
// ******************************* ************ ************
{
window.parent.frames("mainFrame").DP();
}
catch(e)
{ alert("印刷するオブジェクトがありません!");
}
}
function DP() // メインフレーム Web ページの関数
{
window.focus();
if (window.print)
{
window.print();
}
}
個人的にはこれが一番だと思います便利な方法。
最後に、IE ブラウザの「ファイル - ページ設定」で「ヘッダー、ページコーナー」の設定を削除すると、より効果的です。 (転載)