>  기사  >  백엔드 개발  >  PHP는 인쇄 문서 기능을 구현합니다.

PHP는 인쇄 문서 기능을 구현합니다.

王林
王林원래의
2023-05-28 16:24:402108검색

많은 웹사이트에서 문서 인쇄 기능을 자주 볼 수 있습니다. 사용자는 인쇄 버튼을 클릭하여 페이지 내용을 인쇄할 수 있습니다. 전통적인 구현 방법은 브라우저 자체의 인쇄 기능을 통해 작동하는 것이지만 이 방법은 스타일이 일관되지 않고 비정상적인 이미지 표시 등 많은 단점이 있습니다. 이러한 문제를 해결하기 위해 PHP를 사용하여 문서 인쇄 기능을 구현할 수 있습니다.

구현 아이디어

PHP를 사용하여 문서 인쇄 기능을 구현하는 기본 아이디어는 인쇄해야 할 내용을 서버 측 스크립트를 통해 PDF 문서로 변환한 후 PDF 파일을 직접 다운로드하거나 인쇄하는 것입니다. 브라우저를 통해. 구체적인 구현 단계는 다음과 같습니다.

1. 인쇄해야 하는 콘텐츠 가져오기

PHP에서는 $_POST 또는 $_GET을 사용하여 표, 그림, 텍스트 등 인쇄해야 하는 콘텐츠를 가져올 수 있습니다. , 등을 웹페이지에 표시합니다. 콘텐츠를 가져온 후에는 이를 HTML 파일로 결합해야 합니다.

2. HTML 파일을 PDF 문서로 변환

타사 라이브러리 TCPDF, wkhtmltopdf, dompdf 등을 사용하는 등 HTML을 PDF 파일로 변환하는 방법은 많습니다. 여기서는 dompdf를 예로 들어 보겠습니다.

먼저 dompdf 라이브러리를 설치하려면 작곡가를 사용해야 합니다.

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

그런 다음 다음 코드를 통해 HTML 콘텐츠를 PDF 파일로 변환합니다.

rrreee

Among $html을 변환해야 합니다. HTML 콘텐츠의 경우 render() 메서드는 HTML을 PDF 파일로 변환하고 stream("document.pdf") 메서드는 다운로드 또는 인쇄를 위해 PDF 파일을 브라우저에 출력합니다.

3. 인쇄 버튼 제공

사용자가 버튼을 클릭하면 PDF 파일이 JavaScript 또는 HTML5의 태그를 통해 로컬로 다운로드되거나 브라우저의 인쇄 기능이 실행됩니다. 인쇄를 위해 직접 호출됩니다. 🎜🎜JavaScript 메소드: 🎜rrreee🎜HTML5 메소드: 🎜rrreee🎜구현 예시🎜🎜다음은 PHP와 dompdf 라이브러리를 사용하여 문서 인쇄 기능을 구현하는 방법을 보여주는 간단한 예시입니다. 🎜🎜1. 인쇄해야 하는 콘텐츠가 포함된 새 HTML 페이지를 만듭니다. 🎜rrreee🎜2. HTML 콘텐츠를 받아 PDF 파일로 변환하는 데 사용되는 새 PHP 페이지를 만듭니다. 🎜rrreee🎜3. 명령줄 dompdf 라이브러리에 설치하려면: 🎜🎜composer require dompdf/dompdf🎜🎜4. PHP의 내장 웹 서버를 시작하려면 다음 명령을 실행하세요: 🎜🎜php -S localhost: 8000🎜🎜찾아보기 브라우저에서 http://localhost:8000을 열어 샘플 페이지에 접속하세요. "인쇄" 버튼을 클릭하면 현재 페이지를 PDF 파일로 변환하고 파일을 다운로드하거나 인쇄할 수 있습니다. 🎜🎜요약🎜🎜PHP를 사용하여 문서 인쇄 기능을 구현하면 기존 브라우저 인쇄 기능의 단점을 해결하고 문서 인쇄 경험과 효과를 향상시킬 수 있습니다. PDF 변환 기능을 구현하기 위해 타사 라이브러리를 사용하면 많은 시간과 노력을 절약할 수 있지만 성능 및 보안 문제에도 주의할 필요가 있습니다. 🎜

위 내용은 PHP는 인쇄 문서 기능을 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.