ホームページ  >  記事  >  バックエンド開発  >  phpはドキュメントの印刷機能を実装します

phpはドキュメントの印刷機能を実装します

王林
王林オリジナル
2023-05-28 16:24:402108ブラウズ

多くの Web サイトでは、ドキュメントを印刷する機能がよくありますが、ユーザーは印刷ボタンをクリックすることでページの内容を印刷できます。従来の実装方法は、ブラウザー独自の印刷機能を介して動作することですが、この方法には、スタイルの不一致、画像の表示異常など、多くの欠点がありました。これらの問題を解決するために、PHP を使用してドキュメントの印刷機能を実装できます。

実装アイデア

PHP を使用してドキュメントの印刷機能を実現する基本的なアイデアは、印刷する必要があるコンテンツをサーバーサイド スクリプトを通じて PDF ドキュメントに変換し、次に、ブラウザを通じて PDF ファイルをダウンロードするか、直接印刷します。具体的な実装手順は次のとおりです:

1. 印刷する必要があるコンテンツを取得する

PHP では、$_POST または $_GET を使用して、印刷する必要があるコンテンツを取得できます。 、表、写真、テキストなど。コンテンツを取得したら、それを HTML ファイルに結合する必要があります。

2. HTML ファイルを PDF ドキュメントに変換する

HTML を PDF ファイルに変換するには、サードパーティのライブラリ TCPDF、wkhtmltopdf、dompdf などを使用するなど、さまざまな方法があります。ここでは例として dompdf を使用します。

まず、composer を使用して dompdf ライブラリをインストールする必要があります:

composer require dompdf/dompdf

次に、次のコードを使用して変換します。 HTML コンテンツを PDF ファイルに変換する :

use DompdfDompdf;
$dompdf = new Dompdf();
$dompdf->loadHtml($html);
$dompdf->render();
$dompdf->stream("document.pdf");

このうち、$html は変換する必要がある HTML コンテンツです。render() メソッドは HTML を PDF ファイルに変換します。stream("document. pdf") メソッドは、ダウンロードまたは印刷のために PDF ファイルをブラウザーに出力します。

3. 印刷ボタンを提供する

Web ページに印刷ボタンを提供します。ユーザーがボタンをクリックすると、PDF ファイルが JavaScript または を通じてローカルにダウンロードされます。 HTML5のタグを使用するか、直接ブラウザのprint関数を呼び出して印刷します。

JavaScript の方法:

function print() {
    var pdfUrl = 'http://example.com/document.pdf'; // PDF文件的URL
    var pdfWin = window.open(pdfUrl);
    pdfWin.print();
}

HTML5 の方法:

<a href="http://example.com/document.pdf" target="_blank" rel="noopener noreferrer" onclick="window.print(); return false;">打印</a>

実装例

以下は、PHP と dompdf ライブラリを使用して実装する方法を示す簡単な例です。ドキュメントの印刷機能。

1. 印刷するコンテンツを含む新しい HTML ページを作成します:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Print Document</title>
</head>
<body>
    <h1>打印测试</h1>
    <table>
        <tr>
            <th>姓名</th>
            <th>性别</th>
            <th>年龄</th>
        </tr>
        <tr>
            <td>张三</td>
            <td>男</td>
            <td>25</td>
        </tr>
        <tr>
            <td>李四</td>
            <td>女</td>
            <td>28</td>
        </tr>
    </table>
    <script>
        function print() {
            var xhr = new XMLHttpRequest();
            xhr.open('POST', 'print.php', true);
            xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
            xhr.onreadystatechange = function() {
                if (xhr.readyState === 4 && xhr.status === 200) {
                    var pdfUrl = xhr.responseText;
                    var pdfWin = window.open(pdfUrl);
                    pdfWin.print();
                }
            };
            xhr.send('content=' + encodeURIComponent(document.body.innerHTML));
        }
    </script>
    <button onclick="print()">打印</button>
</body>
</html>

2. HTML コンテンツを受信して​​ PDF ファイルに変換するために使用される新しい PHP ページを作成します:

<?php
require 'vendor/autoload.php';

use DompdfDompdf;

if (isset($_POST['content'])) {
    $html = $_POST['content'];

    $dompdf = new Dompdf();
    $dompdf->loadHtml($html);
    $dompdf->render();
    $dompdf->stream();
}

3.composer を使用して、コマンド ラインで dompdf ライブラリをインストールします:

composer require dompdf/dompdf

4. 次のコマンドを実行して、 PHP の組み込み Web サーバーを起動します:

php -S localhost:8000

ブラウザで http://localhost:8000 を開いてサンプル ページにアクセスし、クリックします。 「印刷」ボタンをクリックすると、現在のページが PDF ファイルに変換され、ファイルがダウンロードまたは印刷されます。

概要

PHP を使用してドキュメント印刷機能を実装すると、従来のブラウザ印刷機能の欠点が解決され、ドキュメント印刷のエクスペリエンスと効果が向上します。サードパーティのライブラリを使用して PDF 変換機能を実装すると、時間と労力を大幅に節約できますが、そのパフォーマンスとセキュリティの問題にも注意する必要があります。

以上がphpはドキュメントの印刷機能を実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。