From 713b20faae38f0248604751ea007ae0096bf1144 Mon Sep 17 00:00:00 2001 From: vyshane Date: Mon, 4 Sep 2006 08:10:08 +0000 Subject: [PATCH] Wrapper class with modifications to TCPDF for Moodle usage. --- lib/pdflib.php | 131 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 131 insertions(+) create mode 100644 lib/pdflib.php diff --git a/lib/pdflib.php b/lib/pdflib.php new file mode 100644 index 0000000000..80f2c884f6 --- /dev/null +++ b/lib/pdflib.php @@ -0,0 +1,131 @@ +datadir.'/fonts/' exists, this directory + * will be used instead of lib/tcpdf/fonts/. If there is only one font + * present in $CFG->datadir.'/fonts/', the font is used as the default + * font. + * + * See lib/tcpdf/fonts/README for details on how to convert fonts for use + * with TCPDF. + * + * Example usage: + * $pdf = new pdf; + * $pdf->print_header = false; + * $pdf->print_footer = false; + * $pdf->AddPage(); + * $pdf->Write(5, 'Hello World!'); + * $pdf->Output(); + * + * @author Vy-Shane Sin Fat + * @license http://www.gnu.org/copyleft/gpl.html GNU Public License + * @package moodlecore + */ + + + +/// Includes +require_once('tcpdf/tcpdf.php'); + + + +/// Constants +define('PDF_CUSTOM_FONT_PATH', $CFG->dataroot.'/fonts/'); +define('PDF_DEFAULT_FONT', 'FreeSerif'); + + + +/** + * Wrapper class that extends TCPDF (lib/tcpdf/tcpdf.php). + * Moodle customisations are done here. + */ +class pdf extends TCPDF { + + /** + * Constructor + */ + function pdf($orientation='P', $unit='mm', $format='A4', $unicode=true, $encoding='UTF-8') { + + parent::TCPDF($orientation, $unit, $format, $unicode, $encoding); + + if (is_dir(PDF_CUSTOM_FONT_PATH)) { + $fontfiles = $this->_getfontfiles(PDF_CUSTOM_FONT_PATH); + + if (count($fontfiles) == 1) { + $autofontname = substr($fontfile[0], 0, -4); + $this->AddFont($autofontname, '', $autofontname.'.php'); + $this->SetFont($autofontname); + } else if (count($fontfiles == 0)) { + $this->SetFont(PDF_DEFAULT_FONT); + } + } else { + $this->SetFont(PDF_DEFAULT_FONT); + } + } + + + /** + * Return fonts path + * Overriden from class TCPDF + */ + function _getfontpath() { + global $CFG; + + if (is_dir(PDF_CUSTOM_FONT_PATH) + && count($this->_getfontfiles(PDF_CUSTOM_FONT_PATH)) > 0) { + $fontpath = PDF_CUSTOM_FONT_PATH; + } else { + $fontpath = $CFG->dirroot.'/lib/tcpdf/fonts/'; + } + return $fontpath; + } + + + /** + * Get the .php files for the fonts + */ + function _getfontfiles($fontdir) { + $dirlist = get_directory_list($fontdir); + $fontfiles = array(); + + foreach ($dirlist as $file) { + if (substr($file, -4) == '.php') { + array_push($fontfiles, $file); + } + } + return $fontfiles; + } + + +} // End class pdf + + +?> \ No newline at end of file -- 2.39.5