11
2023
07

php PDF插件

转载pdf

1 tcpdf

composer require tecnickcom/tcpdf

require_once './tcpdf/vendor/autoload.php';
$content="..."; 
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false); 
$pdf->SetFont('msyh', '', 8);
$pdf->setPrintHeader(false); $pdf->AddPage(); 
$pdf->writeHTML($content, true, false, false, false, '');
// $pdf->Output('example.pdf', 'I'); //输出到浏览器
$pdf->Output('example.pdf', 'D');//下载

2 mpdf

composer require mpdf/mpdf

require_once './mpdf/vendor/autoload.php';
$content="...";
$mpdf = new \Mpdf\Mpdf(['UTF-8', 'A4', '', '', 32, 25, 27, 25, 16, 13]);
$mpdf->writeHTML($content);
$mpdf->Output(); //输出到浏览器
//$mpdf->Output('中文.pdf', true); //下载

3 dompdf

composer require dompdf/dompdf

require_once './dompdf/vendor/autoload.php';
$content = '<div style="width: 80%;padding-right: 3rem;padding-left:3rem;margin-right:3rem;margin-left:3rem;font-family:\'msyh\'">
  ...
    </div>';
$dompdf = new \Dompdf\Dompdf();
$dompdf->loadHtml($content);
$dompdf->setPaper('A4', 'portrait');
$dompdf->render();
$dompdf->output();
$dompdf->stream('my.pdf', ['Attachment' => 0]); //输出到浏览器
// $dompdf->stream('my.pdf', ['Attachment' => 1]);  //下载

4 wkhtmltopdf 

官方下载

wkhtmltopdf可以直接把任何一个可以在浏览器中浏览的网页直接转换成一个pdf,首先说明一下它不是一个php 类,而是一个把html页面转换成pdf的一个软件(需要安装在服务器上),但是它并不是一个简单的桌面软件,而且它直接cmd批处理的,使用php中的 shell_exec()函数就可以调用它。
使用版本  wkhtmltox-0.12.4   
 用时css放在页面上,先生成html文件,再把HTML文件转成pdf文件
$filename = 'pdf/' . $stage_id;
file_put_contents("{$filename}.html", $content);
$res = exec("wkhtmltopdf {$filename}.html {$filename}.pdf", $output);
if (file_exists("{$filename}.pdf")) {
    $file_size = filesize("{$filename}.pdf");
    Header("Content-type:application/octet-stream");
    Header("Accept-Ranges:bytes");
    Header("Accept-Length:" . $file_size);
    Header("Content-Disposition:attachment;filename=" . $title . '.pdf');
    echo file_get_contents("{$filename}.pdf");
}
exit;


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。