Beispiel #1
0
 public function writeData($data, $x, $y, $font_size, $font_color = '#888888')
 {
     $this->single_page->setFont(Font::fontWithName(Font::FONT_HELVETICA), $font_size)->setFillColor(Color\Html::color($font_color))->drawText($data, $x, $y, 'UTF-8');
 }
 /**
  * @param HtmlColor $color
  *
  * @return ZendColor
  */
 private function getZendColor(HtmlColor $color)
 {
     return ZendHtmlColor::color($color->__toString());
 }
 private function getColor($colorData)
 {
     if (is_string($colorData)) {
         return ZendColor::color($colorData);
     }
     if (!$colorData instanceof ZendColor) {
         throw new InvalidArgumentException('Wrong color value, expected string or object of ZendPdf\\Color\\Html class.');
     }
     return $colorData;
 }
Beispiel #4
0
 public function testModify()
 {
     $pdf = Pdf\PdfDocument::load(__DIR__ . '/_files/pdfarchiving.pdf');
     // Reverse page order
     $pdf->pages = array_reverse($pdf->pages);
     // Mark page as modified
     foreach ($pdf->pages as $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)->drawText('Modified by Zend Framework!', 150, 0)->restoreGS();
     }
     // Add new page generated by \ZendPdf\PdfDocument object (page is attached to the specified the document)
     $pdf->pages[] = $page1 = $pdf->newPage('A4');
     // Add new page generated by \ZendPdf\Page object (page is not attached to the document)
     $pdf->pages[] = $page2 = new Pdf\Page(Pdf\Page::SIZE_LETTER_LANDSCAPE);
     // Create new font
     $font = Pdf\Font::fontWithName(Pdf\Font::FONT_HELVETICA);
     // Apply font and draw text
     $page1->setFont($font, 36)->setFillColor(Color\Html::color('#9999cc'))->drawText('Helvetica 36 text string', 60, 500);
     // Use font object for another page
     $page2->setFont($font, 24)->drawText('Helvetica 24 text string', 60, 500);
     // Use another font
     $page2->setFont(Pdf\Font::fontWithName(Pdf\Font::FONT_TIMES), 32)->drawText('Times-Roman 32 text string', 60, 450);
     // Draw rectangle
     $page2->setFillColor(new Color\GrayScale(0.8))->setLineColor(new Color\GrayScale(0.2))->setLineDashingPattern(array(3, 2, 3, 4), 1.6)->drawRectangle(60, 400, 500, 350);
     // Draw rounded rectangle
     $page2->setFillColor(new Color\GrayScale(0.9))->setLineColor(new Color\GrayScale(0.5))->setLineDashingPattern(Pdf\Page::LINE_DASHING_SOLID)->drawRoundedRectangle(425, 350, 475, 400, 20);
     // Draw circle
     $page2->setLineDashingPattern(Pdf\Page::LINE_DASHING_SOLID)->setFillColor(new Color\Rgb(1, 0, 0))->drawCircle(85, 375, 25);
     // Draw sectors
     $page2->drawCircle(200, 375, 25, 2 * M_PI / 3, -M_PI / 6)->setFillColor(new Color\Cmyk(1, 0, 0, 0))->drawCircle(200, 375, 25, M_PI / 6, 2 * M_PI / 3)->setFillColor(new Color\Rgb(1, 1, 0))->drawCircle(200, 375, 25, -M_PI / 6, M_PI / 6);
     // Draw ellipse
     $page2->setFillColor(new Color\Rgb(1, 0, 0))->drawEllipse(250, 400, 400, 350)->setFillColor(new Color\Cmyk(1, 0, 0, 0))->drawEllipse(250, 400, 400, 350, M_PI / 6, 2 * M_PI / 3)->setFillColor(new Color\Rgb(1, 1, 0))->drawEllipse(250, 400, 400, 350, -M_PI / 6, M_PI / 6);
     // Draw and fill polygon
     $page2->setFillColor(new Color\Rgb(1, 0, 1));
     $x = array();
     $y = array();
     for ($count = 0; $count < 8; $count++) {
         $x[] = 140 + 25 * cos(3 * M_PI_4 * $count);
         $y[] = 375 + 25 * sin(3 * M_PI_4 * $count);
     }
     $page2->drawPolygon($x, $y, Pdf\Page::SHAPE_DRAW_FILL_AND_STROKE, Pdf\Page::FILL_METHOD_EVEN_ODD);
     // Draw line
     $page2->setLineWidth(0.5)->drawLine(60, 375, 500, 375);
     $pdf->save(__DIR__ . '/_files/output.pdf');
     unset($pdf);
     $pdf1 = Pdf\PdfDocument::load(__DIR__ . '/_files/output.pdf');
     $this->assertTrue($pdf1 instanceof Pdf\PdfDocument);
     unset($pdf1);
     unlink(__DIR__ . '/_files/output.pdf');
 }
 /**
  * @test
  * @dataProvider colorSetters
  */
 public function setColorsWrapper($method)
 {
     $zendPageMock = $this->getMockBuilder('ZendPdf\\Page')->setMethods(array($method))->disableOriginalConstructor()->getMock();
     $color = '#123456';
     $zendColor = \ZendPdf\Color\Html::color($color);
     $zendPageMock->expects($this->once())->method($method)->with($zendColor);
     $gc = $this->createGc($this->getEngineMock(), $zendPageMock);
     $gc->{$method}($color);
     //don't delegate if not necessary
     $gc->{$method}($color);
     $gc->commit();
 }