循环显示base64图像并以pdf格式保存

时间:2013-11-06 13:10:45

标签: javascript php pdf base64 tcpdf

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

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

要创建我的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());
    }

如您所见,我循环通过图像阵列输出图像 但是当我打开文档时,只显示最后一张图像。

这里有什么问题?

1 个答案:

答案 0 :(得分:1)

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