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

2 篇文章 0 订阅
1 篇文章 0 订阅

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
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值