我知道:基于观点的东西不应该被问到等等,但这不是关于观点,而是现在只是关于仍然存在的东西,或者更确切地说,今天仍然有效的东西。
我的担忧:我正在寻找一种解决方案,以从 PHP/HTML 页面生成单页 pdf 文件,这些页面从数据库中获取内容,并且使用 CSS 进行大量样式化(还包括表格数据和图像)。单击链接时可让您打开或下载 PDF 的功能。 PDF 应该基本上看起来与 A4 大小的相应网页相同(我将以这种方式设置样式)。就像您在 MacOS 的打印对话框中选择“预览/另存为 PDF”一样,但用户不需要任何特定软件,可以在任何操作系统和浏览器上工作。
我搜索了 SO 和网络,发现了很多旧帖子和页面(3 年或更早),例如 Convert HTML + CSS to PDF with PHP? , Generate PDF report from php和 Generate 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/