Exemplo n.º 1
0
 /**
  * Generates certificate of exellence and
  * triggers an event when the file is generated
  * @param \User\Model\Entity\User $user
  * @param string $examName
  */
 public function generateCertificate($user, $examName)
 {
     $config = $this->services->get('config');
     $pdf = PdfDocument::load($config['pdf']['exam_certificate']);
     // get the first page
     $page = $pdf->pages[0];
     // Extract the AdineKirnberg-Script font included in the PDF sample
     $font = $page->extractFont('AdineKirnberg-Script');
     $page->setFont($font, 80);
     // and write the name of the user with it
     $page->drawText($user->getName(), 200, 280);
     // after that use Time Bold to write the name of the exam
     $font = PdfFont::fontWithName(PdfFont::FONT_TIMES_BOLD);
     $page->setFont($font, 40);
     $page->drawText($examName, 200, 120);
     // We use the png image from the public/images folder
     $imageFile = 'public/images/zf2-logo.png';
     // get the right size to do some calculations
     $size = getimagesize($imageFile);
     // load the image
     $image = \ZendPdf\Image::imageWithPath($imageFile);
     $x = 580;
     $y = 440;
     // and finally draw the image
     $page->drawImage($image, $x, $y, $x + $size[0], $y + $size[1]);
     return $pdf;
 }
 public function pdfAction()
 {
     $iso2 = $this->params()->fromRoute('iso2');
     $table = $this->getServiceLocator()->get('city-codes-table');
     $viewModel = new ViewModel(array('cityList' => $table->getListByCountry($iso2), 'countryCode' => $iso2));
     $viewModel->setTemplate('form-demo/application/index/pdf-cities');
     $viewRender = $this->getServiceLocator()->get('ViewRenderer');
     $list = explode(PHP_EOL, $viewRender->render($viewModel));
     $font = Font::fontWithPath('/usr/share/fonts/truetype/freefont/FreeMono.ttf');
     $pdf = new PdfDocument();
     // top left 1" from top 1" from left
     $x = 72;
     $y = 720;
     $dec = 18;
     foreach ($list as $index => $row) {
         if (substr($row, 0, 1) == '=' || $y <= 72) {
             if ($index > 0) {
                 $pdf->pages[] = $page;
             }
             $page = new Page(Page::SIZE_LETTER);
             $page->setFont($font, 12);
             $y = 720;
         }
         $page->drawText($row, $x, $y);
         $y -= $dec;
     }
     $pdf->pages[] = $page;
     // retrieve the response object
     $response = $this->getResponse();
     // set the header
     $response->getHeaders()->addHeaders(array('Content-Type' => 'application/pdf'));
     $response->setContent($pdf->render());
     return $response;
 }
Exemplo n.º 3
0
 private function getResourceByStyle($style)
 {
     try {
         if (!isset($this->fonts[$style])) {
             $data = $this->fontResources[$style];
             if ($this->isNamedFont($data)) {
                 $name = $this->retrieveFontName($data);
                 $this->fonts[$style] = ZendFont::fontWithName($name);
             } else {
                 $this->fonts[$style] = ZendFont::fontWithPath($data);
             }
         }
         return $this->fonts[$style];
     } catch (\ZendPdf\Exception\ExceptionInterface $e) {
         throw InvalidResourceException::invalidFontException($this->fontResources[$style], $e);
     }
 }
Exemplo n.º 4
0
 /**
  * Generate the Pdf
  * @param IntentDocumentGeneratedEvent $event the event
  * @see http://stackoverflow.com/questions/7585474/accessing-files-relative-to-bundle-in-symfony2
  * @todo finaliser l'inscrition de toutes les info dynamiques
  * @todo  avoir une sepa-template neutre
  * @todo  insérer le logo du layout courant dans le pdf
  * @todo  insérer des textes simple en y ajoutant le nom du client dynamiquement
  * @todo  insérer l'ICS
  */
 public function generate(IntentDocumentGeneratedEvent $event)
 {
     /**
      * @var Ecedi\Donate\CoreBundle\Entity\Intent
      */
     $intent = $event->getIntent();
     if ($intent->getPaymentMethod() === SepaOfflinePaymentMethod::ID && $event->getDocument() === null) {
         $pdf = new Pdf\PdfDocument();
         $pdf->pages[] = $page1 = $pdf->newPage('A4');
         $page1->setFont(Pdf\Font::fontWithName(Pdf\Font::FONT_HELVETICA), 12);
         $path = $this->kernel->locateResource('@DonatePaymentBundle/Resources/public/img/sepa-template.jpg');
         $stampImageJPG = Pdf\Image::imageWithPath($path);
         $page1->drawImage($stampImageJPG, 0, 0, 595, 842);
         $page1->drawText($this->rumGenerator->generate($intent), 170, 389, 'UTF-8');
         //TODO faire la suite
         $event->setDocument($pdf);
         $event->stopPropagation();
     }
 }
Exemplo n.º 5
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');
 }
Exemplo n.º 6
0
 /**
  * @param string|FontStyle $fontStyle
  *
  * @return ZendAbstractFont
  * @throws \Exception
  */
 protected function getZendFont(FontStyle $fontStyle)
 {
     if (!isset($this->fontMap[$fontStyle->getName()][$fontStyle->getStyle()])) {
         throw new InvalidArgumentException('unsupported font: ' . $fontStyle->getName() . '/' . $fontStyle->getStyle());
     }
     return ZendFont::fontWithName($this->fontMap[$fontStyle->getName()][$fontStyle->getStyle()]);
 }
Exemplo n.º 7
0
 private function generatePdf(Invoice $invoice)
 {
     $pdf = new PdfDocument();
     // Add new page generated by ZendPdf\Page object
     $page1 = new Page(Page::SIZE_A4);
     $pdf->pages[] = $page1;
     // Load the needed fonts
     $fontHelvetica = Font::fontWithName(Font::FONT_HELVETICA);
     $fontHelveticaBold = Font::fontWithName(Font::FONT_HELVETICA_BOLD);
     $fontTimes = Font::fontWithName(Font::FONT_TIMES);
     $fontTimesBold = Font::fontWithName(Font::FONT_TIMES_BOLD);
     $colorWhite = new \ZendPdf\Color\GrayScale(1);
     $colorBlack = new \ZendPdf\Color\GrayScale(0);
     $pdf->properties['Author'] = 'Marinvägen IT';
     $pdf->properties['Creator'] = 'Marinvägen IT';
     $pdf->properties['Title'] = 'Invoice';
     $pdf->properties['Subject'] = 'Invoice';
     $page1->setFillColor($colorWhite)->setLineColor($colorBlack)->drawRectangle(50, 747, 295, 787)->drawRectangle(300, 747, 545, 787)->drawRectangle(50, 622, 295, 742)->drawRectangle(300, 622, 545, 742)->drawRectangle(50, 95, 545, 617)->drawRectangle(50, 597, 545, 617)->drawRectangle(50, 30, 545, 90);
     // Draw header
     $page1->setFont($fontTimes, 10)->setFillColor($colorBlack)->drawText('Faktura nr', 305, 775)->drawText('Kund nr', 540 - $this->widthForStringUsingFontSize('Kund nr', $fontTimes, 10), 775)->drawText('Fakturadatum', 55, 775)->drawText('Förfallodatum', 290 - $this->widthForStringUsingFontSize('Förfallodatum', $fontTimes, 10), 775)->drawText('Fakturaadress', 305, 730)->drawText('Er referens:', 55, 730)->drawText($invoice->getClientReference(), 290 - $this->widthForStringUsingFontSize($invoice->getClientReference(), $fontTimes, 10), 730)->drawText('Vår referens:', 55, 719)->drawText($invoice->getOwnReference(), 290 - $this->widthForStringUsingFontSize($invoice->getOwnReference(), $fontTimes, 10), 719)->drawText('Betalningsvillkor:', 55, 708)->drawText($invoice->getDueDays() . ' dagar netto', 290 - $this->widthForStringUsingFontSize($invoice->getDueDays() . ' dagar netto', $fontTimes, 10), 708)->drawText('Dröjsmålsränta:', 55, 697)->drawText('9,50 %', 290 - $this->widthForStringUsingFontSize('9,50 %', $fontTimes, 10), 697)->drawText('Innehar F-skattebevis', 290 - $this->widthForStringUsingFontSize('Innehar F-skattebevis', $fontTimes, 10), 627)->drawText('Adress:', 55, 80)->drawText('Telefon:', 178, 80)->drawText('Bankgiro:', 178, 52)->drawText('E-post:', 301, 80)->drawText('Organisationsnr:', 301, 52)->drawText('Hemsida:', 424, 80)->drawText('Momsreg.nr:', 424, 52)->drawText('Netto', 125 - $this->widthForStringUsingFontSize('Netto', $fontTimes, 10), 122)->drawText('Moms kr', 330 - $this->widthForStringUsingFontSize('Moms kr', $fontTimes, 10), 122)->drawText('Avrundning', 410 - $this->widthForStringUsingFontSize('Avrundning', $fontTimes, 10), 122);
     // Footer texts
     $page1->setFont($fontTimes, 12)->setFillColor($colorBlack)->drawText($this->settingTable->getSettingByName('CompanyName'), 55, 68)->drawText($this->settingTable->getSettingByName('CompanyAddress'), 55, 56)->drawText($this->settingTable->getSettingByName('CompanyPostAddress'), 55, 44)->drawText($this->settingTable->getSettingByName('CompanyCellphone'), 178, 68)->drawText($this->settingTable->getSettingByName('CompanyBankGiro'), 178, 40)->drawText($this->settingTable->getSettingByName('CompanyEmail'), 301, 68)->drawText($this->settingTable->getSettingByName('CompanyRegistrationNumber'), 301, 40)->drawText($this->settingTable->getSettingByName('CompanyWebpage'), 424, 68)->drawText($this->settingTable->getSettingByName('CompanyVATNumber'), 424, 40);
     // Invoice headers
     $page1->setFont($fontTimes, 14)->setFillColor($colorBlack)->drawText('Benämning', 55, 603)->drawText('Antal', 350 - $this->widthForStringUsingFontSize('Antal', $fontTimes, 14), 603)->drawText('á-pris', 450 - $this->widthForStringUsingFontSize('á-pris', $fontTimes, 14), 603)->drawText('Summa', 540 - $this->widthForStringUsingFontSize('Summa', $fontTimes, 14), 603);
     // Invoice summary text
     $page1->setFont($fontTimes, 16)->setFillColor($colorBlack)->drawText('ATT BETALA', 540 - $this->widthForStringUsingFontSize('ATT BETALA', $fontTimes, 16), 126)->drawText($invoice->getNumber(), 310, 755)->drawText($invoice->getClientId(), 535 - $this->widthForStringUsingFontSize($invoice->getClientId(), $fontTimes, 16), 755)->drawText(date("Y-m-d", strtotime($invoice->getBaseDate())), 60, 755)->drawText(date("Y-m-d", strtotime($invoice->getBaseDate() . ' +' . $invoice->getDueDays() . ' days')), 285 - $this->widthForStringUsingFontSize($invoice->getBaseDate(), $fontTimes, 16), 755);
     // Draw header
     $page1->setFont($fontTimes, 22)->setFillColor($colorBlack)->drawText('Faktura', 478, 792);
     // Draw company name
     $page1->setFont($fontHelveticaBold, 32)->setFillColor($colorBlack)->drawText($this->settingTable->getSettingByName('CompanyName'), 50, 792);
     $intPosition = 582;
     $intTotalSum = 0;
     $intTotalVat = 0;
     $intTotalSumWithVat = 0;
     foreach ($invoice->getRows() as $row) {
         $intRowPrice = number_format($row->getPrice(), 2, ',', ' ');
         $intRowSum = number_format($row->getQuantity() * $row->getPrice(), 2, ',', ' ');
         $intTotalSum = $intTotalSum + $row->getQuantity() * $row->getPrice();
         $intTotalVat = $intTotalVat + $row->getQuantity() * $row->getPrice() * ($row->getVat() / 100);
         $page1->setFont($fontTimes, 12)->setFillColor($colorBlack)->drawText($row->getText(), 55, $intPosition)->drawText($row->getQuantity(), 350 - $this->widthForStringUsingFontSize($row->getQuantity(), $fontTimes, 12), $intPosition)->drawText($intRowPrice, 450 - $this->widthForStringUsingFontSize($intRowPrice, $fontTimes, 12), $intPosition)->drawText($intRowSum, 540 - $this->widthForStringUsingFontSize($intRowSum, $fontTimes, 12), $intPosition);
         $intPosition = $intPosition - 14;
     }
     $intTotalSumWithVat = $intTotalSum + $intTotalVat;
     $intRound = round($intTotalSumWithVat) - $intTotalSumWithVat;
     $intTotalSumWithVat = $intTotalSumWithVat + $intRound;
     $intTotalSum = number_format($intTotalSum, 2, ',', ' ');
     $intTotalVat = number_format($intTotalVat, 2, ',', ' ');
     $intRound = number_format($intRound, 2, ',', ' ');
     $intTotalSumWithVat = number_format($intTotalSumWithVat, 2, ',', ' ');
     $page1->setFont($fontTimes, 12)->setFillColor($colorBlack)->drawText($intTotalSum, 125 - $this->widthForStringUsingFontSize($intTotalSum, $fontTimes, 12), 110)->drawText($intTotalVat, 330 - $this->widthForStringUsingFontSize($intTotalVat, $fontTimes, 12), 110)->drawText($intRound, 410 - $this->widthForStringUsingFontSize($intRound, $fontTimes, 12), 110);
     $page1->setFont($fontTimes, 16)->setFillColor($colorBlack)->drawText($intTotalSumWithVat, 540 - $this->widthForStringUsingFontSize($intTotalSumWithVat, $fontTimes, 16), 110);
     // Draw address
     $intAddressPosition = 710;
     foreach (explode(';', $invoice->getAddress()) as $part) {
         $page1->setFont($fontTimes, 16)->setFillColor($colorBlack)->drawText($part, 315, $intAddressPosition);
         $intAddressPosition = $intAddressPosition - 20;
     }
     try {
         $pdf->save('data/invoice/invoice-' . sprintf('%06d', $invoice->getNumber()) . '.pdf');
     } catch (\ZendPdf\Exception\IOException $e) {
         throw $e;
     }
 }
Exemplo n.º 8
0
 /**
  * Object constructor
  *
  * $fontDictionary is a \ZendPdf\InternalType\IndirectObjectReference or
  * \ZendPdf\InternalType\IndirectObject object
  *
  * @param mixed $fontDictionary
  * @throws \ZendPdf\Exception\ExceptionInterface
  */
 public function __construct($fontDictionary)
 {
     // Extract object factory and resource object from font dirctionary object
     $this->_objectFactory = $fontDictionary->getFactory();
     $this->_resource = $fontDictionary;
     if ($fontDictionary->Encoding !== null) {
         $this->_encoding = $fontDictionary->Encoding->value;
     }
     switch ($fontDictionary->Subtype->value) {
         case 'Type0':
             // Composite type 0 font
             if (count($fontDictionary->DescendantFonts->items) != 1) {
                 // Multiple descendant fonts are not supported
                 throw new Exception\NotImplementedException(self::TYPE_NOT_SUPPORTED);
             }
             $fontDictionaryIterator = $fontDictionary->DescendantFonts->items->getIterator();
             $fontDictionaryIterator->rewind();
             $descendantFont = $fontDictionaryIterator->current();
             $fontDescriptor = $descendantFont->FontDescriptor;
             break;
         case 'Type1':
             if ($fontDictionary->FontDescriptor === null) {
                 // That's one of the standard fonts
                 $standardFont = Pdf\Font::fontWithName($fontDictionary->BaseFont->value);
                 $this->_fontNames = $standardFont->getFontNames();
                 $this->_isBold = $standardFont->isBold();
                 $this->_isItalic = $standardFont->isItalic();
                 $this->_isMonospace = $standardFont->isMonospace();
                 $this->_underlinePosition = $standardFont->getUnderlinePosition();
                 $this->_underlineThickness = $standardFont->getUnderlineThickness();
                 $this->_strikePosition = $standardFont->getStrikePosition();
                 $this->_strikeThickness = $standardFont->getStrikeThickness();
                 $this->_unitsPerEm = $standardFont->getUnitsPerEm();
                 $this->_ascent = $standardFont->getAscent();
                 $this->_descent = $standardFont->getDescent();
                 $this->_lineGap = $standardFont->getLineGap();
                 return;
             }
             $fontDescriptor = $fontDictionary->FontDescriptor;
             break;
         case 'TrueType':
             $fontDescriptor = $fontDictionary->FontDescriptor;
             break;
         default:
             throw new Exception\NotImplementedException(self::TYPE_NOT_SUPPORTED);
     }
     $this->_fontNames[Pdf\Font::NAME_POSTSCRIPT]['en'] = iconv('UTF-8', 'UTF-16BE', $fontDictionary->BaseFont->value);
     $this->_isBold = false;
     // this property is actually not used anywhere
     $this->_isItalic = ($fontDescriptor->Flags->value & 1 << 6) != 0;
     // Bit-7 is set
     $this->_isMonospace = ($fontDescriptor->Flags->value & 1 << 0) != 0;
     // Bit-1 is set
     $this->_underlinePosition = null;
     // Can't be extracted
     $this->_underlineThickness = null;
     // Can't be extracted
     $this->_strikePosition = null;
     // Can't be extracted
     $this->_strikeThickness = null;
     // Can't be extracted
     $this->_unitsPerEm = null;
     // Can't be extracted
     $this->_ascent = $fontDescriptor->Ascent->value;
     $this->_descent = $fontDescriptor->Descent->value;
     $this->_lineGap = null;
     // Can't be extracted
 }
Exemplo n.º 9
0
 /**
  * @{inheritDoc}
  */
 public function getFontByName($fontName)
 {
     $fontConstant = constant('\\ZendPdf\\Font::' . $fontName);
     return Font::fontWithName($fontConstant);
 }
Exemplo n.º 10
0
 public function drawHtml(Page $page, $html, $x1, $y1, $x2 = null, $y2 = null, $lineHeight = 1.3, $charEncoding = '', $debug = false)
 {
     if (is_null($x2)) {
         $x2 = $page->getWidth();
     }
     if (is_null($y2)) {
         $y2 = 0;
     }
     if ($debug === true) {
         var_dump(array('x1' => $x1, 'y1' => $y1, 'x2' => $x2, 'y2' => $y2));
     }
     $x = $x1;
     $y = $y1;
     if (is_null($page->getFont())) {
         $page->setFont(Font::fontWithName(Font::FONT_HELVETICA), 10);
     }
     $defaultFont = $page->getFont();
     $defaultfontSize = $page->getFontSize();
     $maxFontSize = $defaultfontSize;
     $words = array();
     $elements = $this->getParser()->parse($html);
     if ($debug === true) {
         var_dump($elements);
     }
     foreach ($elements as $element) {
         if ($element instanceof DataElement) {
             $font = $element->getFont($defaultFont);
             $fontSize = $element->getFontSize($defaultfontSize);
             $maxFontSize = $fontSize > $maxFontSize ? $fontSize : $maxFontSize;
             $rawWords = explode(' ', $element->getValue());
             foreach ($rawWords as $rawWord) {
                 $rawWord .= $rawWord ? ' ' : '';
                 $wordWith = $this->widthForStringUsingFontSize($rawWord, $font, $fontSize);
                 if ($x + $wordWith > $x2) {
                     $x = $x1;
                     if ($y1 < $y2) {
                         $y += $maxFontSize * $lineHeight;
                     } else {
                         $y -= $maxFontSize * $lineHeight;
                     }
                     $maxFontSize = $fontSize;
                 }
                 $words[] = new Word($rawWord, $x, $y, $font, $fontSize);
                 $x += $wordWith;
             }
         } elseif ($element instanceof ControllElement) {
             if ($element->isBlockElement()) {
                 if ($x != $x1) {
                     $x = $x1;
                     if ($y1 < $y2) {
                         $y += $maxFontSize * $lineHeight;
                     } else {
                         $y -= $maxFontSize * $lineHeight;
                     }
                     $maxFontSize = $defaultfontSize;
                 }
                 if ($element instanceof StartElement) {
                     if (!is_null($element->marginTop())) {
                         if ($y1 < $y2) {
                             $y += $element->marginTop();
                         } else {
                             $y -= $element->marginTop();
                         }
                     }
                     if (!is_null($element->marginLeft())) {
                         if (!is_null($element->getListSign())) {
                             $words[] = new Word($element->getListSign(), $x, $y, $element->getFont($defaultFont), $element->getFontSize($defaultfontSize));
                         }
                         $x1 += $element->marginLeft();
                         $x = $x1;
                     }
                 }
                 if ($element instanceof StopElement) {
                     if (!is_null($element->marginBottom())) {
                         if ($y1 < $y2) {
                             $y += $element->marginBottom();
                         } else {
                             $y -= $element->marginBottom();
                         }
                     }
                     if (!is_null($element->marginLeft())) {
                         $x1 -= $element->marginLeft();
                         $x = $x1;
                     }
                 }
             }
         }
     }
     if ($debug === true) {
         var_dump($words);
     }
     foreach ($words as $word) {
         /** @var Word $word */
         $page->setFont($word->getFont(), $word->getFontSize());
         $page->drawText($word->getText(), $word->getX(), $word->getY(), $charEncoding);
     }
     if ($debug === true) {
         die;
     }
     return array($x, $y);
 }
Exemplo n.º 11
0
 private function createPdfFile($filePath, $contents)
 {
     $pdf = new PdfDocument();
     $page = new Page(Page::SIZE_A4);
     $font = Font::fontWithName(Font::FONT_HELVETICA);
     $page->setFont($font, 18);
     $page->drawText($contents, 50, 780);
     $pdf->pages[] = $page;
     $pdf->save($filePath);
 }
Exemplo n.º 12
0
 public function testPageCloning()
 {
     $pdf = Pdf\PdfDocument::load(__DIR__ . '/_files/pdfarchiving.pdf');
     $pdf1 = new Pdf\PdfDocument();
     $srcPageCount = count($pdf->pages);
     $outputPageSet = array();
     foreach ($pdf->pages as $srcPage) {
         $page = clone $srcPage;
         $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();
         $pdf1->pages[] = $page;
     }
     $pdf1->save(__DIR__ . '/_files/output.pdf');
     unset($pdf);
     unset($pdf1);
     $pdf2 = Pdf\PdfDocument::load(__DIR__ . '/_files/output.pdf');
     $this->assertTrue($pdf2 instanceof Pdf\PdfDocument);
     $this->assertEquals($srcPageCount, count($pdf2->pages));
     unset($pdf2);
     unlink(__DIR__ . '/_files/output.pdf');
 }
Exemplo n.º 13
0
 /**
  * Create a new character sheet
  *
  * @param string $title title of the character sheet, can be left out
  */
 public function __construct($title = '')
 {
     $this->setTitle($title);
     $this->setFont(\ZendPdf\Font::fontWithName(\ZendPdf\Font::FONT_HELVETICA_BOLD));
 }
Exemplo n.º 14
0
 public function getFont()
 {
     return Font::fontWithName(Font::FONT_HELVETICA_BOLD);
 }
Exemplo n.º 15
0
 /**
  * Calculate the width of a string:
  * in case of using alignment parameter in drawText
  * @param string $text
  * @param Font $font
  * @param float $fontSize
  * @return float
  */
 public function widthForStringUsingFontSize($text, $font, $fontSize)
 {
     $drawingString = iconv('UTF-8', 'UTF-16BE//IGNORE', $text);
     $characters = array();
     for ($i = 0, $len = strlen($drawingString); $i < $len; $i++) {
         $characters[] = ord($drawingString[$i++]) << 8 | ord($drawingString[$i]);
     }
     $glyphs = $font->glyphNumbersForCharacters($characters);
     $widths = $font->widthsForGlyphs($glyphs);
     $stringWidth = array_sum($widths) / $font->getUnitsPerEm() * $fontSize;
     return $stringWidth;
 }
Exemplo n.º 16
0
 /**
  * Create a new PDF page, with A4 size and default font Helvetica, size 12
  *
  * @param string $size page size (see \ZendPdf\Page), default A4 size
  * @param float $unitConversion conversion factor for custom units, default self::UNITS_CENTIMETER
  */
 public function __construct($size = self::SIZE_A4, $unitConversion = self::UNITS_CENTIMETER)
 {
     parent::__construct($size);
     $this->setUnitConversion($unitConversion);
     $this->setFont(\ZendPdf\Font::fontWithName(\ZendPdf\Font::FONT_HELVETICA), 12);
 }
Exemplo n.º 17
0
 /**
  * Set font
  * 
  * @param string $font     Font
  * @param int    $size     Font size
  * @param string $encoding Encoding
  *
  * @return bool Returns TRUE on success or FALSE on failure.
  */
 public function set_font($font, $size, $encoding)
 {
     $this->_fontSize = $size;
     $fonts = array('courier' => Zend_Pdf_Font::FONT_COURIER, 'courier-bold' => Zend_Pdf_Font::FONT_COURIER_BOLD, 'courier-oblique' => Zend_Pdf_Font::FONT_COURIER_ITALIC, 'courier-italic' => Zend_Pdf_Font::FONT_COURIER_ITALIC, 'courier-bold-italic' => Zend_Pdf_Font::FONT_COURIER_BOLD_ITALIC, 'courier-boldoblique' => Zend_Pdf_Font::FONT_COURIER_BOLD_ITALIC, 'times' => Zend_Pdf_Font::FONT_TIMES, 'times-bold' => Zend_Pdf_Font::FONT_TIMES_BOLD, 'times-italic' => Zend_Pdf_Font::FONT_TIMES_ITALIC, 'times-bold-italic' => Zend_Pdf_Font::FONT_TIMES_BOLD_ITALIC, 'times-bolditalic' => Zend_Pdf_Font::FONT_TIMES_BOLD_ITALIC, 'times-roman' => Zend_Pdf_Font::FONT_TIMES, 'times-roman-bold' => Zend_Pdf_Font::FONT_TIMES_BOLD, 'times-roman-italic' => Zend_Pdf_Font::FONT_TIMES_ITALIC, 'times-roman-bold-italic' => Zend_Pdf_Font::FONT_TIMES_BOLD_ITALIC, 'helvetica' => Zend_Pdf_Font::FONT_HELVETICA, 'helvetica-bold' => Zend_Pdf_Font::FONT_HELVETICA_BOLD, 'helvetica-italic' => Zend_Pdf_Font::FONT_HELVETICA_ITALIC, 'helvetica-oblique' => Zend_Pdf_Font::FONT_HELVETICA_ITALIC, 'helvetica-bold-italic' => Zend_Pdf_Font::FONT_HELVETICA_BOLD_ITALIC, 'helvetica-boldoblique' => Zend_Pdf_Font::FONT_HELVETICA_BOLD_ITALIC, 'symbol' => Zend_Pdf_Font::FONT_SYMBOL, 'zapfdingbats' => Zend_Pdf_Font::FONT_ZAPFDINGBATS);
     try {
         $font = isset($fonts[strtolower($font)]) ? $fonts[strtolower($font)] : false;
         if ($font === false) {
             $this->_errmsg = "could not find font '{$font}'";
             return false;
         }
         $this->_font = Zend_Pdf_Font::fontWithName($font);
         if ($this->_page) {
             $this->_page->setFont($this->_font, $size);
         }
         return true;
     } catch (\Exception $e) {
         $this->_errmsg = $e->getMessage();
     }
     return false;
 }