Example #1
0
 /**
  * Saves the current graphics state
  * 
  * @return bool Returns TRUE on success or FALSE on failure.
  */
 public function save()
 {
     if (!$this->_page) {
         $this->_errmsg = "No Page";
         return false;
     }
     $this->_page->saveGS();
     return true;
 }
Example #2
0
 /**
  * @param ZendPage $page
  * @param PathText $element
  *
  * @throws \Exception
  */
 private function drawPathText(ZendPage $page, PathText $element)
 {
     $fontStyle = $element->getFontStyle();
     $font = $this->getZendFont($fontStyle);
     $anchorPath = new AnchorPath($element->getPath());
     list($chars, $pathPos, $yShift) = $this->preparePathText($element->getText(), $anchorPath, $font, $fontStyle);
     $page->saveGS();
     $page->setFont($font, $fontStyle->getSize());
     foreach ($chars as list($char, $width)) {
         $anchor = $anchorPath->getAnchor($pathPos + $width / 2.0);
         $pathPos += $width;
         if (null === $anchor) {
             // skip chars out of path
             continue;
         }
         $page->saveGS();
         $this->translateAndRotateToAnchor($page, $anchor);
         $this->drawFormattedText($page, $char, -$width / 2.0, -$yShift, $element);
         $page->restoreGS();
     }
     $page->restoreGS();
 }
Example #3
0
 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');
 }