# tablepress/3.4/libraries/vendor/PhpSpreadsheet/Reader/Xlsx/PageSetup.php

TablePress – Tables in WordPress made easy, version 3.4. 182 lines.

- Page: https://pluginprobe.com/plugins/tablepress/3.4/code/libraries/vendor/PhpSpreadsheet/Reader/Xlsx/PageSetup.php
- Raw: https://pluginprobe.com/plugins/tablepress/3.4/raw/libraries/vendor/PhpSpreadsheet/Reader/Xlsx/PageSetup.php
- Modified: 2025-08-26T04:06:14+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/tablepress/3.4/code/libraries/vendor/PhpSpreadsheet/Reader/Xlsx/PageSetup.php#L10-L20`.

```php
<?php

namespace TablePress\PhpOffice\PhpSpreadsheet\Reader\Xlsx;

use TablePress\PhpOffice\PhpSpreadsheet\Cell\Coordinate;
use TablePress\PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;
use SimpleXMLElement;

class PageSetup extends BaseParserClass
{
	private Worksheet $worksheet;

	private ?SimpleXMLElement $worksheetXml;

	public function __construct(Worksheet $workSheet, ?SimpleXMLElement $worksheetXml = null)
	{
		$this->worksheet = $workSheet;
		$this->worksheetXml = $worksheetXml;
	}

	/**
	 * @param mixed[] $unparsedLoadedData
	 *
	 * @return mixed[]
	 */
	public function load(array $unparsedLoadedData): array
	{
		$worksheetXml = $this->worksheetXml;
		if ($worksheetXml === null) {
			return $unparsedLoadedData;
		}

		$this->margins($worksheetXml, $this->worksheet);
		$unparsedLoadedData = $this->pageSetup($worksheetXml, $this->worksheet, $unparsedLoadedData);
		$this->headerFooter($worksheetXml, $this->worksheet);
		$this->pageBreaks($worksheetXml, $this->worksheet);

		return $unparsedLoadedData;
	}

	private function margins(SimpleXMLElement $xmlSheet, Worksheet $worksheet): void
	{
		if ($xmlSheet->pageMargins) {
			$docPageMargins = $worksheet->getPageMargins();
			$docPageMargins->setLeft((float) ($xmlSheet->pageMargins['left']));
			$docPageMargins->setRight((float) ($xmlSheet->pageMargins['right']));
			$docPageMargins->setTop((float) ($xmlSheet->pageMargins['top']));
			$docPageMargins->setBottom((float) ($xmlSheet->pageMargins['bottom']));
			$docPageMargins->setHeader((float) ($xmlSheet->pageMargins['header']));
			$docPageMargins->setFooter((float) ($xmlSheet->pageMargins['footer']));
		}
	}

	/**
	 * @param mixed[] $unparsedLoadedData
	 *
	 * @return mixed[]
	 */
	private function pageSetup(SimpleXMLElement $xmlSheet, Worksheet $worksheet, array $unparsedLoadedData): array
	{
		if ($xmlSheet->pageSetup) {
			$docPageSetup = $worksheet->getPageSetup();

			if (isset($xmlSheet->pageSetup['orientation'])) {
				$docPageSetup->setOrientation((string) $xmlSheet->pageSetup['orientation']);
			}
			if (isset($xmlSheet->pageSetup['paperSize'])) {
				$docPageSetup->setPaperSize((int) ($xmlSheet->pageSetup['paperSize']));
			}
			if (isset($xmlSheet->pageSetup['scale'])) {
				$docPageSetup->setScale((int) ($xmlSheet->pageSetup['scale']), false);
			}
			if (isset($xmlSheet->pageSetup['fitToHeight']) && (int) ($xmlSheet->pageSetup['fitToHeight']) >= 0) {
				$docPageSetup->setFitToHeight((int) ($xmlSheet->pageSetup['fitToHeight']), false);
			}
			if (isset($xmlSheet->pageSetup['fitToWidth']) && (int) ($xmlSheet->pageSetup['fitToWidth']) >= 0) {
				$docPageSetup->setFitToWidth((int) ($xmlSheet->pageSetup['fitToWidth']), false);
			}
			if (
				isset($xmlSheet->pageSetup['firstPageNumber'], $xmlSheet->pageSetup['useFirstPageNumber'])
				&& self::boolean((string) $xmlSheet->pageSetup['useFirstPageNumber'])
			) {
				$docPageSetup->setFirstPageNumber((int) ($xmlSheet->pageSetup['firstPageNumber']));
			}
			if (isset($xmlSheet->pageSetup['pageOrder'])) {
				$docPageSetup->setPageOrder((string) $xmlSheet->pageSetup['pageOrder']);
			}

			$relAttributes = $xmlSheet->pageSetup->attributes(Namespaces::SCHEMA_OFFICE_DOCUMENT);
			if (isset($relAttributes['id'])) {
				$relid = (string) $relAttributes['id'];
				if (!str_ends_with($relid, 'ps')) {
					$relid .= 'ps';
				}
				/** @var mixed[][][] $unparsedLoadedData */
				$unparsedLoadedData['sheets'][$worksheet->getCodeName()]['pageSetupRelId'] = $relid;
			}
		}

		return $unparsedLoadedData;
	}

	private function headerFooter(SimpleXMLElement $xmlSheet, Worksheet $worksheet): void
	{
		if ($xmlSheet->headerFooter) {
			$docHeaderFooter = $worksheet->getHeaderFooter();

			if (
				isset($xmlSheet->headerFooter['differentOddEven'])
				&& self::boolean((string) $xmlSheet->headerFooter['differentOddEven'])
			) {
				$docHeaderFooter->setDifferentOddEven(true);
			} else {
				$docHeaderFooter->setDifferentOddEven(false);
			}
			if (
				isset($xmlSheet->headerFooter['differentFirst'])
				&& self::boolean((string) $xmlSheet->headerFooter['differentFirst'])
			) {
				$docHeaderFooter->setDifferentFirst(true);
			} else {
				$docHeaderFooter->setDifferentFirst(false);
			}
			if (
				isset($xmlSheet->headerFooter['scaleWithDoc'])
				&& !self::boolean((string) $xmlSheet->headerFooter['scaleWithDoc'])
			) {
				$docHeaderFooter->setScaleWithDocument(false);
			} else {
				$docHeaderFooter->setScaleWithDocument(true);
			}
			if (
				isset($xmlSheet->headerFooter['alignWithMargins'])
				&& !self::boolean((string) $xmlSheet->headerFooter['alignWithMargins'])
			) {
				$docHeaderFooter->setAlignWithMargins(false);
			} else {
				$docHeaderFooter->setAlignWithMargins(true);
			}

			$docHeaderFooter->setOddHeader((string) $xmlSheet->headerFooter->oddHeader);
			$docHeaderFooter->setOddFooter((string) $xmlSheet->headerFooter->oddFooter);
			$docHeaderFooter->setEvenHeader((string) $xmlSheet->headerFooter->evenHeader);
			$docHeaderFooter->setEvenFooter((string) $xmlSheet->headerFooter->evenFooter);
			$docHeaderFooter->setFirstHeader((string) $xmlSheet->headerFooter->firstHeader);
			$docHeaderFooter->setFirstFooter((string) $xmlSheet->headerFooter->firstFooter);
		}
	}

	private function pageBreaks(SimpleXMLElement $xmlSheet, Worksheet $worksheet): void
	{
		if ($xmlSheet->rowBreaks && $xmlSheet->rowBreaks->brk) {
			$this->rowBreaks($xmlSheet, $worksheet);
		}
		if ($xmlSheet->colBreaks && $xmlSheet->colBreaks->brk) {
			$this->columnBreaks($xmlSheet, $worksheet);
		}
	}

	private function rowBreaks(SimpleXMLElement $xmlSheet, Worksheet $worksheet): void
	{
		foreach ($xmlSheet->rowBreaks->brk as $brk) {
			$rowBreakMax = /*isset($brk['max']) ? ((int) $brk['max']) :*/ -1;
			if ($brk['man']) {
				$worksheet->setBreak("A{$brk['id']}", Worksheet::BREAK_ROW, $rowBreakMax);
			}
		}
	}

	private function columnBreaks(SimpleXMLElement $xmlSheet, Worksheet $worksheet): void
	{
		foreach ($xmlSheet->colBreaks->brk as $brk) {
			if ($brk['man']) {
				$worksheet->setBreak(
					Coordinate::stringFromColumnIndex(((int) $brk['id']) + 1) . '1',
					Worksheet::BREAK_COLUMN
				);
			}
		}
	}
}

```
