我正在创建某种文档生成器。我通过表单发送数据,它将在下一页中加载。现在我需要一个按钮,将此文档下载为pdf文件。 有没有办法做到这一点?我见过几个类似的话题,但是他们通常会将人们引导到在线转换器,这对我没有帮助
答案 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)的库。与此同时,您将学习一些有助于您未来工作的技能。