php - 从包含 CSS 的 PHP/HTML 文件生成 PDF

标签 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 phpGenerate PDF from HTML PHP我无法在这些帖子中看到其中是否仍然是最新的/有效的。

所以我不得不下载所有这些东西并将其构建到我的页面中,也许只是发现它不再起作用或者并不真正适用于我的情况。

有这方面经验的人可以指点我可以找到能够执行此操作并使用 PHP 5.6 和 7 的脚本/库的地方吗?它不必支持 CSS3,我可以将这些页面限制为 CSS2,虽然我在该网站上使用 webfonts,但我可以在没有它们的情况下处理 PDF。可能是免费的,但不太昂贵的商业解决方案也可以。如果有任何帮助,我将不胜感激。

最佳答案

您可以使用 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();
?>

关于php - 从包含 CSS 的 PHP/HTML 文件生成 PDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42788346/

相关文章:

javascript - 删除html中的页眉和页脚以打印页面

html - 绝对位置元素在静态父元素中的行为究竟如何

jquery - 自动调整动态文本大小以填充固定大小的容器

php - 以特定的 html 结构显示一些简单和可变产品的数据

php - sql select查询多个不完整单词

php - 允许 PHP date() 函数识别 dd-mm-yy 格式

php - 如何从 MySQL 查询结果中的特定列中找出值?

html - 通过CSS选择器选择所有html中第一个和最后一个出现的标签

jquery - CSS & jQuery : slideshow not. .. 滑动

css - 如何为 jqGrid 中的每个单元格分配一个唯一的 CSS id?