nfTlWNl rn Ѻq$³*LJ0Y8i(?hgzȅk`4(}}0Fή.h/BR\`Lٔ*ܝIcvac; \zgYՒP o%L_v xV8UANGziu ])V1j,fGAB:MBPk$-NbX?I5J-60I( ֓)Y$^r]u_- BKtfgc(Mݒ?'ްΖSh"Y@;b b^BFwnUid/}*"#0McfwZ~ 2YəMC]9;C]Jo[]؆ $K^o\%d|ḯ׍zEd- Bm *,A<.E{ǫ`lB<}ZptWuu,rB24@z9o.)I (aշfN^cQQ=抧Ⱥ? n8Hr`␭iLܦڏ GKܺ !{ ;ү|ݏKΦj 1kԵ)歫BGdCP@O^6;*ҫjFJ,kmB |@D%vXc#*G_iZQg ܃u,RWլ+X4Kb3qhV박#h4h/\S~>(+UB8V g,"Tm>A\L9 xJhwu%Gcv/whBe7x0':F0p̙! Kt7v>KY9ڬKl}huM(oBڂ!rhdm1uibo-Xik;ъ/0DRfQH HPMQ" j ^Q#e\ |2UYNdM5f]ێc^i]TOgT<HռN0VhäN!p9T'T^MYw&ߍ!# ٨ -*#_fq!껋Jb@=`f]P,Z`aG1Uoj#9:1r:DwfbXcx;,2?E1SimHl >GX: hX#_fq!gF㔄&*btm}1ѯf"g’@a~ ]שD!w˹دJY2LGjY̓ Wsĉ~-QN~vtZ_#VlMlƪ5ĂXNhyzsN/c,VEdZLqT5IVygg3W$uvm&R8#Ɗ^j{bY f^\DrbٍC)[7O-%w`M7JPpUt749.B9^%S07}/\e]GOq3'< gG [^$2$mOsMM2KZZ< ~m\NjҀ+mwL 3+_Z]yڛ}Wڑbz)ۢW!w0J.[AoⰐuDSP6O]+uū6bf I9V=fZ.-]%'S;DŽ,fe@'鏟>IyCqg`TSk ĉ?Ud< +'/$e= L $W/r0r{9࿹T t_3;Q_Ƹު4!f1ېGH"ttEeM.tJa710>Q7a eDlui.eS8CtVɶZ 3nэJxh˄},5-џbj+U#X ڙv/`ygzsN/c,VEdZLnrN &h'^JqJn/$V!|" l@hj1>Vbf]",ãt%AB=ű$c)w $%#"^ `zI4Hq{*ߌATbbo)bFev!aRN"pax7F3F-gf)Puk#4#l&ODutka h2' {Yk-~]WԷ8jR4 WDTjpuvY8601kzpXVྻلcvI6E*oT菇z]0@GUow\,TOnIWeR$q>tA (float) ($marginFooter ?? 0.45), ]; } } private function readStyleMasterLookup(DOMDocument $styleDom): void { $item0 = $styleDom->getElementsByTagNameNS($this->officeNs, 'master-styles')->item(0); $styleMasterLookup = ($item0 === null) ? [] : $item0->getElementsByTagNameNS($this->stylesNs, 'master-page'); foreach ($styleMasterLookup as $styleMasterSet) { $styleMasterName = $styleMasterSet->getAttributeNS($this->stylesNs, 'name'); $pageLayoutName = $styleMasterSet->getAttributeNS($this->stylesNs, 'page-layout-name'); $this->masterPrintStylesCrossReference[$styleMasterName] = $pageLayoutName; } } public function readStyleCrossReferences(DOMDocument $contentDom): void { $item0 = $contentDom->getElementsByTagNameNS($this->officeNs, 'automatic-styles')->item(0); $styleXReferences = ($item0 === null) ? [] : $item0->getElementsByTagNameNS($this->stylesNs, 'style'); foreach ($styleXReferences as $styleXreferenceSet) { $styleXRefName = $styleXreferenceSet->getAttributeNS($this->stylesNs, 'name'); $stylePageLayoutName = $styleXreferenceSet->getAttributeNS($this->stylesNs, 'master-page-name'); $styleFamilyName = $styleXreferenceSet->getAttributeNS($this->stylesNs, 'family'); if (!empty($styleFamilyName) && $styleFamilyName === 'table') { $styleVisibility = 'true'; foreach ($styleXreferenceSet->getElementsByTagNameNS($this->stylesNs, 'table-properties') as $tableProperties) { $styleVisibility = $tableProperties->getAttributeNS($this->tableNs, 'display'); } $this->tableStylesCrossReference[$styleXRefName] = $styleVisibility; } if (!empty($stylePageLayoutName)) { $this->masterStylesCrossReference[$styleXRefName] = $stylePageLayoutName; } } } public function setVisibilityForWorksheet(Worksheet $worksheet, string $styleName): void { if (!array_key_exists($styleName, $this->tableStylesCrossReference)) { return; } $worksheet->setSheetState( $this->tableStylesCrossReference[$styleName] === 'false' ? Worksheet::SHEETSTATE_HIDDEN : Worksheet::SHEETSTATE_VISIBLE ); } public function setPrintSettingsForWorksheet(Worksheet $worksheet, string $styleName): void { if (!array_key_exists($styleName, $this->masterStylesCrossReference)) { return; } $masterStyleName = $this->masterStylesCrossReference[$styleName]; if (!array_key_exists($masterStyleName, $this->masterPrintStylesCrossReference)) { return; } $printSettingsIndex = $this->masterPrintStylesCrossReference[$masterStyleName]; if (!array_key_exists($printSettingsIndex, $this->pageLayoutStyles)) { return; } $printSettings = $this->pageLayoutStyles[$printSettingsIndex]; $worksheet->getPageSetup() ->setOrientation($printSettings->orientation ?? PageSetup::ORIENTATION_DEFAULT) ->setPageOrder($printSettings->printOrder === 'ltr' ? PageSetup::PAGEORDER_OVER_THEN_DOWN : PageSetup::PAGEORDER_DOWN_THEN_OVER) ->setScale((int) trim($printSettings->scale, '%')) ->setHorizontalCentered($printSettings->horizontalCentered) ->setVerticalCentered($printSettings->verticalCentered); $worksheet->getPageMargins() ->setLeft($printSettings->marginLeft) ->setRight($printSettings->marginRight) ->setTop($printSettings->marginTop) ->setBottom($printSettings->marginBottom) ->setHeader($printSettings->marginHeader) ->setFooter($printSettings->marginFooter); } }