Skip to content

Commit 3708462

Browse files
authored
Merge pull request #307 from k42b3/develop
PowerPoint2007 writer schema validation test case
2 parents 179aed2 + 00241e3 commit 3708462

35 files changed

+17565
-121
lines changed

CHANGELOG.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,13 @@
11
# Changelog
22

3+
## 0.9.0 - WIP
4+
5+
### Changes
6+
- PowerPoint2007 Writer : Write percentage values with a trailing percent sign instead of formatted as 1000th of a percent to comply with the standard - @k42b3 GH-307
7+
8+
### Features
9+
- PowerPoint2007 Writer : Implemented XSD validation test case according to the ECMA/ISO standard - @k42b3 GH-307
10+
311
## 0.8.0 - 2017-04-03
412

513
### Bugfix

src/PhpPresentation/Writer/PowerPoint2007/AbstractDecoratorWriter.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ protected function writeColor(XMLWriter $objWriter, Color $color, $alpha = null)
130130

131131
// a:alpha
132132
$objWriter->startElement('a:alpha');
133-
$objWriter->writeAttribute('val', $alpha * 1000);
133+
$objWriter->writeAttribute('val', $alpha . '%');
134134
$objWriter->endElement();
135135

136136
$objWriter->endElement();
@@ -202,13 +202,13 @@ protected function writeGradientFill(XMLWriter $objWriter, Fill $pFill)
202202
$objWriter->startElement('a:gsLst');
203203
// a:gs
204204
$objWriter->startElement('a:gs');
205-
$objWriter->writeAttribute('pos', '0');
205+
$objWriter->writeAttribute('pos', '0%');
206206
$this->writeColor($objWriter, $pFill->getStartColor());
207207
$objWriter->endElement();
208208

209209
// a:gs
210210
$objWriter->startElement('a:gs');
211-
$objWriter->writeAttribute('pos', '100000');
211+
$objWriter->writeAttribute('pos', '100%');
212212
$this->writeColor($objWriter, $pFill->getEndColor());
213213
$objWriter->endElement();
214214

src/PhpPresentation/Writer/PowerPoint2007/AbstractSlide.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -521,7 +521,7 @@ protected function writeParagraphs(XMLWriter $objWriter, $paragraphs, $bIsPlaceh
521521

522522
$objWriter->startElement('a:lnSpc');
523523
$objWriter->startElement('a:spcPct');
524-
$objWriter->writeAttribute('val', $paragraph->getLineSpacing() * 1000);
524+
$objWriter->writeAttribute('val', $paragraph->getLineSpacing() . "%");
525525
$objWriter->endElement();
526526
$objWriter->endElement();
527527

src/PhpPresentation/Writer/PowerPoint2007/LayoutPack/PackDefault.php

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -306,7 +306,7 @@ public function __construct()
306306
<p:bodyStyle>
307307
<a:lvl1pPr marL="342900" indent="-342900" algn="l" defTabSz="914400" rtl="0" eaLnBrk="1" latinLnBrk="0" hangingPunct="1">
308308
<a:spcBef>
309-
<a:spcPct val="20000" />
309+
<a:spcPct val="20%" />
310310
</a:spcBef>
311311
<a:buFont typeface="Arial" pitchFamily="34" charset="0" />
312312
<a:buChar char="&#149;" />
@@ -321,7 +321,7 @@ public function __construct()
321321
</a:lvl1pPr>
322322
<a:lvl2pPr marL="742950" indent="-285750" algn="l" defTabSz="914400" rtl="0" eaLnBrk="1" latinLnBrk="0" hangingPunct="1">
323323
<a:spcBef>
324-
<a:spcPct val="20000" />
324+
<a:spcPct val="20%" />
325325
</a:spcBef>
326326
<a:buFont typeface="Arial" pitchFamily="34" charset="0" />
327327
<a:buChar char="-" />
@@ -336,7 +336,7 @@ public function __construct()
336336
</a:lvl2pPr>
337337
<a:lvl3pPr marL="1143000" indent="-228600" algn="l" defTabSz="914400" rtl="0" eaLnBrk="1" latinLnBrk="0" hangingPunct="1">
338338
<a:spcBef>
339-
<a:spcPct val="20000" />
339+
<a:spcPct val="20%" />
340340
</a:spcBef>
341341
<a:buFont typeface="Arial" pitchFamily="34" charset="0" />
342342
<a:buChar char="&#149;" />
@@ -351,7 +351,7 @@ public function __construct()
351351
</a:lvl3pPr>
352352
<a:lvl4pPr marL="1600200" indent="-228600" algn="l" defTabSz="914400" rtl="0" eaLnBrk="1" latinLnBrk="0" hangingPunct="1">
353353
<a:spcBef>
354-
<a:spcPct val="20000" />
354+
<a:spcPct val="20%" />
355355
</a:spcBef>
356356
<a:buFont typeface="Arial" pitchFamily="34" charset="0" />
357357
<a:buChar char="-" />
@@ -366,7 +366,7 @@ public function __construct()
366366
</a:lvl4pPr>
367367
<a:lvl5pPr marL="2057400" indent="-228600" algn="l" defTabSz="914400" rtl="0" eaLnBrk="1" latinLnBrk="0" hangingPunct="1">
368368
<a:spcBef>
369-
<a:spcPct val="20000" />
369+
<a:spcPct val="20%" />
370370
</a:spcBef>
371371
<a:buFont typeface="Arial" pitchFamily="34" charset="0" />
372372
<a:buChar char="&#187;" />
@@ -381,7 +381,7 @@ public function __construct()
381381
</a:lvl5pPr>
382382
<a:lvl6pPr marL="2514600" indent="-228600" algn="l" defTabSz="914400" rtl="0" eaLnBrk="1" latinLnBrk="0" hangingPunct="1">
383383
<a:spcBef>
384-
<a:spcPct val="20000" />
384+
<a:spcPct val="20%" />
385385
</a:spcBef>
386386
<a:buFont typeface="Arial" pitchFamily="34" charset="0" />
387387
<a:buChar char="&#149;" />
@@ -396,7 +396,7 @@ public function __construct()
396396
</a:lvl6pPr>
397397
<a:lvl7pPr marL="2971800" indent="-228600" algn="l" defTabSz="914400" rtl="0" eaLnBrk="1" latinLnBrk="0" hangingPunct="1">
398398
<a:spcBef>
399-
<a:spcPct val="20000" />
399+
<a:spcPct val="20%" />
400400
</a:spcBef>
401401
<a:buFont typeface="Arial" pitchFamily="34" charset="0" />
402402
<a:buChar char="&#149;" />
@@ -411,7 +411,7 @@ public function __construct()
411411
</a:lvl7pPr>
412412
<a:lvl8pPr marL="3429000" indent="-228600" algn="l" defTabSz="914400" rtl="0" eaLnBrk="1" latinLnBrk="0" hangingPunct="1">
413413
<a:spcBef>
414-
<a:spcPct val="20000" />
414+
<a:spcPct val="20%" />
415415
</a:spcBef>
416416
<a:buFont typeface="Arial" pitchFamily="34" charset="0" />
417417
<a:buChar char="&#149;" />
@@ -426,7 +426,7 @@ public function __construct()
426426
</a:lvl8pPr>
427427
<a:lvl9pPr marL="3886200" indent="-228600" algn="l" defTabSz="914400" rtl="0" eaLnBrk="1" latinLnBrk="0" hangingPunct="1">
428428
<a:spcBef>
429-
<a:spcPct val="20000" />
429+
<a:spcPct val="20%" />
430430
</a:spcBef>
431431
<a:buFont typeface="Arial" pitchFamily="34" charset="0" />
432432
<a:buChar char="&#149;" />
@@ -794,7 +794,7 @@ public function __construct()
794794
</a:gs>
795795
<a:gs pos="100000">
796796
<a:schemeClr val="phClr">
797-
<a:shade val="20000"/>
797+
<a:shade val="20%"/>
798798
<a:satMod val="255000"/>
799799
</a:schemeClr>
800800
</a:gs>

src/PhpPresentation/Writer/PowerPoint2007/PptCharts.php

Lines changed: 43 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -97,18 +97,18 @@ public function writeChart(Chart $chart)
9797
$objWriter->writeAttribute('val', $chart->getView3D()->getRotationX());
9898
$objWriter->endElement();
9999

100+
// c:hPercent
101+
$hPercent = $chart->getView3D()->getHeightPercent();
102+
$objWriter->writeElementIf($hPercent != null, 'c:hPercent', 'val', $hPercent . '%');
103+
100104
// c:rotY
101105
$objWriter->startElement('c:rotY');
102106
$objWriter->writeAttribute('val', $chart->getView3D()->getRotationY());
103107
$objWriter->endElement();
104108

105-
// c:hPercent
106-
$hPercent = $chart->getView3D()->getHeightPercent();
107-
$objWriter->writeElementIf($hPercent != null, 'c:hPercent', 'val', $hPercent);
108-
109109
// c:depthPercent
110110
$objWriter->startElement('c:depthPercent');
111-
$objWriter->writeAttribute('val', $chart->getView3D()->getDepthPercent());
111+
$objWriter->writeAttribute('val', $chart->getView3D()->getDepthPercent() . '%');
112112
$objWriter->endElement();
113113

114114
// c:rAngAx
@@ -1582,6 +1582,15 @@ protected function writeTypeLine(XMLWriter $objWriter, Line $subject, $includeSh
15821582
$this->writeSingleValueOrReference($objWriter, $includeSheet, $series->getTitle(), $coords);
15831583
$objWriter->endElement();
15841584

1585+
// c:spPr
1586+
$objWriter->startElement('c:spPr');
1587+
// Write fill
1588+
$this->writeFill($objWriter, $series->getFill());
1589+
// Write outline
1590+
$this->writeOutline($objWriter, $series->getOutline());
1591+
// ## c:spPr
1592+
$objWriter->endElement();
1593+
15851594
// Marker
15861595
$this->writeSeriesMarker($objWriter, $series->getMarker());
15871596

@@ -1661,15 +1670,6 @@ protected function writeTypeLine(XMLWriter $objWriter, Line $subject, $includeSh
16611670
// > c:dLbls
16621671
$objWriter->endElement();
16631672

1664-
// c:spPr
1665-
$objWriter->startElement('c:spPr');
1666-
// Write fill
1667-
$this->writeFill($objWriter, $series->getFill());
1668-
// Write outline
1669-
$this->writeOutline($objWriter, $series->getOutline());
1670-
// ## c:spPr
1671-
$objWriter->endElement();
1672-
16731673
// Write X axis data
16741674
$axisXData = array_keys($series->getValues());
16751675

@@ -2033,34 +2033,6 @@ protected function writeAxis(XMLWriter $objWriter, Chart\Axis $oAxis, $typeAxis,
20332033
$objWriter->endElement();
20342034
}
20352035

2036-
// c:numFmt
2037-
$objWriter->startElement('c:numFmt');
2038-
$objWriter->writeAttribute('formatCode', $oAxis->getFormatCode());
2039-
$objWriter->writeAttribute('sourceLinked', '1');
2040-
$objWriter->endElement();
2041-
2042-
// c:majorTickMark
2043-
$objWriter->startElement('c:majorTickMark');
2044-
$objWriter->writeAttribute('val', $oAxis->getMajorTickMark());
2045-
$objWriter->endElement();
2046-
2047-
// c:minorTickMark
2048-
$objWriter->startElement('c:minorTickMark');
2049-
$objWriter->writeAttribute('val', $oAxis->getMinorTickMark());
2050-
$objWriter->endElement();
2051-
2052-
// c:tickLblPos
2053-
$objWriter->startElement('c:tickLblPos');
2054-
$objWriter->writeAttribute('val', 'nextTo');
2055-
$objWriter->endElement();
2056-
2057-
// c:spPr
2058-
$objWriter->startElement('c:spPr');
2059-
// Outline
2060-
$this->writeOutline($objWriter, $oAxis->getOutline());
2061-
// ##c:spPr
2062-
$objWriter->endElement();
2063-
20642036
if ($oAxis->getTitle() != '') {
20652037
// c:title
20662038
$objWriter->startElement('c:title');
@@ -2143,6 +2115,34 @@ protected function writeAxis(XMLWriter $objWriter, Chart\Axis $oAxis, $typeAxis,
21432115
$objWriter->endElement();
21442116
}
21452117

2118+
// c:numFmt
2119+
$objWriter->startElement('c:numFmt');
2120+
$objWriter->writeAttribute('formatCode', $oAxis->getFormatCode());
2121+
$objWriter->writeAttribute('sourceLinked', '1');
2122+
$objWriter->endElement();
2123+
2124+
// c:majorTickMark
2125+
$objWriter->startElement('c:majorTickMark');
2126+
$objWriter->writeAttribute('val', $oAxis->getMajorTickMark());
2127+
$objWriter->endElement();
2128+
2129+
// c:minorTickMark
2130+
$objWriter->startElement('c:minorTickMark');
2131+
$objWriter->writeAttribute('val', $oAxis->getMinorTickMark());
2132+
$objWriter->endElement();
2133+
2134+
// c:tickLblPos
2135+
$objWriter->startElement('c:tickLblPos');
2136+
$objWriter->writeAttribute('val', 'nextTo');
2137+
$objWriter->endElement();
2138+
2139+
// c:spPr
2140+
$objWriter->startElement('c:spPr');
2141+
// Outline
2142+
$this->writeOutline($objWriter, $oAxis->getOutline());
2143+
// ##c:spPr
2144+
$objWriter->endElement();
2145+
21462146
// c:crossAx
21472147
$objWriter->startElement('c:crossAx');
21482148
$objWriter->writeAttribute('val', $crossAxVal);
@@ -2161,7 +2161,7 @@ protected function writeAxis(XMLWriter $objWriter, Chart\Axis $oAxis, $typeAxis,
21612161

21622162
// c:lblOffset
21632163
$objWriter->startElement('c:lblOffset');
2164-
$objWriter->writeAttribute('val', '100');
2164+
$objWriter->writeAttribute('val', '100%');
21652165
$objWriter->endElement();
21662166
}
21672167

0 commit comments

Comments
 (0)