Skip to content

Commit a0a7457

Browse files
committed
#161 : Fix the problem of reading of SlideMaster
1 parent f5b44fe commit a0a7457

File tree

6 files changed

+211
-50
lines changed

6 files changed

+211
-50
lines changed

samples/Sample_19_SlideMaster.php

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
$currentSlide = $objPHPPresentation->getActiveSlide();
2727

2828
// Create a master layout
29-
echo date('H:i:s') . ' Create masterslide' . EOL;
29+
echo date('H:i:s') . ' Create masterslide layout' . EOL;
3030
// Some decorative lines
3131
$oMasterSlide = $objPHPPresentation->getAllMasterSlides()[0];
3232
$shape = $oMasterSlide->createLineShape(0, 670, 960, 670)->getBorder()->setColor(new Color(Color::COLOR_RED))->setLineWidth(2);
@@ -94,6 +94,11 @@
9494
$shape->setAutoFit(RichText::AUTOFIT_NORMAL);
9595
$shape->setPlaceHolder(new Placeholder(Placeholder::PH_TYPE_TITLE));
9696

97+
echo date('H:i:s') . ' Apply the shape collection of the slide master to the slide layout' . EOL;
98+
$oSlideLayout = $oMasterSlide->getAllSlideLayouts()[0];
99+
$oSlideLayout->setShapeCollection($oMasterSlide->getShapeCollection());
100+
$currentSlide->setSlideLayout($oSlideLayout);
101+
97102
// Save file
98103
echo write($objPHPPresentation, basename(__FILE__, '.php'), $writers);
99104
if (!CLI) {

src/PhpPresentation/Slide/AbstractSlide.php

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,17 @@ public function getShapeCollection()
106106
return $this->shapeCollection;
107107
}
108108

109+
/**
110+
* Get collection of shapes
111+
*
112+
* @return AbstractSlide
113+
*/
114+
public function setShapeCollection($shapeCollection = array())
115+
{
116+
$this->shapeCollection = $shapeCollection;
117+
return $this;
118+
}
119+
109120
/**
110121
* Add shape to slide
111122
*

src/PhpPresentation/Writer/PowerPoint2007/AbstractSlide.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -213,6 +213,10 @@ protected function writeShapeText(XMLWriter $objWriter, RichText $shape, $shapeI
213213
// p:sp\p:spPr\a:prstGeom
214214
$objWriter->startElement('a:prstGeom');
215215
$objWriter->writeAttribute('prst', 'rect');
216+
217+
// p:sp\p:spPr\a:prstGeom\a:avLst
218+
$objWriter->writeElement('a:avLst');
219+
216220
$objWriter->endElement();
217221
$this->writeFill($objWriter, $shape->getFill());
218222
if ($shape->getBorder()->getLineStyle() != Border::LINE_NONE) {
@@ -651,6 +655,10 @@ protected function writeShapeLine(XMLWriter $objWriter, Line $shape, $shapeId)
651655
// a:prstGeom
652656
$objWriter->startElement('a:prstGeom');
653657
$objWriter->writeAttribute('prst', 'line');
658+
659+
// a:prstGeom/a:avLst
660+
$objWriter->writeElement('a:avLst');
661+
654662
$objWriter->endElement();
655663
if ($shape->getBorder()->getLineStyle() != Border::LINE_NONE) {
656664
$this->writeBorder($objWriter, $shape->getBorder(), '');
@@ -1062,6 +1070,10 @@ protected function writeSlideBackground(AbstractSlideAlias $pSlide, XMLWriter $o
10621070
$objWriter->endElement();
10631071
// > a:solidFill
10641072
$objWriter->endElement();
1073+
1074+
// p:bgPr/a:effectLst
1075+
$objWriter->writeElement('a:effectLst');
1076+
10651077
// > p:bgPr
10661078
$objWriter->endElement();
10671079
}

src/PhpPresentation/Writer/PowerPoint2007/PptPresentation.php

Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,103 @@ public function render()
7575
$objWriter->writeAttribute('cy', '9144000');
7676
$objWriter->endElement();
7777

78+
$objWriter->writeRaw(' <p:defaultTextStyle>
79+
<a:defPPr>
80+
<a:defRPr lang="fr-FR"/>
81+
</a:defPPr>
82+
<a:lvl1pPr algn="l" defTabSz="914400" eaLnBrk="1" hangingPunct="1" latinLnBrk="0" marL="0" rtl="0">
83+
<a:defRPr kern="1200" sz="1800">
84+
<a:solidFill>
85+
<a:schemeClr val="tx1"/>
86+
</a:solidFill>
87+
<a:latin typeface="+mn-lt"/>
88+
<a:ea typeface="+mn-ea"/>
89+
<a:cs typeface="+mn-cs"/>
90+
</a:defRPr>
91+
</a:lvl1pPr>
92+
<a:lvl2pPr algn="l" defTabSz="914400" eaLnBrk="1" hangingPunct="1" latinLnBrk="0" marL="457200" rtl="0">
93+
<a:defRPr kern="1200" sz="1800">
94+
<a:solidFill>
95+
<a:schemeClr val="tx1"/>
96+
</a:solidFill>
97+
<a:latin typeface="+mn-lt"/>
98+
<a:ea typeface="+mn-ea"/>
99+
<a:cs typeface="+mn-cs"/>
100+
</a:defRPr>
101+
</a:lvl2pPr>
102+
<a:lvl3pPr algn="l" defTabSz="914400" eaLnBrk="1" hangingPunct="1" latinLnBrk="0" marL="914400" rtl="0">
103+
<a:defRPr kern="1200" sz="1800">
104+
<a:solidFill>
105+
<a:schemeClr val="tx1"/>
106+
</a:solidFill>
107+
<a:latin typeface="+mn-lt"/>
108+
<a:ea typeface="+mn-ea"/>
109+
<a:cs typeface="+mn-cs"/>
110+
</a:defRPr>
111+
</a:lvl3pPr>
112+
<a:lvl4pPr algn="l" defTabSz="914400" eaLnBrk="1" hangingPunct="1" latinLnBrk="0" marL="1371600" rtl="0">
113+
<a:defRPr kern="1200" sz="1800">
114+
<a:solidFill>
115+
<a:schemeClr val="tx1"/>
116+
</a:solidFill>
117+
<a:latin typeface="+mn-lt"/>
118+
<a:ea typeface="+mn-ea"/>
119+
<a:cs typeface="+mn-cs"/>
120+
</a:defRPr>
121+
</a:lvl4pPr>
122+
<a:lvl5pPr algn="l" defTabSz="914400" eaLnBrk="1" hangingPunct="1" latinLnBrk="0" marL="1828800" rtl="0">
123+
<a:defRPr kern="1200" sz="1800">
124+
<a:solidFill>
125+
<a:schemeClr val="tx1"/>
126+
</a:solidFill>
127+
<a:latin typeface="+mn-lt"/>
128+
<a:ea typeface="+mn-ea"/>
129+
<a:cs typeface="+mn-cs"/>
130+
</a:defRPr>
131+
</a:lvl5pPr>
132+
<a:lvl6pPr algn="l" defTabSz="914400" eaLnBrk="1" hangingPunct="1" latinLnBrk="0" marL="2286000" rtl="0">
133+
<a:defRPr kern="1200" sz="1800">
134+
<a:solidFill>
135+
<a:schemeClr val="tx1"/>
136+
</a:solidFill>
137+
<a:latin typeface="+mn-lt"/>
138+
<a:ea typeface="+mn-ea"/>
139+
<a:cs typeface="+mn-cs"/>
140+
</a:defRPr>
141+
</a:lvl6pPr>
142+
<a:lvl7pPr algn="l" defTabSz="914400" eaLnBrk="1" hangingPunct="1" latinLnBrk="0" marL="2743200" rtl="0">
143+
<a:defRPr kern="1200" sz="1800">
144+
<a:solidFill>
145+
<a:schemeClr val="tx1"/>
146+
</a:solidFill>
147+
<a:latin typeface="+mn-lt"/>
148+
<a:ea typeface="+mn-ea"/>
149+
<a:cs typeface="+mn-cs"/>
150+
</a:defRPr>
151+
</a:lvl7pPr>
152+
<a:lvl8pPr algn="l" defTabSz="914400" eaLnBrk="1" hangingPunct="1" latinLnBrk="0" marL="3200400" rtl="0">
153+
<a:defRPr kern="1200" sz="1800">
154+
<a:solidFill>
155+
<a:schemeClr val="tx1"/>
156+
</a:solidFill>
157+
<a:latin typeface="+mn-lt"/>
158+
<a:ea typeface="+mn-ea"/>
159+
<a:cs typeface="+mn-cs"/>
160+
</a:defRPr>
161+
</a:lvl8pPr>
162+
<a:lvl9pPr algn="l" defTabSz="914400" eaLnBrk="1" hangingPunct="1" latinLnBrk="0" marL="3657600" rtl="0">
163+
<a:defRPr kern="1200" sz="1800">
164+
<a:solidFill>
165+
<a:schemeClr val="tx1"/>
166+
</a:solidFill>
167+
<a:latin typeface="+mn-lt"/>
168+
<a:ea typeface="+mn-ea"/>
169+
<a:cs typeface="+mn-cs"/>
170+
</a:defRPr>
171+
</a:lvl9pPr>
172+
</p:defaultTextStyle>
173+
');
174+
78175
$objWriter->endElement();
79176

80177
$this->oZip->addFromString('ppt/presentation.xml', $objWriter->getData());

src/PhpPresentation/Writer/PowerPoint2007/PptSlideLayouts.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,7 @@ public function writeSlideLayout(SlideLayout $pSlideLayout)
142142
$objWriter->endElement();
143143
// p:sldLayout\p:cSld\p:spTree\p:grpSpPr\
144144
$objWriter->endElement();
145+
145146
// Loop shapes
146147
$this->writeShapeCollection($objWriter, $pSlideLayout->getShapeCollection());
147148
// p:sldLayout\p:cSld\p:spTree\

0 commit comments

Comments
 (0)