PHP 生成PDF文件并向PDF添加图片

tech2026-09-23  2

php 生成PDF文件,并添加多张图片

$imgUrl = array('img.png','img1.png','img2.jpeg','img3.jpe'); //============================================================+ // start OF FILE //============================================================+ vendor('TCPDF/tcpdf'); // create new PDF document $pdf = new \TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false); // set document information $pdf->SetCreator(PDF_CREATOR); $pdf->SetAuthor('CHEN BIN'); $pdf->SetTitle('Store QR code and table number QR code'); $pdf->SetSubject('TCPDF Tutorial'); $pdf->SetKeywords("'$storename', PDF, example, test, guide"); $pdftitle = 'The STORE QR'; $pdfdes = 'Store QR code and table number QR code'; // set default header data $pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, $pdftitle, $pdfdes); // set header and footer fonts $pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN)); $pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA)); // set default monospaced font $pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED); // set margins $pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT); $pdf->SetHeaderMargin(PDF_MARGIN_HEADER); $pdf->SetFooterMargin(PDF_MARGIN_FOOTER); // set auto page breaks $pdf->SetAutoPageBreak(false, PDF_MARGIN_BOTTOM); // set image scale factor $pdf->setImageScale(3.5); // set some language-dependent strings (optional) if (@file_exists(dirname(__FILE__) . '/lang/eng.php')) { require_once(dirname(__FILE__) . '/lang/eng.php'); $pdf->setLanguageArray($l); } // --------------------------------------------------------- // add a page $pdf->AddPage(); //$pdf->AddPage('P', 'A4'); // set font $pdf->SetFont('helvetica', 'B', 20); $pdf->Write(0, 'Store QR code', '', 0, 'L', true, 0, false, false, 0); $pdf->SetFont('helvetica', '', 10); $pdf->Ln(); // set UTF-8 Unicode font $pdf->SetFont('dejavusans', '', 10); //遍历文件名(4*4) $num = 52; $i = 3; $j = 46; $startNum = 0; $st = 1; $page = 0; foreach ($imgUrl as $key => $name) { $page++; $startNum++; if (in_array(self::get_extension($name), array('jpg', 'png', 'jpeg', 'gif', 'PNG', 'JPG', 'JPEG', 'GIF'))) {//如果是图片则添加到pdf中 //tcpdf操作 添加图片到pdf中 $pdf->Image($name, $i, $j, 50, 50); $i = $i + $num; if ($startNum == 5) { $st++; $i = 3; $j = ($st) * $num; $pdf->Image($name, $i, $j, 50, 50); $i = $i + $num; $startNum = 1; } if ($page == 16) {//满16张图片重新添加页面并计算图片位置, if (isset($imgUrl[$key + 1])) {//防止添加空页面(刚到16个图片) $pdf->AddPage(); $i = 3; $j = 46; $startNum = 1; $st = 1; $page = 1; } } } } // output the HTML content //$pdf->writeHTML($html, true, 0, true, true); // reset pointer to the last page $pdf->lastPage(); // --------------------------------------------------------- //服务器存档模式 if (ob_get_length() > 0) { ob_clean(); } //Close and output PDF document $pdf->Output(ROOT_PATH . 'public/uploads/QRZIP/' . $storeinfo['id'] . '/' . $name_store . '.pdf', 'F'); //============================================================+ // END OF FILE //============================================================+

最新回复(0)