<?php namespace LAM\PDF; /* This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/) Copyright (C) 2017 - 2018 Roland Gruber This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /** * LDAP Account Manager PDF printing library for TCPDF. * * @author Roland Gruber * @package PDF */ /** PDF generator class */ include_once(__DIR__ . "/3rdParty/tcpdf/tcpdf.php"); class LAMTCPDF extends \TCPDF { /** * @var PDFStructure structure */ private $structure; /** * @var string font name */ private $fontName; /** * Constructor. * * @param PDFStructure $structure PDF structure * @param string $fontName font name */ public function __construct($structure, $fontName) { parent::__construct('P', 'mm', 'A4', true, 'UTF-8', false); $this->structure = $structure; $this->fontName = $fontName; $this->SetAutoPageBreak(true, PDF_MARGIN_BOTTOM); $this->SetMargins(10, 35, 10); // generic PDF information $this->setTitle($this->structure->getTitle()); $this->setCreator("LDAP Account Manager"); $this->setAuthor("LDAP Account Manager"); // footer $this->setPrintFooter(true); } /** * {@inheritDoc} * @see TCPDF::Header() */ public function Header() { $logoFile = $this->structure->getLogo(); if (!empty($logoFile) && ($logoFile !== 'none')) { $logo = dirname(__FILE__) . "/../config/pdf/" . $_SESSION['config']->getName() . "/logos/" . $logoFile; $this->Image($logo, 10, 10, '', 15, 'JPG', '', 'T', false, 300, '', false, false, 0, false, false, false); } else { $this->SetY(10); } $this->SetFont($this->fontName, '', 20); $this->Cell(0, 15, $this->structure->getTitle(), 0, true, 'R', 0, '', 0, false, 'M', 'M'); //set folding marks if ($this->structure->getFoldingMarks() == PDFStructure::FOLDING_STANDARD) { $this->SetLineWidth(0.2); $foldingMarks = array(97, 202); foreach ($foldingMarks as $mark) { $this->Line(0, $mark, 5, $mark); } } } /** * {@inheritDoc} * @see TCPDF::Footer() */ public function Footer() { $this->SetY(-15); $this->SetFont($this->fontName, '', LAMPDF_FONT_SIZE); $footerText = _("This document was automatically created by LDAP Account Manager") . ' (' . getFormattedTime('Y-m-d H:i:s T') . ')'; $this->Cell(0, 10, $footerText, 0, false, 'C', 0, '', 0, false, 'T', 'M'); } }