0

我想创建一个包含多个图像的pdf。这些图像是我用 jquery 从 javascript 下载到我的 php 操作的数组中发送的高图。

在我的操作中,我得到一个包含多个 base64 编码字符串的数组。像这样

要创建我的 pdf,我有以下代码:

// INCLUDE TCPDF LIBRARY
    require_once 'tcpdf/tcpdf.php';

    try {
        // create new PDF document
        $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);

        $pdf->SetCreator(PDF_CREATOR);
        $pdf->SetAuthor('SurveyAnyplace');
        $pdf->SetTitle('Question Results');
        $pdf->SetSubject('SurveyAnyplace Quiz');
        $pdf->SetKeywords('question, PDF, results, surveyanyplace, quiz');

        $pdf->setPrintHeader(false); // no header
        $pdf->setPrintFooter(false); // no footer

        $pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);

        $pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
        $pdf->SetFooterMargin(PDF_MARGIN_FOOTER);

        $pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);

        $pdf->AddPage();

        $pdf->setJPEGQuality(75);

        $pdf->Image('/images/logo.png', 25, 10, 154, 25, 'PNG', 'http://www.surveyanyplace.com', '', true, 150, '', false, false, 1, false, false, false);

        for($i = 0; $i < count($imagesarray); $i++){
            $pdf->Image($imagesarray[$i], 25, 60, 154, 100, 'PNG', 'http://www.surveyanyplace.com', '', true, 150, '', false, false, 1, false, false, false);
        }

        $horizontal_alignments = array('L', 'C', 'R');
        $vertical_alignments = array('T', 'M', 'B');

        //Change To Avoid the PDF Error
        ob_end_clean();

        // If you first want preview in browser -> CHOOSE I (params: http://www.tcpdf.org/doc/code/classTCPDF.html#a3d6dcb62298ec9d42e9125ee2f5b23a1)
        $pdf->Output($quizname . '-report.pdf', 'D');
    }
    catch (Exception $e) {
        die ('Application error: ' . $e->getMessage());
    }

如您所见,我循环遍历图像数组以输出图像。
但是当我打开文档时,只显示最后一张图片。

这里有什么问题?

4

1 回答 1

1

问题是您将所有图像放置在页面上的相同位置,因此每个图像都被放置在前一个图像的顶部,这就是您只看到最后一个图像的原因。

于 2013-11-07T00:52:55.667 回答