17 public function __construct(SimpleXMLElement $xmlX, array $namespaces)
26 ->setPaperSize($this->printSettings->paperSize)
27 ->setOrientation($this->printSettings->orientation)
28 ->setScale($this->printSettings->scale)
29 ->setVerticalCentered($this->printSettings->verticalCentered)
30 ->setHorizontalCentered($this->printSettings->horizontalCentered)
31 ->setPageOrder($this->printSettings->printOrder);
33 ->setTop($this->printSettings->topMargin)
34 ->setHeader($this->printSettings->headerMargin)
35 ->setLeft($this->printSettings->leftMargin)
36 ->setRight($this->printSettings->rightMargin)
37 ->setBottom($this->printSettings->bottomMargin)
38 ->setFooter($this->printSettings->footerMargin);
47 'horizontalCentered' =>
false,
48 'verticalCentered' =>
false,
51 'headerMargin' => 0.3,
54 'bottomMargin' => 0.75,
55 'footerMargin' => 0.3,
59 private function pageSetup(SimpleXMLElement $xmlX, array $namespaces, stdClass $printDefaults): stdClass
61 if (isset($xmlX->WorksheetOptions->PageSetup)) {
62 foreach ($xmlX->WorksheetOptions->PageSetup as $pageSetupData) {
63 foreach ($pageSetupData as $pageSetupKey => $pageSetupValue) {
64 $pageSetupAttributes = $pageSetupValue->attributes($namespaces[
'x']);
65 switch ($pageSetupKey) {
67 $this->
setLayout($printDefaults, $pageSetupAttributes);
71 $printDefaults->headerMargin = (float) $pageSetupAttributes->Margin ?: 1.0;
75 $printDefaults->footerMargin = (
float) $pageSetupAttributes->Margin ?: 1.0;
79 $this->
setMargins($printDefaults, $pageSetupAttributes);
87 return $printDefaults;
90 private function printSetup(SimpleXMLElement $xmlX, stdClass $printDefaults): stdClass
92 if (isset($xmlX->WorksheetOptions->Print)) {
93 foreach ($xmlX->WorksheetOptions->Print as $printData) {
94 foreach ($printData as $printKey => $printValue) {
100 case 'PaperSizeIndex':
101 $printDefaults->paperSize = (int) $printValue ?: 9;
105 $printDefaults->scale = (int) $printValue ?: 100;
113 return $printDefaults;
116 private function setLayout(stdClass $printDefaults, SimpleXMLElement $pageSetupAttributes): void
119 $printDefaults->horizontalCentered = (bool) $pageSetupAttributes->CenterHorizontal ?:
false;
120 $printDefaults->verticalCentered = (
bool) $pageSetupAttributes->CenterVertical ?:
false;
123 private function setMargins(stdClass $printDefaults, SimpleXMLElement $pageSetupAttributes): void
125 $printDefaults->leftMargin = (float) $pageSetupAttributes->Left ?: 1.0;
126 $printDefaults->rightMargin = (
float) $pageSetupAttributes->Right ?: 1.0;
127 $printDefaults->topMargin = (float) $pageSetupAttributes->Top ?: 1.0;
128 $printDefaults->bottomMargin = (
float) $pageSetupAttributes->Bottom ?: 1.0;
An exception for terminatinating execution or to throw for unit testing.
printSetup(SimpleXMLElement $xmlX, stdClass $printDefaults)
setMargins(stdClass $printDefaults, SimpleXMLElement $pageSetupAttributes)
setLayout(stdClass $printDefaults, SimpleXMLElement $pageSetupAttributes)
__construct(SimpleXMLElement $xmlX, array $namespaces)
pageSetup(SimpleXMLElement $xmlX, array $namespaces, stdClass $printDefaults)
loadPageSettings(Spreadsheet $spreadsheet)
getActiveSheet()
Get active sheet.
Paper size taken from Office Open XML Part 4 - Markup Language Reference, page 1988:.
const PAGEORDER_OVER_THEN_DOWN
const PAGEORDER_DOWN_THEN_OVER
const ORIENTATION_DEFAULT
const ORIENTATION_PORTRAIT