下载页面为pdf文件

时间:2016-03-07 10:29:29

标签: javascript php html file

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

4 个答案:

答案 0 :(得分:4)

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

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

如果您有服务器访问权限,我建议您使用: - wkhtmltopdf(www.wkhtmltopdf.org) 但在这种情况下,您需要首先将文档创建为静态html文件,包括所有样式和内容。 然后你可以简单地通过一个命令将那个html documento转换成一个pdf:

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

干杯

答案 1 :(得分:2)

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

  

FPDF是一个PHP类,它允许使用纯PHP生成PDF文件,也​​就是说不使用PDFlib库。 FPDF中的F代表Free:您可以将它用于任何用途并根据您的需要进行修改。

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

您也可以使用PHP's built-in function

答案 2 :(得分:1)

我使用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页),那么它很长时间生成这个文件。

答案 3 :(得分:1)

我认为您需要寻找一个能够为您提供重复工作和重复代码(如TCPDF或FPDF)的库。与此同时,您将学习一些有助于您未来工作的技能。