Heim  >  Artikel  >  Backend-Entwicklung  >  PHP implementiert die Funktion zum Drucken von Dokumenten

PHP implementiert die Funktion zum Drucken von Dokumenten

王林
王林Original
2023-05-28 16:24:402061Durchsuche

Auf vielen Websites sehen wir häufig die Funktion zum Drucken von Dokumenten. Benutzer können den Seiteninhalt ausdrucken, indem sie auf die Schaltfläche „Drucken“ klicken. Die herkömmliche Implementierungsmethode besteht darin, über die eigene Druckfunktion des Browsers zu arbeiten. Diese Methode weist jedoch viele Nachteile auf, z. B. inkonsistente Stile, abnormale Bildanzeige usw. Um diese Probleme zu lösen, kann PHP zur Implementierung der Funktion zum Drucken von Dokumenten verwendet werden.

Implementierungsidee

Die Grundidee der Verwendung von PHP zur Realisierung der Druckdokumentfunktion besteht darin, den zu druckenden Inhalt über einen Server in ein PDF-Dokument umzuwandeln. Erstellen Sie ein Side-Script und laden Sie es dann über den Browser herunter oder drucken Sie diese PDF-Datei direkt aus. Die spezifischen Implementierungsschritte sind wie folgt:

1 Holen Sie sich den Inhalt, der gedruckt werden muss.

In PHP können wir $_POST oder $_GET verwenden, um den Inhalt abzurufen gedruckt werden muss, z. B. auf der Webseite Tabellen, Bilder, Text usw. Nachdem wir den Inhalt erhalten haben, müssen wir ihn in einer HTML-Datei kombinieren.

2. HTML-Dateien in PDF-Dokumente konvertieren

Es gibt viele Möglichkeiten, HTML in PDF-Dateien zu konvertieren, z. B. mithilfe der Bibliotheken von Drittanbietern TCPDF, wkhtmltopdf, dompdf usw. Hier verwenden wir dompdf als Beispiel.

Zuerst müssen Sie Composer verwenden, um die dompdf-Bibliothek zu installieren:

composer require dompdf/dompdfcomposer 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.提供打印按钮

在网页中提供一个打印按钮,当用户点击该按钮时,通过JavaScript或HTML5的标签将PDF文件下载到本地,或直接调用浏览器的打印功能进行打印。

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.新建一个PHP页面,用于接收HTML内容并将其转化为PDF文件:

<?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

Dann Übergeben Sie den folgenden Code, um HTML-Inhalte in PDF-Dateien umzuwandeln:

rrreee

Darunter ist $html der HTML-Inhalt, der konvertiert werden muss. Die render()-Methode konvertiert HTML in PDF-Dateien Die Methode stream("document.pdf") gibt PDF-Dateien zum Herunterladen oder Drucken an den Browser aus.

3. Stellen Sie eine Druckschaltfläche bereit.

Stellen Sie eine Druckschaltfläche auf der Webseite bereit. Wenn der Benutzer auf die Schaltfläche klickt, wird die PDF-Datei über JavaScript oder HTML5 heruntergeladen > Markieren Sie lokal oder rufen Sie zum Drucken direkt die Druckfunktion des Browsers auf. #🎜🎜##🎜🎜#JavaScript-Weg: #🎜🎜#rrreee#🎜🎜#HTML5-Weg: #🎜🎜#rrreee#🎜🎜#Implementierungsbeispiel #🎜🎜##🎜🎜#Das Folgende ist ein einfaches Beispiel zur Demonstration Erfahren Sie, wie Sie PHP und die Dompdf-Bibliothek verwenden, um die Funktion zum Drucken von Dokumenten zu realisieren. #🎜🎜##🎜🎜#1. Erstellen Sie eine neue HTML-Seite mit dem zu druckenden Inhalt: #🎜🎜#rrreee#🎜🎜#2. Erstellen Sie eine neue PHP-Seite, um HTML-Inhalte zu empfangen und in eine PDF-Datei zu konvertieren: #🎜🎜#rrreee#🎜🎜#3. Verwenden Sie Composer, um die dompdf-Bibliothek in der Befehlszeile zu installieren: #🎜🎜##🎜🎜#composer require dompdf/dompdf#🎜🎜##🎜🎜 #4 .Führen Sie den folgenden Befehl aus, um den integrierten Webserver von PHP zu starten: #🎜🎜##🎜🎜#php -S localhost:8000#🎜🎜##🎜🎜#Open http:// Geben Sie im Browser „localhost“ :8000 ein, um auf die Beispielseite zuzugreifen, klicken Sie auf die Schaltfläche „Drucken“, um die aktuelle Seite in eine PDF-Datei zu konvertieren, und laden Sie die Datei herunter oder drucken Sie sie aus. #🎜🎜##🎜🎜#Zusammenfassung#🎜🎜##🎜🎜#Die Verwendung von PHP zur Implementierung der Funktion zum Drucken von Dokumenten kann die Mängel der herkömmlichen Browser-Druckfunktion beheben und das Erlebnis und die Wirkung des Druckens von Dokumenten verbessern. Obwohl die Verwendung einer Bibliothek eines Drittanbieters zur Implementierung der PDF-Konvertierungsfunktion viel Zeit und Mühe sparen kann, müssen Sie auch auf deren Leistungs- und Sicherheitsprobleme achten. #🎜🎜#

Das obige ist der detaillierte Inhalt vonPHP implementiert die Funktion zum Drucken von Dokumenten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn