1
This commit is contained in:
212
vendor/phpoffice/phpword/src/PhpWord/Settings.php
vendored
212
vendor/phpoffice/phpword/src/PhpWord/Settings.php
vendored
@@ -2,10 +2,8 @@
|
||||
/**
|
||||
* This file is part of PHPWord - A pure PHP library for reading and writing
|
||||
* word processing documents.
|
||||
*
|
||||
* PHPWord is free software distributed under the terms of the GNU Lesser
|
||||
* General Public License version 3 as published by the Free Software Foundation.
|
||||
*
|
||||
* For the full copyright and license information, please read the LICENSE
|
||||
* file that was distributed with this source code. For the full list of
|
||||
* contributors, visit https://github.com/PHPOffice/PHPWord/contributors.
|
||||
@@ -29,48 +27,46 @@ class Settings
|
||||
*
|
||||
* @const string
|
||||
*/
|
||||
const ZIPARCHIVE = 'ZipArchive';
|
||||
const PCLZIP = 'PclZip';
|
||||
const OLD_LIB = \PhpOffice\PhpWord\Shared\ZipArchive::class; // @deprecated 0.11
|
||||
public const ZIPARCHIVE = 'ZipArchive';
|
||||
public const PCLZIP = 'PclZip';
|
||||
public const OLD_LIB = \PhpOffice\PhpWord\Shared\ZipArchive::class; // @deprecated 0.11
|
||||
|
||||
/**
|
||||
* PDF rendering libraries.
|
||||
*
|
||||
* @const string
|
||||
*/
|
||||
const PDF_RENDERER_DOMPDF = 'DomPDF';
|
||||
const PDF_RENDERER_TCPDF = 'TCPDF';
|
||||
const PDF_RENDERER_MPDF = 'MPDF';
|
||||
public const PDF_RENDERER_DOMPDF = 'DomPDF';
|
||||
public const PDF_RENDERER_TCPDF = 'TCPDF';
|
||||
public const PDF_RENDERER_MPDF = 'MPDF';
|
||||
|
||||
/**
|
||||
* Measurement units multiplication factor.
|
||||
*
|
||||
* Applied to:
|
||||
* - Section: margins, header/footer height, gutter, column spacing
|
||||
* - Tab: position
|
||||
* - Indentation: left, right, firstLine, hanging
|
||||
* - Spacing: before, after
|
||||
* - Spacing: before, after.
|
||||
*
|
||||
* @const string
|
||||
*/
|
||||
const UNIT_TWIP = 'twip'; // = 1/20 point
|
||||
const UNIT_CM = 'cm';
|
||||
const UNIT_MM = 'mm';
|
||||
const UNIT_INCH = 'inch';
|
||||
const UNIT_POINT = 'point'; // = 1/72 inch
|
||||
const UNIT_PICA = 'pica'; // = 1/6 inch = 12 points
|
||||
public const UNIT_TWIP = 'twip'; // = 1/20 point
|
||||
public const UNIT_CM = 'cm';
|
||||
public const UNIT_MM = 'mm';
|
||||
public const UNIT_INCH = 'inch';
|
||||
public const UNIT_POINT = 'point'; // = 1/72 inch
|
||||
public const UNIT_PICA = 'pica'; // = 1/6 inch = 12 points
|
||||
|
||||
/**
|
||||
* Default font settings.
|
||||
*
|
||||
* OOXML defined font size values in halfpoints, i.e. twice of what PhpWord
|
||||
* use, and the conversion will be conducted during XML writing.
|
||||
*/
|
||||
const DEFAULT_FONT_NAME = 'Arial';
|
||||
const DEFAULT_FONT_SIZE = 10;
|
||||
const DEFAULT_FONT_COLOR = '000000';
|
||||
const DEFAULT_FONT_CONTENT_TYPE = 'default'; // default|eastAsia|cs
|
||||
const DEFAULT_PAPER = 'A4';
|
||||
public const DEFAULT_FONT_NAME = 'Arial';
|
||||
public const DEFAULT_FONT_SIZE = 10;
|
||||
public const DEFAULT_FONT_COLOR = '000000';
|
||||
public const DEFAULT_FONT_CONTENT_TYPE = 'default'; // default|eastAsia|cs
|
||||
public const DEFAULT_PAPER = 'A4';
|
||||
|
||||
/**
|
||||
* Compatibility option for XMLWriter.
|
||||
@@ -89,21 +85,28 @@ class Settings
|
||||
/**
|
||||
* Name of the external Library used for rendering PDF files.
|
||||
*
|
||||
* @var string
|
||||
* @var null|string
|
||||
*/
|
||||
private static $pdfRendererName;
|
||||
|
||||
/**
|
||||
* Options used for rendering PDF files.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
private static $pdfRendererOptions = [];
|
||||
|
||||
/**
|
||||
* Directory Path to the external Library used for rendering PDF files.
|
||||
*
|
||||
* @var string
|
||||
* @var null|string
|
||||
*/
|
||||
private static $pdfRendererPath;
|
||||
|
||||
/**
|
||||
* Measurement unit.
|
||||
*
|
||||
* @var float|int
|
||||
* @var string
|
||||
*/
|
||||
private static $measurementUnit = self::UNIT_TWIP;
|
||||
|
||||
@@ -117,7 +120,7 @@ class Settings
|
||||
/**
|
||||
* Default font size.
|
||||
*
|
||||
* @var int
|
||||
* @var float|int
|
||||
*/
|
||||
private static $defaultFontSize = self::DEFAULT_FONT_SIZE;
|
||||
|
||||
@@ -128,6 +131,13 @@ class Settings
|
||||
*/
|
||||
private static $defaultPaper = self::DEFAULT_PAPER;
|
||||
|
||||
/**
|
||||
* Is RTL by default ?
|
||||
*
|
||||
* @var ?bool
|
||||
*/
|
||||
private static $defaultRtl;
|
||||
|
||||
/**
|
||||
* The user defined temporary directory.
|
||||
*
|
||||
@@ -148,23 +158,17 @@ class Settings
|
||||
*
|
||||
* @return bool Compatibility
|
||||
*/
|
||||
public static function hasCompatibility()
|
||||
public static function hasCompatibility(): bool
|
||||
{
|
||||
return self::$xmlWriterCompatibility;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the compatibility option used by the XMLWriter.
|
||||
*
|
||||
* This sets the setIndent and setIndentString for better compatibility
|
||||
*
|
||||
* @param bool $compatibility
|
||||
*
|
||||
* @return bool
|
||||
* This sets the setIndent and setIndentString for better compatibility.
|
||||
*/
|
||||
public static function setCompatibility($compatibility)
|
||||
public static function setCompatibility(bool $compatibility): bool
|
||||
{
|
||||
$compatibility = (bool) $compatibility;
|
||||
self::$xmlWriterCompatibility = $compatibility;
|
||||
|
||||
return true;
|
||||
@@ -172,22 +176,16 @@ class Settings
|
||||
|
||||
/**
|
||||
* Get zip handler class.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function getZipClass()
|
||||
public static function getZipClass(): string
|
||||
{
|
||||
return self::$zipClass;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set zip handler class.
|
||||
*
|
||||
* @param string $zipClass
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public static function setZipClass($zipClass)
|
||||
public static function setZipClass(string $zipClass): bool
|
||||
{
|
||||
if (in_array($zipClass, [self::PCLZIP, self::ZIPARCHIVE, self::OLD_LIB])) {
|
||||
self::$zipClass = $zipClass;
|
||||
@@ -201,12 +199,9 @@ class Settings
|
||||
/**
|
||||
* Set details of the external library for rendering PDF files.
|
||||
*
|
||||
* @param string $libraryName
|
||||
* @param string $libraryBaseDir
|
||||
*
|
||||
* @return bool Success or failure
|
||||
*/
|
||||
public static function setPdfRenderer($libraryName, $libraryBaseDir)
|
||||
public static function setPdfRenderer(string $libraryName, string $libraryBaseDir): bool
|
||||
{
|
||||
if (!self::setPdfRendererName($libraryName)) {
|
||||
return false;
|
||||
@@ -217,22 +212,16 @@ class Settings
|
||||
|
||||
/**
|
||||
* Return the PDF Rendering Library.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function getPdfRendererName()
|
||||
public static function getPdfRendererName(): ?string
|
||||
{
|
||||
return self::$pdfRendererName;
|
||||
}
|
||||
|
||||
/**
|
||||
* Identify the external library to use for rendering PDF files.
|
||||
*
|
||||
* @param string $libraryName
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public static function setPdfRendererName($libraryName)
|
||||
public static function setPdfRendererName(?string $libraryName): bool
|
||||
{
|
||||
$pdfRenderers = [self::PDF_RENDERER_DOMPDF, self::PDF_RENDERER_TCPDF, self::PDF_RENDERER_MPDF];
|
||||
if (!in_array($libraryName, $pdfRenderers)) {
|
||||
@@ -245,22 +234,36 @@ class Settings
|
||||
|
||||
/**
|
||||
* Return the directory path to the PDF Rendering Library.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function getPdfRendererPath()
|
||||
public static function getPdfRendererPath(): ?string
|
||||
{
|
||||
return self::$pdfRendererPath;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set options of the external library for rendering PDF files.
|
||||
*/
|
||||
public static function setPdfRendererOptions(array $options): void
|
||||
{
|
||||
self::$pdfRendererOptions = $options;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the PDF Rendering Options.
|
||||
*/
|
||||
public static function getPdfRendererOptions(): array
|
||||
{
|
||||
return self::$pdfRendererOptions;
|
||||
}
|
||||
|
||||
/**
|
||||
* Location of external library to use for rendering PDF files.
|
||||
*
|
||||
* @param string $libraryBaseDir Directory path to the library's base folder
|
||||
* @param null|string $libraryBaseDir Directory path to the library's base folder
|
||||
*
|
||||
* @return bool Success or failure
|
||||
*/
|
||||
public static function setPdfRendererPath($libraryBaseDir)
|
||||
public static function setPdfRendererPath(?string $libraryBaseDir): bool
|
||||
{
|
||||
if (!$libraryBaseDir || false === file_exists($libraryBaseDir) || false === is_readable($libraryBaseDir)) {
|
||||
return false;
|
||||
@@ -272,25 +275,25 @@ class Settings
|
||||
|
||||
/**
|
||||
* Get measurement unit.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function getMeasurementUnit()
|
||||
public static function getMeasurementUnit(): string
|
||||
{
|
||||
return self::$measurementUnit;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set measurement unit.
|
||||
*
|
||||
* @param string $value
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public static function setMeasurementUnit($value)
|
||||
public static function setMeasurementUnit(string $value): bool
|
||||
{
|
||||
$units = [self::UNIT_TWIP, self::UNIT_CM, self::UNIT_MM, self::UNIT_INCH,
|
||||
self::UNIT_POINT, self::UNIT_PICA, ];
|
||||
$units = [
|
||||
self::UNIT_TWIP,
|
||||
self::UNIT_CM,
|
||||
self::UNIT_MM,
|
||||
self::UNIT_INCH,
|
||||
self::UNIT_POINT,
|
||||
self::UNIT_PICA,
|
||||
];
|
||||
if (!in_array($value, $units)) {
|
||||
return false;
|
||||
}
|
||||
@@ -302,11 +305,11 @@ class Settings
|
||||
/**
|
||||
* Sets the user defined path to temporary directory.
|
||||
*
|
||||
* @since 0.12.0
|
||||
*
|
||||
* @param string $tempDir The user defined path to temporary directory
|
||||
*
|
||||
* @since 0.12.0
|
||||
*/
|
||||
public static function setTempDir($tempDir): void
|
||||
public static function setTempDir(string $tempDir): void
|
||||
{
|
||||
self::$tempDir = $tempDir;
|
||||
}
|
||||
@@ -315,10 +318,8 @@ class Settings
|
||||
* Returns path to temporary directory.
|
||||
*
|
||||
* @since 0.12.0
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function getTempDir()
|
||||
public static function getTempDir(): string
|
||||
{
|
||||
if (!empty(self::$tempDir)) {
|
||||
$tempDir = self::$tempDir;
|
||||
@@ -331,44 +332,34 @@ class Settings
|
||||
|
||||
/**
|
||||
* @since 0.13.0
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public static function isOutputEscapingEnabled()
|
||||
public static function isOutputEscapingEnabled(): bool
|
||||
{
|
||||
return self::$outputEscapingEnabled;
|
||||
}
|
||||
|
||||
/**
|
||||
* @since 0.13.0
|
||||
*
|
||||
* @param bool $outputEscapingEnabled
|
||||
*/
|
||||
public static function setOutputEscapingEnabled($outputEscapingEnabled): void
|
||||
public static function setOutputEscapingEnabled(bool $outputEscapingEnabled): void
|
||||
{
|
||||
self::$outputEscapingEnabled = $outputEscapingEnabled;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get default font name.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function getDefaultFontName()
|
||||
public static function getDefaultFontName(): string
|
||||
{
|
||||
return self::$defaultFontName;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set default font name.
|
||||
*
|
||||
* @param string $value
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public static function setDefaultFontName($value)
|
||||
public static function setDefaultFontName(string $value): bool
|
||||
{
|
||||
if (is_string($value) && trim($value) !== '') {
|
||||
if (trim($value) !== '') {
|
||||
self::$defaultFontName = $value;
|
||||
|
||||
return true;
|
||||
@@ -380,7 +371,7 @@ class Settings
|
||||
/**
|
||||
* Get default font size.
|
||||
*
|
||||
* @return int
|
||||
* @return float|int
|
||||
*/
|
||||
public static function getDefaultFontSize()
|
||||
{
|
||||
@@ -390,14 +381,11 @@ class Settings
|
||||
/**
|
||||
* Set default font size.
|
||||
*
|
||||
* @param int $value
|
||||
*
|
||||
* @return bool
|
||||
* @param null|float|int $value
|
||||
*/
|
||||
public static function setDefaultFontSize($value)
|
||||
public static function setDefaultFontSize($value): bool
|
||||
{
|
||||
$value = (int) $value;
|
||||
if ($value > 0) {
|
||||
if ((is_int($value) || is_float($value)) && (int) $value > 0) {
|
||||
self::$defaultFontSize = $value;
|
||||
|
||||
return true;
|
||||
@@ -406,14 +394,20 @@ class Settings
|
||||
return false;
|
||||
}
|
||||
|
||||
public static function setDefaultRtl(?bool $defaultRtl): void
|
||||
{
|
||||
self::$defaultRtl = $defaultRtl;
|
||||
}
|
||||
|
||||
public static function isDefaultRtl(): ?bool
|
||||
{
|
||||
return self::$defaultRtl;
|
||||
}
|
||||
|
||||
/**
|
||||
* Load setting from phpword.yml or phpword.yml.dist.
|
||||
*
|
||||
* @param string $filename
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function loadConfig($filename = null)
|
||||
public static function loadConfig(?string $filename = null): array
|
||||
{
|
||||
// Get config file
|
||||
$configFile = null;
|
||||
@@ -455,24 +449,18 @@ class Settings
|
||||
|
||||
/**
|
||||
* Get default paper.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function getDefaultPaper()
|
||||
public static function getDefaultPaper(): string
|
||||
{
|
||||
return self::$defaultPaper;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set default paper.
|
||||
*
|
||||
* @param string $value
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public static function setDefaultPaper($value)
|
||||
public static function setDefaultPaper(string $value): bool
|
||||
{
|
||||
if (is_string($value) && trim($value) !== '') {
|
||||
if (trim($value) !== '') {
|
||||
self::$defaultPaper = $value;
|
||||
|
||||
return true;
|
||||
|
||||
Reference in New Issue
Block a user