Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
31 / 31
100.00% covered (success)
100.00%
1 / 1
CRAP
100.00% covered (success)
100.00%
1 / 1
PptViewProps
100.00% covered (success)
100.00%
31 / 31
100.00% covered (success)
100.00%
1 / 1
2
100.00% covered (success)
100.00%
1 / 1
 render
100.00% covered (success)
100.00%
31 / 31
100.00% covered (success)
100.00%
1 / 1
2
1<?php
2/**
3 * This file is part of PHPPresentation - A pure PHP library for reading and writing
4 * presentations documents.
5 *
6 * PHPPresentation is free software distributed under the terms of the GNU Lesser
7 * General Public License version 3 as published by the Free Software Foundation.
8 *
9 * For the full copyright and license information, please read the LICENSE
10 * file that was distributed with this source code. For the full list of
11 * contributors, visit https://github.com/PHPOffice/PHPPresentation/contributors.
12 *
13 * @see        https://github.com/PHPOffice/PHPPresentation
14 *
15 * @license     http://www.gnu.org/licenses/lgpl.txt LGPL version 3
16 */
17
18declare(strict_types=1);
19
20namespace PhpOffice\PhpPresentation\Writer\PowerPoint2007;
21
22use PhpOffice\Common\Adapter\Zip\ZipInterface;
23use PhpOffice\Common\XMLWriter;
24
25class PptViewProps extends AbstractDecoratorWriter
26{
27    public function render(): ZipInterface
28    {
29        // Create XML writer
30        $objWriter = new XMLWriter(XMLWriter::STORAGE_MEMORY);
31
32        // XML header
33        $objWriter->startDocument('1.0', 'UTF-8', 'yes');
34
35        // p:viewPr
36        $objWriter->startElement('p:viewPr');
37        $objWriter->writeAttribute('xmlns:a', 'http://schemas.openxmlformats.org/drawingml/2006/main');
38        $objWriter->writeAttribute('xmlns:r', 'http://schemas.openxmlformats.org/officeDocument/2006/relationships');
39        $objWriter->writeAttribute('xmlns:p', 'http://schemas.openxmlformats.org/presentationml/2006/main');
40        $objWriter->writeAttribute('showComments', $this->getPresentation()->getPresentationProperties()->isCommentVisible() ? 1 : 0);
41        $objWriter->writeAttribute('lastView', $this->getPresentation()->getPresentationProperties()->getLastView());
42
43        // p:viewPr > p:slideViewPr
44        $objWriter->startElement('p:slideViewPr');
45
46        // p:viewPr > p:slideViewPr > p:cSldViewPr
47        $objWriter->startElement('p:cSldViewPr');
48
49        // p:viewPr > p:slideViewPr > p:cSldViewPr > p:cViewPr
50        $objWriter->startElement('p:cViewPr');
51
52        // p:viewPr > p:slideViewPr > p:cSldViewPr > p:cViewPr > p:scale
53        $objWriter->startElement('p:scale');
54
55        $objWriter->startElement('a:sx');
56        $objWriter->writeAttribute('d', '100');
57        $objWriter->writeAttribute('n', (int) ($this->getPresentation()->getPresentationProperties()->getZoom() * 100));
58        $objWriter->endElement();
59
60        $objWriter->startElement('a:sy');
61        $objWriter->writeAttribute('d', '100');
62        $objWriter->writeAttribute('n', (int) ($this->getPresentation()->getPresentationProperties()->getZoom() * 100));
63        $objWriter->endElement();
64
65        // > // p:viewPr > p:slideViewPr > p:cSldViewPr > p:cViewPr > p:scale
66        $objWriter->endElement();
67
68        $objWriter->startElement('p:origin');
69        $objWriter->writeAttribute('x', '0');
70        $objWriter->writeAttribute('y', '0');
71        $objWriter->endElement();
72
73        // > // p:viewPr > p:slideViewPr > p:cSldViewPr > p:cViewPr
74        $objWriter->endElement();
75
76        // > // p:viewPr > p:slideViewPr > p:cSldViewPr
77        $objWriter->endElement();
78
79        // > // p:viewPr > p:slideViewPr
80        $objWriter->endElement();
81
82        // > // p:viewPr
83        $objWriter->endElement();
84
85        $this->getZip()->addFromString('ppt/viewProps.xml', $objWriter->getData());
86
87        return $this->getZip();
88    }
89}