Files
PhpSpreadsheet/samples/Pdf/Mpdf2.php
T
oleibman 29c0162e2a Let Phpstan Run on Samples (#3808)
* Let Phpstan Run on Samples

Phpstan currently analyzes all source and test members. We already run phpcs and php-cs-fixer on samples as well. I would expect that samples are often used as templates for code in userland; it behooves us to be at least as careful with those members as for the others which are already being analyzed.  Aside from 1300+ messages `Variable $helper might not be defined.`, which will be suppressed in phpstan.neon.dist, there are really only a few changes needed for sample members, so that part of the code base was already in good shape, and is now even better. No annotations were needed.

* Scrutinizer 2 out of 3

1 false positive, now suppressed; fix other 2.

* Remove Dead Code

* Very Minor Changes

* Add infra
2023-12-06 09:40:27 -08:00

44 lines
1.5 KiB
PHP

<?php
/**
* Override to MPDF class to allow setting config options.
*/
namespace PhpOffice\PhpSpreadsheet\Writer\Pdf;
class Mpdf2 extends Mpdf
{
/**
* Gets the implementation of external PDF library that should be used.
* This member extends Mpdf in order to allow specification of
* non-default configuration variables. In this case,
* it allows inclusion of a font which would not normally
* be used by Mpdf (which would instead use a default substitution).
* Other configuration options may be specified here.
*
* @param array $config Configuration array
*
* @return \Mpdf\Mpdf implementation
*/
protected function createExternalWriterInstance($config)
{
$defaultConfig = (new \Mpdf\Config\ConfigVariables())->getDefaults();
$fontDirs = $defaultConfig['fontDir'];
$newFontDirectory = __DIR__;
$config['fontDir'] = array_merge($fontDirs, [$newFontDirectory]);
$defaultFontConfig = (new \Mpdf\Config\FontVariables())->getDefaults();
// Note that Mpdf config uses lower-case fontdata
// even though it uses camel-case fontDir.
$fontdata = $defaultFontConfig['fontdata'];
$fontFile = 'ShadowsIntoLight-Regular.ttf';
$config['fontdata'] = $fontdata + [ // lowercase letters only in font key
'shadowsintolight' => [
'R' => $fontFile,
],
];
return new \Mpdf\Mpdf($config);
}
}