You are here

class TCPDFDrupal in TCPDF 8

Do not create a new instance of this class manually. Use tcpdf_get_instance().

Hierarchy

Expanded class hierarchy of TCPDFDrupal

See also

tcpdf_get_instance()

File

src/TCPDFDrupal.php, line 16
Contains \TCPDF\TCPDFDrupal.

Namespace

Drupal\tcpdf
View source
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;
  }

}

Members

Namesort descending Modifiers Type Description Overrides
TCPDFDrupal::$drupalFooter protected property
TCPDFDrupal::$drupalHeader protected property
TCPDFDrupal::DrupalGenRunningSection private function Generates a header or footer for the pdf document.
TCPDFDrupal::DrupalInitialize function 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…
TCPDFDrupal::Footer public function Sets the footer of the document.
TCPDFDrupal::Header public function Sets the header of the document.
TCPDFDrupal::__construct function