php 输出pdf流文件,php使用tcpdf导出pdf文件

需求:

将页面中内容以pdf形式导出

准备:

TCPDF 地址: https://tcpdf.org/

思路:

前端获取到要导出页面的html传递给后端,后端通过tcpdf来进行导出操作。

前端代码如下:

//......

//要导出的内容

//......

导出pdf

//......

function exPdf() {

var html = document.getElementById("pdf-content").innerHTML;

$("#html_vaue").val(html);

$('#html_form').submit();

}

后端代码如下:

class PdfController

{

public function getPage($html){

$pageHtml = <<

html>

{$html}

EOF;

return $pageHtml;

}

/**

* 生成pdf文件

*/

public function createPdfAction(){

//引入tcpdf

$door = dirname( $this->container->get('kernel')->getRootDir() ). DIRECTORY_SEPARATOR;

require_once implode('/', [$door, 'vendor/tecnickcom/tcpdf/tcpdf.php']);

//生成pdf文件名以及对应内容

$html = $this->getPage(self::$request->get("html",""));

$file_name = self::$request->get("file_name","pdf".time()).'.pdf';

//替换\n

$html = str_replace("\n","",$html);

//TCPDF使用

$pdf = new \TCPDF();

$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));

$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));

$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);

$pdf->SetFooterMargin(PDF_MARGIN_FOOTER);

$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);

$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);

$pdf->setFontSubsetting(false);

$pdf->SetFont('stsongstdlight', '', 10, '', false);

$pdf->AddPage();

//写入html  I:在浏览器中打开,D:下载,F:在服务器生成pdf ,S:只返回pdf的字符串

$pdf->writeHTML($html, true, false, true, false, '');

$pdf->Output($file_name, 'D');

exit();

}

}

转载时请注明出处及相应链接,本文永久地址:https://blog.yayuanzi.com/25393.html

75d087ef9a9fb11dc373caaf33adbf7f.png

微信打赏

支付宝打赏

感谢您对作者Miya的打赏,我们会更加努力!    如果您想成为作者,请点我

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值