下载页面为 pdf 文件

Download page as pdf file

本文关键字:pdf 文件 下载      更新时间:2023-09-26

我正在创建某种文档生成器。我通过表单发送数据,它在下一页加载。现在我需要一个按钮,将此文档下载为 pdf 文件。有什么办法可以做到这一点吗?我很少看到类似的主题,但它们通常会将人们引导到在线转换器,这对我没有帮助

我过去以更多方式做过类似的事情。如果你想避免在线转换器,那么我认为你应该在使用PHP库或(如果你可以访问服务器)专用软件之间进行选择。

有一些很好的PHP库针对PDF创建,例如:- TCPDF (www.tcpdf.org)- FPDF (www.fpdf.org)

如果您有服务器访问权限,我建议您使用:- wkhtmltopdf (www.wkhtmltopdf.org)但在这种情况下,您需要首先将文档创建为静态 html 文件,其中包含所有样式和内容。然后,您只需通过一个逗号将该 html 文档转换为 pdf:

wkhtmltopdf/path/to/document.html/path/to/generated .pdf

干杯

您可以使用 FPDF,这是一个很好的开源解决方案来生成 PDF,并支持多种类型的 PDF 布局。这个解决方案可以在PHP中实现。

FPDF是一个PHP类,它允许使用纯PHP生成PDF文件,也就是说,不使用PDFlib库。FPDF 的 F 代表免费:您可以将其用于任何类型的用途并对其进行修改以满足您的需求。

要使用PHP从HTML生成PDF,您可以使用mpdf。

您也可以使用 PHP 的内置函数。

我使用mpdf。文档:http://mpdf1.com/manual/index.php?tid=452您可以添加自己的css文件,页眉,页脚等。

<?php
include("config.php");
include("MPDF54/mpdf.php");
$i = 0;
if(isset($_POST['apstiprinat'])){ 
    $patiess = $_POST['apstiprinat'];
    if($patiess == "apstiprinat"){ 
        function prieksmeti_izdruka(){
            $pr = ""; 
            $i = 0; 
            $result = mysql_query("SELECT prieksmets FROM prieksmeti"); 
            $pr .= "<table>";
            $pr .= "<tr><td><b>Nr.</b></td><td><b>Prieksmeta nosaukums</b></td></tr>";
                while($row = mysql_fetch_array($result)){
                $i++;
                    $pr .= "<tr><td>{$i}.</td><td>{$row['prieksmets']}</td></tr>";
                }
            $pr .= "</table>";
            return $pr;
        }
        $html = "".prieksmeti_izdruka()."";
        $mpdf=new mPDF('utf-8');
        $mpdf->SetHeader('Mācību priekšmeti {DATE D-M-Y}');
        //$mpdf->setFooter('{PAGENO}');
        $mpdf->useOnlyCoreFonts = true;
        $mpdf->SetDisplayMode('fullpage');
        $stylesheet = file_get_contents('noformejums.css'); 
        $mpdf->WriteHTML($stylesheet,1); 
        $mpdf->WriteHTML($html);
        $mpdf->Output();
        exit;
    }
} 
else { echo "Izdrukas apstiprinājums nav saņemts!;(";}
 ?>

这个库的缺点是你需要复制你的代码。此库接受一个参数。在这种情况下$pr我添加所有字符串的地方。

另一个缺点是,如果您需要pdf,其中非常非常长的表格(约100页),那么它会很长地生成此文档。

我认为您需要寻找一个可以避免所有重复工作和重复代码(如 TCPDF 或 FPDF)的库。 同时,您将学习一些有趣的技巧,这些技巧将对您将来的工作有所帮助。