HTML印刷関連の操作と実装の詳細な説明

HTML印刷関連の操作と実装の詳細な説明

原則的にはwindow.print()メソッドを呼び出すことですが、このメソッドは現在のページ全体を印刷することしかできないため、部分的な印刷を解決するために次のソリューションが使用されます。

1: iframeを使用して印刷する必要がある要素とスタイルを挿入し、printを呼び出します。

// サンプルコード function print () {
    ifElement = document.getElementById('ifId') とします。
    定数addHtmlPrint = () => {
        定数コンテンツ = ifElement.contentWindow || ifElement.contentDocument
        content.document.body.innerHTML = this.detailTable
        const styleEle = document.createElement('style')
        /* 印刷時にヘッダーとフッターを削除します*/
        styleEle.innerHTML = '@media print {@page { margin: 5mm; }}'
        content.document.getElementsByTagName('head')[0].appendChild(styleEle)

        /* iframe 内のリソースが読み込まれ、画像が img 形式でインポートされていることを確認します*/
        ifElement.onload = () => {
            コンテンツ.print()
        }
    }
    this.getDetailTable()

    if (ifElement) {
        // 作成されている場合は直接印刷します addHtmlPrint()
    } それ以外 {
        ifElement = document.createElement('iframe')
        ifElement.setAttribute('id', 'ifId')
        ifElement.setAttribute('style', 'display:none')
        document.body.appendChild(ifElement)

        HTML 印刷を追加します。
    }
}

2: @media printを使用して、現在のページで印刷するときに非表示にする必要がある要素を設定します。

@media 印刷{
    /* ここで、印刷する必要のない要素を非表示に設定します*/
    .隠し要素{
        表示:なし;
        /* 可視性:非表示; */
    }
    /*用紙は幅1200ピクセル、高さ800ピクセルに設定されています*/
    @ページ{
        サイズ:1200px 800px;
    }
}
  • <link href="/example.css" media="print" rel="stylesheet" /> 印刷時に使用するスタイルを指定します
  • 印刷イベントをリッスンします。window.addEventListener('beforeprint|| afterprint', ()=> {});

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

<<:  一般的な JavaScript メモリ エラーと解決策

>>:  SQLデータベースの14の事例の紹介

推薦する

Linux プラットフォームでの Zabbix エージェントのインストールと設定方法

ここでは、Linux プラットフォームでの Zabbix エージェントのインストールと構成について簡...

MySQL 演算子の具体的な使用法 (and、or、in、not)

目次1. はじめに2. 本文2.1 および演算子2.2 または演算子2.3 オペレーター2.4 no...

Docker+K8S+GitLab/SVN+Jenkins+Harbor をベースにした継続的インテグレーション配信環境の構築に関する詳細なチュートリアル

目次環境設定の概要1.K8Sとは何ですか? 2. K8S を使用する理由3. K8S を使用する利点...

流星効果を実現する JavaScript キャンバス

この記事では、JavaScriptキャンバスで流星の特殊効果を表示するための具体的なコードを参考まで...

Linuxブートサービスを起動する2つの方法

目次rc.local メソッドchkconfig メソッドrc.local メソッド1 まず自動的に...

JavaScript 非同期プログラミングにおける Promise の初期の使用法の詳細な説明

1. 概要Promise オブジェクトは、ES6 で提案された非同期プログラミングの仕様です。非同期...

MySQL における単一テーブルと複数テーブル、およびビューと一時テーブルに対する Update と Select の違い

1. テーブルAのデータを使用してMySQLのテーブルBの内容を更新するたとえば、データ テーブル内...

Dockerを使用して開発環境を構築する方法を素早く習得します

プラットフォームが成長し続けるにつれて、プロジェクトの研究開発は、開発者向けのさまざまな外部環境、特...

MySQLのorder byとlimitを混在させる際の落とし穴の詳細な説明

MySQL では、ソートには order by を、ページングには limit をよく使用します。最...

Linux ファイル記述子、ファイルポインタ、および inode の詳細

目次Linux - ファイル記述子、ファイルポインタ、インデックスノード1. Linux - ファイ...

スペース均等互換性の問題を解決する2つの方法についての簡単な説明

flex は 2009 年のリリース以来、ほぼすべてのブラウザでサポートされています。シンプルでレス...

Docker コンテナのネットワーク設定によく使われるコマンドの詳しい説明

基本的なネットワーク構成Docker はイメージに基づいて複数のコンテナを「開く」ことができ、各コン...

JavaScript はクラス宝くじアプレットを実装します

この記事では、クラス抽選アプレットを実装するためのJavaScriptの具体的なコードを参考までに紹...

Vue ページ スタック マネージャーの詳細

目次2. 試した方法2.1 キープアライブ2.2 ネストされたルートを持つ CSS 3. 機能説明4...