从PHP / HTML文件生成PDF,包括CSS

时间:2017-03-14 14:13:18

标签: php html css pdf

我知道:基于意见的东西不应该被问及等等,但这不是关于意见,而是现在只是关于仍然存在的东西,或者更确切地说今天仍然有用的东西。

我的担忧:我正在寻找一种解决方案,从PHP / HTML页面生成单页pdf文件,这些文件从数据库中获取内容,并且使用CSS(包括表格数据和图像)进行大量设置。一种功能,可让您在单击链接时打开或下载PDF。 PDF应该基本上看起来与A4大小的相应网页相同(我将这样设计)。好像您在MacOS的打印对话框中选择“预览/另存为PDF”,但没有用户需要任何特定的软件,可以在任何操作系统和浏览器上工作。

我搜索了SO和网络,我找到了很多旧的帖子和页面(3年及更早),例如Convert HTML + CSS to PDF with PHP?Generate PDF report from php和{{ 3}}我无法在这些帖子中看到这些帖子是否仍然是最新/正常的。

所以我必须下载所有内容并将其构建到我的页面中,或许只是发现它不再起作用或者不适合我的情况。

那些有过这种东西经验的人请指点我能找到能够做到这一点并使用PHP 5.6和7的脚本/库的地方吗?它不必支持CSS3,我可以将这些页面限制为CSS2,虽然我在该网站上使用webfonts,但我可以在没有它们的情况下使用PDF。可能是免费的,但也是一个不太昂贵的商业解决方案是可以的。我会非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

您可以使用mpdf库。这很容易学习。这是示例代码。 它完美地运作。

您也可以使用post方法从其他页面获取值。你的选择。

<?php $student_id = $_GET['student_id']; ?>
<?php
include("mpdf/mpdf.php");
$html .= "
<html>
<head>
<style>
body {font-family: sans-serif;
    font-size: 10pt;
    background-image: url(\"images/ok.jpg\");

    background-repeat: no-repeat;
    padding-top:10pt;
    margin-top: 100px;
    padding-top: 50px;
}
td { vertical-align: top; 
    border-left: 0.6mm solid #000000;
    border-right: 0.6mm solid #000000;
    align: center;
}

p.student_id{
    padding-left : 140px;
    padding-top  : -27px;
} 

</style>
</head>
<body>
<!--mpdf                                                                          

<p class=\"student_id\">$student_id</p>


<sethtmlpageheader name='myheader' value='on' show-this-page='1' />
<sethtmlpagefooter name='myfooter' value='on' />
mpdf-->


</body>
</html>
";

$mpdf=new mPDF();
$mpdf->WriteHTML($html);
$mpdf->SetDisplayMode('fullpage');

$mpdf->Output();
?>