php 使用tcpdf 循环获取图片并批量生成pdf文件图片居中显示设置背景色
程序员文章站
2022-07-03 12:05:36
...
前提使用composer 安装好这个插件
public function getCreatePdf(Request $request)
{
try {
$pdf = new \TCPDF();
// 设置文档信息
$pdf->SetCreator('阿诺大脑研报预览');
$pdf->SetAuthor('阿诺大脑研报预览');
$pdf->SetTitle('阿诺大脑研报预览');
$pdf->SetSubject('阿诺大脑研报预览');
$pdf->SetKeywords('TCPDF, PDF, PHP');
// $logo_path = $_SERVER['DOCUMENT_ROOT'].'upload/images/logo.png';
$logo_path = 'http://cloudview.p.wealthbetter.com/upload/images/logo.png';
// 设置页眉和页脚信息
$pdf->SetHeaderData( 'tcpdf_logo.jpg', 30, 'cloud.com', '阿诺大脑研报预览', [0, 64, 255], [0, 64, 128]);
$pdf->setFooterData([0, 64, 0], [0, 64, 128]);
// 设置页眉和页脚字体
$pdf->setHeaderFont(['stsongstdlight', '', '10']);
$pdf->setFooterFont(['helvetica', '', '8']);
// 设置默认等宽字体
$pdf->SetDefaultMonospacedFont('courier');
// 设置间距
$pdf->SetMargins(15, 15, 15);//页面间隔
$pdf->SetHeaderMargin(0);//页眉top间隔
$pdf->SetFooterMargin(0);//页脚bottom间隔
// remove default footer
$pdf->setPrintFooter(false);
// 设置分页
$pdf->SetAutoPageBreak(true, 25);
// set default font subsetting mode
$pdf->setFontSubsetting(true);
//设置图片缩放比例
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
//设置字体 stsongstdlight支持中文
$pdf->SetFont('stsongstdlight', '', 14);
// remove default header
//$pdf->setPrintHeader(false);//移除头部信息
//第一页
// $pdf->AddPage();
//设置背景色
// $pdf->SetFillColor(52, 21, 0, 76);
// $pdf->Rect(0, 0, $pdf->getPageWidth(), $pdf->getPageHeight(), 'DF', "");
//根据研报id获取对应的用户的所在的图片
$report_id = $request->get('report_id') ? $request->get('report_id') : 1;//研报id
$list = DB::table("image")->select('image')->where('uid', $this->uid)->where('report_id', $report_id)->get()->toArray();
if ($list){
foreach ($list as $k=>$val){
$pdf->AddPage();//添加一个页面
$pdf->SetFillColor(2, 38, 52); //设置背景色
$pdf->Rect(0, 0, $pdf->getPageWidth(), $pdf->getPageHeight(), 'DF', "");
//图片显示 Palign:图片位置,L,偏左,C,居中,R,偏右
$pdf->Image($val->image, '', '', 0, 0, '', '', 'center', false, '', 'C', false, false, 1, false, false, false);
}
}
$pdf->Output('out.pdf', 'I');//I输出、D下载
//$pdf->Output('out.pdf', 'D');//保存到本地
} catch (Exception $e) {
return echoErrorInfo($e->getCode(), $e->getMessage());
}
}