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の事例の紹介

推薦する

SQL効率を分析する方法を説明する

Explain コマンドは、データベースのパフォーマンス問題を解決するために最初に推奨されるコマンド...

MySQLデータベースを使い始めるための最初のステップはテーブルを作成することです

データベースを作成する右クリック - 新しいデータベースを作成ライブラリ名を入力し、文字セットと並べ...

JavaScript のドキュメント オブジェクト モデル (DOM)

目次1. DOMとは何か2. 要素を選択する3. getElementById() 4. クエリセレ...

JS 4つの楽しいハッカー背景効果コードを共有する

目次例1例2例3例4例1 <html> <ヘッド> <title>...

Dockerでudpポート番号を指定する問題を解決する

Docker はコンテナを起動するときにアクセス ポートを指定します。複数の -p オプションを使用...

MySQLデータのバックアップ方法の選択と考え方

目次1. rsync、cpでファイルをコピーする2. xxxをoutfile構文に選択する3. 遅延...

Postman に基づく HTTP インターフェース テスト プロセスの分析

偶然、素晴らしい人工知能のチュートリアルを発見したので、みんなと共有せずにはいられませんでした。この...

ウェブサイトのテキストはまだデザインする必要がありますか?

多くの人が、ウェブサイト上のテキストはデザインする必要があるのか​​と疑問に思うかもしれません。多く...

CentOS7 で jar アプリケーションの起動を設定する方法

プロジェクトの展開中に遭遇した落とし穴Zhihudemo を展開する際、Jenkins などの自動展...

自分のブログを構築しながら学んだこと

<br />ブログを始めて 1 年、私はブログの内外で多くのことを個人的に学びました。ま...

JavaScript イベント委任 (プロキシ) の使用例の詳細

目次導入例: イベントの委任記述方法1: イベント委譲書き方2: 各子要素がイベントをバインドする例...

Dockerネットワーク作成に--subnetを追加した後の問題を解決する

Docker ネットワークの作成に –subnet を追加した後、docker network ls...

XML構文の詳細な説明

1. 文書化ルール1. 大文字と小文字が区別されます。 2. 属性値は引用符(一重引用符または二重引...

mysql 8.0.15 winx64 解凍バージョン グラフィック インストール チュートリアル

システムをインストールした後、毎回いくつかのソフトウェアを再インストールする必要があります。ソフトウ...