TCPDFDrupal.php in TCPDF 8
Contains \TCPDF\TCPDFDrupal.
Namespace
Drupal\tcpdfFile
src/TCPDFDrupal.phpView source
<?php
/**
* @file
* Contains \TCPDF\TCPDFDrupal.
*/
namespace Drupal\tcpdf;
use TCPDF;
/**
* Do not create a new instance of this class manually. Use tcpdf_get_instance().
* @see tcpdf_get_instance()
*/
class TCPDFDrupal extends TCPDF {
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);
}
protected $drupalHeader = array(
'html' => NULL,
'callback' => NULL,
);
protected $drupalFooter = array(
'html' => NULL,
'callback' => NULL,
);
/**
* Sets a bunch of commonly used propeties in the TCPDF object. The propeties
* set by this function can be safely changed after calling the method. This
* method also let's the developer to change the header or footer of the pdf
* document without making his/her own class.
*
* @param array $options
* Associative array containing basic settings.
* 'title' => Title of the document
* 'subject' => Subject of the document
* 'author' => Author of the document
* 'logo_path' => Path to a logo wich is placed to the header
* 'keywords' => Comma separated list of keywords
* 'header' => Array
* 'html' => Html code of the header.
* 'callback' => Function that generates the header. If 'html' is set, it's ignored. Note: Not working.
* 'footer' => Array
* 'html' => Html code of the footer.
* 'callback' => Function that generates the footer. If 'html' is set, it's ignored. Note: Not working.
*/
function DrupalInitialize($options) {
$site_name = \Drupal::config('system.site')
->get('name');
$title = isset($options['title']) ? $options['title'] : $site_name;
$author = isset($options['author']) ? $options['author'] : $site_name;
$subject = isset($options['subject']) ? $options['subject'] : $site_name;
$keywords = isset($options['keywords']) ? $options['keywords'] : 'pdf, drupal';
$this->drupalHeader = isset($options['header']) ? $options['header'] : $this->drupalHeader;
$this->drupalFooter = isset($options['footer']) ? $options['footer'] : $this->drupalFooter;
// set document information
$this
->SetCreator(PDF_CREATOR);
$this
->SetAuthor($author);
$this
->SetTitle($title);
$this
->SetSubject($subject);
$this
->SetKeywords($keywords);
// set default header data
$this
->setFooterFont(array(
PDF_FONT_NAME_DATA,
'',
6,
));
// set default monospaced font
$this
->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
//set margins
$this
->SetMargins(PDF_MARGIN_LEFT, 28, PDF_MARGIN_RIGHT);
$this
->SetHeaderMargin(PDF_MARGIN_HEADER);
$this
->SetFooterMargin(PDF_MARGIN_FOOTER);
//set auto page breaks
$this
->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
//set image scale factor
$this
->setImageScale(PDF_IMAGE_SCALE_RATIO);
// set font
$this
->SetFont('dejavusans', '', 8);
$this
->AddPage();
}
/**
* Sets the header of the document.
* @return NULL
*/
public function Header() {
if (!$this
->DrupalGenRunningSection($this->drupalHeader)) {
return parent::Header();
}
}
/**
* Sets the footer of the document.
* @return NULL
*/
public function Footer() {
if (!$this
->DrupalGenRunningSection($this->drupalFooter)) {
return parent::Footer();
}
}
/**
* Generates a header or footer for the pdf document.
*
* @param array $container
* @see DrupalInitialize()
*
* @return FALSE if the container did not store any useful information to generate
* the document.
*/
private function DrupalGenRunningSection($container) {
if (!empty($container['html'])) {
$this
->writeHTML($container['html']);
return TRUE;
}
elseif (!empty($container['callback'])) {
$that =& $this;
if (is_array($container['callback'])) {
if (function_exists($container['callback']['function'])) {
call_user_func($container['callback']['function'], $that, $container['callback']['context']);
}
}
elseif (function_exists($container['callback'])) {
call_user_func($container['callback'], $that);
}
return TRUE;
}
return FALSE;
}
}
Classes
Name![]() |
Description |
---|---|
TCPDFDrupal | Do not create a new instance of this class manually. Use tcpdf_get_instance(). |