Search moodle.org's
Developer Documentation

See Release Notes
Long Term Support Release

  • Bug fixes for general core bugs in 4.1.x will end 13 November 2023 (12 months).
  • Bug fixes for security issues in 4.1.x will end 10 November 2025 (36 months).
  • PHP version: minimum PHP 7.4.0 Note: minimum PHP version has increased since Moodle 4.0. PHP 8.0.x is supported too.
   1  <?php
   2  //============================================================+
   3  // File name   : tcpdf_autoconfig.php
   4  // Version     : 1.1.1
   5  // Begin       : 2013-05-16
   6  // Last Update : 2014-12-18
   7  // Authors     : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com
   8  // License     : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html)
   9  // -------------------------------------------------------------------
  10  // Copyright (C) 2011-2014 Nicola Asuni - Tecnick.com LTD
  11  //
  12  // This file is part of TCPDF software library.
  13  //
  14  // TCPDF is free software: you can redistribute it and/or modify it
  15  // under the terms of the GNU Lesser General Public License as
  16  // published by the Free Software Foundation, either version 3 of the
  17  // License, or (at your option) any later version.
  18  //
  19  // TCPDF is distributed in the hope that it will be useful, but
  20  // WITHOUT ANY WARRANTY; without even the implied warranty of
  21  // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  22  // See the GNU Lesser General Public License for more details.
  23  //
  24  // You should have received a copy of the License
  25  // along with TCPDF. If not, see
  26  // <http://www.tecnick.com/pagefiles/tcpdf/LICENSE.TXT>.
  27  //
  28  // See LICENSE.TXT file for more information.
  29  // -------------------------------------------------------------------
  30  //
  31  // Description : Try to automatically configure some TCPDF
  32  //               constants if not defined.
  33  //
  34  //============================================================+
  35  
  36  /**
  37   * @file
  38   * Try to automatically configure some TCPDF constants if not defined.
  39   * @package com.tecnick.tcpdf
  40   * @version 1.1.1
  41   */
  42  
  43  // DOCUMENT_ROOT fix for IIS Webserver
  44  if ((!isset($_SERVER['DOCUMENT_ROOT'])) OR (empty($_SERVER['DOCUMENT_ROOT']))) {
  45  	 if(isset($_SERVER['SCRIPT_FILENAME'])) {
  46  	 	 $_SERVER['DOCUMENT_ROOT'] = str_replace( '\\', '/', substr($_SERVER['SCRIPT_FILENAME'], 0, 0-strlen($_SERVER['PHP_SELF'])));
  47  	 } elseif(isset($_SERVER['PATH_TRANSLATED'])) {
  48  	 	 $_SERVER['DOCUMENT_ROOT'] = str_replace( '\\', '/', substr(str_replace('\\\\', '\\', $_SERVER['PATH_TRANSLATED']), 0, 0-strlen($_SERVER['PHP_SELF'])));
  49  	 } else {
  50  	 	 // define here your DOCUMENT_ROOT path if the previous fails (e.g. '/var/www')
  51  	 	 $_SERVER['DOCUMENT_ROOT'] = '/';
  52  	 }
  53  }
  54  $_SERVER['DOCUMENT_ROOT'] = str_replace('//', '/', $_SERVER['DOCUMENT_ROOT']);
  55  if (substr($_SERVER['DOCUMENT_ROOT'], -1) != '/') {
  56  	 $_SERVER['DOCUMENT_ROOT'] .= '/';
  57  }
  58  
  59  // Load main configuration file only if the K_TCPDF_EXTERNAL_CONFIG constant is set to false.
  60  if (!defined('K_TCPDF_EXTERNAL_CONFIG') OR !K_TCPDF_EXTERNAL_CONFIG) {
  61  	 // define a list of default config files in order of priority
  62  	 $tcpdf_config_files = array(dirname(__FILE__).'/config/tcpdf_config.php', '/etc/php-tcpdf/tcpdf_config.php', '/etc/tcpdf/tcpdf_config.php', '/etc/tcpdf_config.php');
  63  	 foreach ($tcpdf_config_files as $tcpdf_config) {
  64  	 	 if (@file_exists($tcpdf_config) AND is_readable($tcpdf_config)) {
  65  	 	 	 require_once($tcpdf_config);
  66  	 	 	 break;
  67  	 	 }
  68  	 }
  69  }
  70  
  71  if (!defined('K_PATH_MAIN')) {
  72  	 define ('K_PATH_MAIN', dirname(__FILE__).'/');
  73  }
  74  
  75  if (!defined('K_PATH_FONTS')) {
  76  	 define ('K_PATH_FONTS', K_PATH_MAIN.'fonts/');
  77  }
  78  
  79  if (!defined('K_PATH_URL')) {
  80  	 $k_path_url = K_PATH_MAIN; // default value for console mode
  81  	 if (isset($_SERVER['HTTP_HOST']) AND (!empty($_SERVER['HTTP_HOST']))) {
  82  	 	 if(isset($_SERVER['HTTPS']) AND (!empty($_SERVER['HTTPS'])) AND (strtolower($_SERVER['HTTPS']) != 'off')) {
  83  	 	 	 $k_path_url = 'https://';
  84  	 	 } else {
  85  	 	 	 $k_path_url = 'http://';
  86  	 	 }
  87  	 	 $k_path_url .= $_SERVER['HTTP_HOST'];
  88  	 	 $k_path_url .= str_replace( '\\', '/', substr(K_PATH_MAIN, (strlen($_SERVER['DOCUMENT_ROOT']) - 1)));
  89  	 }
  90  	 define ('K_PATH_URL', $k_path_url);
  91  }
  92  
  93  if (!defined('K_PATH_IMAGES')) {
  94  	 $tcpdf_images_dirs = array(K_PATH_MAIN.'examples/images/', K_PATH_MAIN.'images/', '/usr/share/doc/php-tcpdf/examples/images/', '/usr/share/doc/tcpdf/examples/images/', '/usr/share/doc/php/tcpdf/examples/images/', '/var/www/tcpdf/images/', '/var/www/html/tcpdf/images/', '/usr/local/apache2/htdocs/tcpdf/images/', K_PATH_MAIN);
  95  	 foreach ($tcpdf_images_dirs as $tcpdf_images_path) {
  96  	 	 if (@file_exists($tcpdf_images_path)) {
  97  	 	 	 define ('K_PATH_IMAGES', $tcpdf_images_path);
  98  	 	 	 break;
  99  	 	 }
 100  	 }
 101  }
 102  
 103  if (!defined('PDF_HEADER_LOGO')) {
 104  	 $tcpdf_header_logo = '';
 105  	 if (@file_exists(K_PATH_IMAGES.'tcpdf_logo.jpg')) {
 106  	 	 $tcpdf_header_logo = 'tcpdf_logo.jpg';
 107  	 }
 108  	 define ('PDF_HEADER_LOGO', $tcpdf_header_logo);
 109  }
 110  
 111  if (!defined('PDF_HEADER_LOGO_WIDTH')) {
 112  	 if (!empty($tcpdf_header_logo)) {
 113  	 	 define ('PDF_HEADER_LOGO_WIDTH', 30);
 114  	 } else {
 115  	 	 define ('PDF_HEADER_LOGO_WIDTH', 0);
 116  	 }
 117  }
 118  
 119  if (!defined('K_PATH_CACHE')) {
 120  	 $K_PATH_CACHE = ini_get('upload_tmp_dir') ? ini_get('upload_tmp_dir') : sys_get_temp_dir();
 121  	 if (substr($K_PATH_CACHE, -1) != '/') {
 122  	 	 $K_PATH_CACHE .= '/';
 123  	 }
 124  	 define ('K_PATH_CACHE', $K_PATH_CACHE);
 125  }
 126  
 127  if (!defined('K_BLANK_IMAGE')) {
 128  	 define ('K_BLANK_IMAGE', '_blank.png');
 129  }
 130  
 131  if (!defined('PDF_PAGE_FORMAT')) {
 132  	 define ('PDF_PAGE_FORMAT', 'A4');
 133  }
 134  
 135  if (!defined('PDF_PAGE_ORIENTATION')) {
 136  	 define ('PDF_PAGE_ORIENTATION', 'P');
 137  }
 138  
 139  if (!defined('PDF_CREATOR')) {
 140  	 define ('PDF_CREATOR', 'TCPDF');
 141  }
 142  
 143  if (!defined('PDF_AUTHOR')) {
 144  	 define ('PDF_AUTHOR', 'TCPDF');
 145  }
 146  
 147  if (!defined('PDF_HEADER_TITLE')) {
 148  	 define ('PDF_HEADER_TITLE', 'TCPDF Example');
 149  }
 150  
 151  if (!defined('PDF_HEADER_STRING')) {
 152  	 define ('PDF_HEADER_STRING', "by Nicola Asuni - Tecnick.com\nwww.tcpdf.org");
 153  }
 154  
 155  if (!defined('PDF_UNIT')) {
 156  	 define ('PDF_UNIT', 'mm');
 157  }
 158  
 159  if (!defined('PDF_MARGIN_HEADER')) {
 160  	 define ('PDF_MARGIN_HEADER', 5);
 161  }
 162  
 163  if (!defined('PDF_MARGIN_FOOTER')) {
 164  	 define ('PDF_MARGIN_FOOTER', 10);
 165  }
 166  
 167  if (!defined('PDF_MARGIN_TOP')) {
 168  	 define ('PDF_MARGIN_TOP', 27);
 169  }
 170  
 171  if (!defined('PDF_MARGIN_BOTTOM')) {
 172  	 define ('PDF_MARGIN_BOTTOM', 25);
 173  }
 174  
 175  if (!defined('PDF_MARGIN_LEFT')) {
 176  	 define ('PDF_MARGIN_LEFT', 15);
 177  }
 178  
 179  if (!defined('PDF_MARGIN_RIGHT')) {
 180  	 define ('PDF_MARGIN_RIGHT', 15);
 181  }
 182  
 183  if (!defined('PDF_FONT_NAME_MAIN')) {
 184  	 define ('PDF_FONT_NAME_MAIN', 'helvetica');
 185  }
 186  
 187  if (!defined('PDF_FONT_SIZE_MAIN')) {
 188  	 define ('PDF_FONT_SIZE_MAIN', 10);
 189  }
 190  
 191  if (!defined('PDF_FONT_NAME_DATA')) {
 192  	 define ('PDF_FONT_NAME_DATA', 'helvetica');
 193  }
 194  
 195  if (!defined('PDF_FONT_SIZE_DATA')) {
 196  	 define ('PDF_FONT_SIZE_DATA', 8);
 197  }
 198  
 199  if (!defined('PDF_FONT_MONOSPACED')) {
 200  	 define ('PDF_FONT_MONOSPACED', 'courier');
 201  }
 202  
 203  if (!defined('PDF_IMAGE_SCALE_RATIO')) {
 204  	 define ('PDF_IMAGE_SCALE_RATIO', 1.25);
 205  }
 206  
 207  if (!defined('HEAD_MAGNIFICATION')) {
 208  	 define('HEAD_MAGNIFICATION', 1.1);
 209  }
 210  
 211  if (!defined('K_CELL_HEIGHT_RATIO')) {
 212  	 define('K_CELL_HEIGHT_RATIO', 1.25);
 213  }
 214  
 215  if (!defined('K_TITLE_MAGNIFICATION')) {
 216  	 define('K_TITLE_MAGNIFICATION', 1.3);
 217  }
 218  
 219  if (!defined('K_SMALL_RATIO')) {
 220  	 define('K_SMALL_RATIO', 2/3);
 221  }
 222  
 223  if (!defined('K_THAI_TOPCHARS')) {
 224  	 define('K_THAI_TOPCHARS', true);
 225  }
 226  
 227  if (!defined('K_TCPDF_CALLS_IN_HTML')) {
 228  	 define('K_TCPDF_CALLS_IN_HTML', false);
 229  }
 230  
 231  if (!defined('K_TCPDF_THROW_EXCEPTION_ERROR')) {
 232  	 define('K_TCPDF_THROW_EXCEPTION_ERROR', false);
 233  }
 234  
 235  if (!defined('K_TIMEZONE')) {
 236  	 define('K_TIMEZONE', @date_default_timezone_get());
 237  }
 238  
 239  //============================================================+
 240  // END OF FILE
 241  //============================================================+