/** * @param ZendPage $page * @param Text $element * * @throws \Exception */ private function drawText(ZendPage $page, Text $element) { $fontStyle = $element->getFontStyle(); $font = $this->getZendFont($fontStyle); $page->saveGS(); if ($element->getRotation() > 0) { $page->rotate($element->getX(), $element->getY(), -$element->getRotation() / 180.0 * pi()); } list($x, $y) = $this->computeTextPos($element, $font); $page->setFont($font, $fontStyle->getSize()); $this->drawFormattedText($page, $font->encodeString($element->getText(), 'UTF-8'), $x, $y, $element); $page->restoreGS(); }
public function testPageDuplicating() { $pdf = Pdf\PdfDocument::load(__DIR__ . '/_files/pdfarchiving.pdf'); $srcPageCount = count($pdf->pages); $outputPageSet = array(); foreach ($pdf->pages as $srcPage) { $page = new Pdf\Page($srcPage); $outputPageSet[] = $srcPage; $outputPageSet[] = $page; $page->saveGS(); // Create new Style $page->setFillColor(new Color\Rgb(0, 0, 0.9))->setLineColor(new Color\GrayScale(0.2))->setLineWidth(3)->setLineDashingPattern(array(3, 2, 3, 4), 1.6)->setFont(Pdf\Font::fontWithName(Pdf\Font::FONT_HELVETICA_BOLD), 32); $page->rotate(0, 0, M_PI_2 / 3); $page->drawText('Modified by Zend Framework!', 150, 0); $page->restoreGS(); } // Add new page generated by Zend_PDF object (page is attached to the specified the document) $pdf->pages = $outputPageSet; $pdf->save(__DIR__ . '/_files/output.pdf'); unset($pdf); $pdf1 = Pdf\PdfDocument::load(__DIR__ . '/_files/output.pdf'); $this->assertTrue($pdf1 instanceof Pdf\PdfDocument); $this->assertEquals($srcPageCount * 2, count($pdf1->pages)); unset($pdf1); unlink(__DIR__ . '/_files/output.pdf'); }