:octocat: QREps: extract header() method to ease customization

This commit is contained in:
smiley
2024-07-21 22:29:50 +02:00
parent f9a98af88b
commit 54dac157c6
+35 -24
View File
@@ -93,30 +93,7 @@ class QREps extends QROutputAbstract{
}
public function dump(string|null $file = null):string{
[$width, $height] = $this->getOutputDimensions();
$eps = [
// main header
'%!PS-Adobe-3.0 EPSF-3.0',
'%%Creator: php-qrcode (https://github.com/chillerlan/php-qrcode)',
'%%Title: QR Code',
sprintf('%%%%CreationDate: %1$s', date('c')),
'%%DocumentData: Clean7Bit',
'%%LanguageLevel: 3',
sprintf('%%%%BoundingBox: 0 0 %s %s', $width, $height),
'%%EndComments',
// function definitions
'%%BeginProlog',
'/F { rectfill } def',
'/R { setrgbcolor } def',
'/C { setcmykcolor } def',
'%%EndProlog',
];
if($this::moduleValueIsValid($this->options->bgColor)){
$eps[] = $this->prepareModuleValue($this->options->bgColor);
$eps[] = sprintf('0 0 %s %s F', $width, $height);
}
$eps = $this->header();
// create the path elements
$paths = $this->collectModules($this->module(...));
@@ -141,6 +118,40 @@ class QREps extends QROutputAbstract{
return $data;
}
/**
* Returns the main header for the EPS file, including function definitions and background
*
* @return array<int, string>
*/
protected function header():array{
[$width, $height] = $this->getOutputDimensions();
$header = [
// main header
'%!PS-Adobe-3.0 EPSF-3.0',
'%%Creator: php-qrcode (https://github.com/chillerlan/php-qrcode)',
'%%Title: QR Code',
sprintf('%%%%CreationDate: %1$s', date('c')),
'%%DocumentData: Clean7Bit',
'%%LanguageLevel: 3',
sprintf('%%%%BoundingBox: 0 0 %s %s', $width, $height),
'%%EndComments',
// function definitions
'%%BeginProlog',
'/F { rectfill } def',
'/R { setrgbcolor } def',
'/C { setcmykcolor } def',
'%%EndProlog',
];
if($this::moduleValueIsValid($this->options->bgColor)){
$header[] = $this->prepareModuleValue($this->options->bgColor);
$header[] = sprintf('0 0 %s %s F', $width, $height);
}
return $header;
}
/**
* Returns a path segment for a single module
*/