Beispiel #1
25
 /**
  * Handle handler
  *
  * @return void
  */
 public function handle()
 {
     $dompdf = new Dompdf();
     $dompdf->loadHtml($this->input);
     $dompdf->setPaper('letter');
     $dompdf->render();
     //Page numbers
     $font = $dompdf->getFontMetrics()->getFont("Arial", "bold");
     $dompdf->getCanvas()->page_text(16, 770, "Page: {PAGE_NUM} of {PAGE_COUNT}", $font, 8, array(0, 0, 0));
     echo $dompdf->output();
 }
 public function testConstructor()
 {
     $dompdf = new Dompdf();
     $this->assertInstanceOf('Dompdf\\Adapter\\Cpdf', $dompdf->getCanvas());
     $this->assertEquals('', $dompdf->getBaseHost());
     $this->assertEquals('', $dompdf->getBasePath());
     $this->assertInternalType('array', $dompdf->getCallbacks());
     $this->assertInstanceOf('Dompdf\\Css\\Stylesheet', $dompdf->getCss());
     $this->assertNull($dompdf->getDom());
     $this->assertNull($dompdf->getHttpContext());
     $this->assertInstanceOf('Dompdf\\Options', $dompdf->getOptions());
     $this->assertNull($dompdf->getProtocol());
     $this->assertFalse($dompdf->getQuirksmode());
     $this->assertNull($dompdf->getTree());
 }
 /**
  * @param Dompdf $pdf
  * @param PdfOptions $pdfOptions
  * @param $position
  * @return Dompdf
  */
 private function processPageLines(Dompdf $pdf, PdfOptions $pdfOptions, $position)
 {
     $pageLines = 'header' === $position ? $pdfOptions->getHeaderLines() : $pdfOptions->getFooterLines();
     $canvas = $pdf->getCanvas();
     $pageWidth = $canvas->get_width();
     $pageHeight = 'header' === $position ? $pdfOptions->getTopMargin() : $canvas->get_height() - $pdfOptions->getBottomMargin();
     $previousHeight = 5;
     // margin
     $pageCount = $canvas->get_page_count();
     $pageNumberMap = ['/{PAGE_COUNT}/', '/{PAGE_NUM}/'];
     $fontMetric = $pdf->getFontMetrics();
     /* @var $line \UthandoDomPdf\Model\PdfTextLine */
     foreach ($pageLines as $line) {
         $font = $fontMetric->getFont($line->getFont()->getFamily(), $line->getFont()->getWeight());
         $size = $line->getFont()->getSize();
         $text = $line->getText();
         $fontHeight = $fontMetric->getFontHeight($font, $size);
         $textWidth = $canvas->get_text_width(preg_replace($pageNumberMap, $pageCount, $text), $font, $size);
         if ('header' === $position) {
             $startY = $pageHeight + $previousHeight + $fontHeight;
         } else {
             $startY = $pageHeight - $previousHeight - $fontHeight;
         }
         $startX = $this->getPosition($pageWidth, $textWidth, $line->getPosition(), $pdfOptions);
         $canvas->page_text($startX, $startY, $text, $font, $size, [0, 0, 0]);
         $previousHeight += $fontHeight + 1;
         // +1 is the line spacing
     }
     return $pdf;
 }