Нарисовать изображение на последней странице с помощью Zend PDF?

Я знаю, что есть функция drawImage для рисования изображения. Я хочу, чтобы мое изображение было напечатано только на последней странице PDF внизу. Как я могу это сделать? Это функция:

page->drawImage($image, $imageTopLeft, $imageTop, $imageBottomRight, $imageBottom);

Добавление координат здесь будет отображать их на каждой странице в данном месте, не так ли?

Спасибо!


person EOB    schedule 21.02.2012    source источник


Ответы (1)


Если вы создаете свой PDF и страницы следующим образом:

$pdf = new Zend_Pdf();

$page1 = new Zend_Pdf_Page(Zend_Pdf_Page::SIZE_A4);
// set content to this page
$pdf->pages[] = $page1;

$page2 = new Zend_Pdf_Page(Zend_Pdf_Page::SIZE_A4);
// set content to this page
$pdf->pages[] = $page2;

// and so on ...

Вы можете сделать это:

//Get your last page with $pdf->pages[count($pdf->pages[])-1]

$pdf->pages[count($pdf->pages[])-1]->drawImage($image, $imageTopLeft, $imageTop, $imageBottomRight, $imageBottom);

Если вы хотите найти ширину текста для настройки других элементов, вы можете использовать эту функцию:

    /**
     * Calculate width of given text
     * 
     * @param String $text 
     * @param Zend_Pdf_Resource_Font $font
     * @param int $font_size
     * @return int 
     */
    public function getTextWidth($text, Zend_Pdf_Resource_Font $font, $font_size) {
        $drawing_text = iconv('', 'UTF-16BE', $text);
        $characters = array();
        for ($i = 0; $i < strlen($drawing_text); $i++) {
            $characters[] = (ord($drawing_text[$i++]) << 8) | ord($drawing_text[$i]);
        }
        $glyphs = $font->glyphNumbersForCharacters($characters);
        $widths = $font->widthsForGlyphs($glyphs);
        $text_width = (array_sum($widths) / $font->getUnitsPerEm()) * $font_size;
        return $text_width;
    }

и чем вы просто звоните:

$this->getTextWidth('some dinamyc text ', $font, $font_size);
person tasmaniski    schedule 21.02.2012
comment
Выглядит хорошо, есть ли способ нарисовать его без каких-либо значений x/y? Я должен нарисовать его под другим элементом в PDF. Элемент не всегда находится в одном и том же положении. - person EOB; 22.02.2012
comment
Нет, насколько я знаю. Затем вам нужно установить x/y динамически по отношению к другим значениям x/y элемента. - person tasmaniski; 22.02.2012
comment
Как бы я это сделал? Другой элемент — это текст, который не изменится. - person EOB; 22.02.2012
comment
Это возвращает мне 67 ... что мне теперь с этим делать? Использовать его для рисования изображения? Если да, то как? :) СПАСИБО! - person EOB; 22.02.2012
comment
тогда ваша x-позиция логотипа будет: x-позиция-текста + 67 + правое дополнение..... - person tasmaniski; 22.02.2012