0

複数の画像を含むPDFを作成したい。画像は、javascript から私の php アクションへの jquery ダウンロードを使用して配列で送信するハイチャートです。

私のアクションでは、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 に答える