123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154 |
- <?php
- namespace PhpMyAdmin;
- use PhpMyAdmin\Core;
- use PhpMyAdmin\Message;
- use PhpMyAdmin\Response;
- use PhpMyAdmin\Util;
- use TCPDF;
- use TCPDF_FONTS;
- class Pdf extends TCPDF
- {
- var $footerset;
- var $Alias = array();
-
- const PMA_PDF_FONT = 'DejaVuSans';
-
- public function __construct($orientation = 'P', $unit = 'mm', $format = 'A4',
- $unicode = true, $encoding = 'UTF-8', $diskcache = false, $pdfa=false
- ) {
- parent::__construct(
- $orientation, $unit, $format, $unicode,
- $encoding, $diskcache, $pdfa
- );
- $this->SetAuthor('phpMyAdmin ' . PMA_VERSION);
- $this->AddFont('DejaVuSans', '', 'dejavusans.php');
- $this->AddFont('DejaVuSans', 'B', 'dejavusansb.php');
- $this->SetFont(Pdf::PMA_PDF_FONT, '', 14);
- $this->setFooterFont(array(Pdf::PMA_PDF_FONT, '', 14));
- }
-
-
- public function Footer()
- {
-
- if (!isset($this->footerset[$this->page])) {
- $this->SetY(-15);
- $this->SetFont(Pdf::PMA_PDF_FONT, '', 14);
- $this->Cell(
- 0, 6,
- __('Page number:') . ' '
- . $this->getAliasNumPage() . '/' . $this->getAliasNbPages(),
- 'T', 0, 'C'
- );
- $this->Cell(0, 6, Util::localisedDate(), 0, 1, 'R');
- $this->SetY(20);
-
- $this->footerset[$this->page] = 1;
- }
- }
-
- public function setAlias($name, $value)
- {
- $name = TCPDF_FONTS::UTF8ToUTF16BE(
- $name, false, true, $this->CurrentFont
- );
- $this->Alias[$name] = TCPDF_FONTS::UTF8ToUTF16BE(
- $value, false, true, $this->CurrentFont
- );
- }
-
- public function _putpages()
- {
- if (count($this->Alias) > 0) {
- $nbPages = count($this->pages);
- for ($n = 1; $n <= $nbPages; $n++) {
- $this->pages[$n] = strtr($this->pages[$n], $this->Alias);
- }
- }
- parent::_putpages();
- }
-
-
- public function Error($error_message = '')
- {
- Message::error(
- __('Error while creating PDF:') . ' ' . $error_message
- )->display();
- exit;
- }
-
- public function download($filename)
- {
- $pdfData = $this->getPDFData();
- Response::getInstance()->disable();
- Core::downloadHeader(
- $filename,
- 'application/pdf',
- strlen($pdfData)
- );
- echo $pdfData;
- }
- }
|