setLocale($locale); } /** * Set details of the external library that PhpSpreadsheet should use for rendering charts. * * @param string $libraryName Internal reference name of the library * e.g. \PhpOffice\PhpSpreadsheet\Settings::CHART_RENDERER_JPGRAPH * @param string $libraryBaseDir Directory path to the library's base folder * * @return bool Success or failure */ public static function setChartRenderer($libraryName, $libraryBaseDir) { if (!self::setChartRendererName($libraryName)) { return false; } return self::setChartRendererPath($libraryBaseDir); } /** * Identify to PhpSpreadsheet the external library to use for rendering charts. * * @param string $libraryName Internal reference name of the library * e.g. \PhpOffice\PhpSpreadsheet\Settings::CHART_RENDERER_JPGRAPH * * @return bool Success or failure */ public static function setChartRendererName($libraryName) { if (!in_array($libraryName, self::$chartRenderers)) { return false; } self::$chartRendererName = $libraryName; return true; } /** * Tell PhpSpreadsheet where to find the external library to use for rendering charts. * * @param string $libraryBaseDir Directory path to the library's base folder * * @return bool Success or failure */ public static function setChartRendererPath($libraryBaseDir) { if ((file_exists($libraryBaseDir) === false) || (is_readable($libraryBaseDir) === false)) { return false; } self::$chartRendererPath = $libraryBaseDir; return true; } /** * Return the Chart Rendering Library that PhpSpreadsheet is currently configured to use (e.g. jpgraph). * * @return string|null Internal reference name of the Chart Rendering Library that PhpSpreadsheet is * currently configured to use * e.g. \PhpOffice\PhpSpreadsheet\Settings::CHART_RENDERER_JPGRAPH */ public static function getChartRendererName() { return self::$chartRendererName; } /** * Return the directory path to the Chart Rendering Library that PhpSpreadsheet is currently configured to use. * * @return string|null Directory Path to the Chart Rendering Library that PhpSpreadsheet is * currently configured to use */ public static function getChartRendererPath() { return self::$chartRendererPath; } /** * Identify to PhpSpreadsheet the external library to use for rendering PDF files. * * @param string $libraryName Internal reference name of the library * e.g. \PhpOffice\PhpSpreadsheet\Settings::PDF_RENDERER_TCPDF, * \PhpOffice\PhpSpreadsheet\Settings::PDF_RENDERER_DOMPDF * or \PhpOffice\PhpSpreadsheet\Settings::PDF_RENDERER_MPDF */ public static function setPdfRendererName($libraryName) { if (!in_array($libraryName, self::$pdfRenderers)) { throw new Exception('"' . $libraryName . '" is not a valid PDF library name'); } self::$pdfRendererName = $libraryName; } /** * Return the PDF Rendering Library that PhpSpreadsheet is currently configured to use (e.g. dompdf). * * @return string|null Internal reference name of the PDF Rendering Library that PhpSpreadsheet is * currently configured to use * e.g. \PhpOffice\PhpSpreadsheet\Settings::PDF_RENDERER_TCPDF, * \PhpOffice\PhpSpreadsheet\Settings::PDF_RENDERER_DOMPDF * or \PhpOffice\PhpSpreadsheet\Settings::PDF_RENDERER_MPDF */ public static function getPdfRendererName() { return self::$pdfRendererName; } /** * Set default options for libxml loader. * * @param int $options Default options for libxml loader */ public static function setLibXmlLoaderOptions($options = null) { if (is_null($options) && defined('LIBXML_DTDLOAD')) { $options = LIBXML_DTDLOAD | LIBXML_DTDATTR; } @libxml_disable_entity_loader((bool) $options); self::$libXmlLoaderOptions = $options; } /** * Get default options for libxml loader. * Defaults to LIBXML_DTDLOAD | LIBXML_DTDATTR when not set explicitly. * * @return int Default options for libxml loader */ public static function getLibXmlLoaderOptions() { if (is_null(self::$libXmlLoaderOptions) && defined('LIBXML_DTDLOAD')) { self::setLibXmlLoaderOptions(LIBXML_DTDLOAD | LIBXML_DTDATTR); } elseif (is_null(self::$libXmlLoaderOptions)) { self::$libXmlLoaderOptions = true; } @libxml_disable_entity_loader((bool) self::$libXmlLoaderOptions); return self::$libXmlLoaderOptions; } }