Skip to content

Commit 2328e34

Browse files
committed
Refactor Word2007/Element to identify the same properties
1 parent a2294b4 commit 2328e34

File tree

14 files changed

+62
-40
lines changed

14 files changed

+62
-40
lines changed

src/PhpWord/Writer/Word2007/Element/AbstractElement.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,16 @@ public function setPageBreakBefore($value = true)
115115
$this->pageBreakBefore = (bool)$value;
116116
}
117117

118+
/**
119+
* Write ending
120+
*/
121+
protected function endElementP()
122+
{
123+
if (!$this->withoutP) {
124+
$this->xmlWriter->endElement(); // w:p
125+
}
126+
}
127+
118128
/**
119129
* Convert text to valid format
120130
*

src/PhpWord/Writer/Word2007/Element/CheckBox.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,6 @@ public function write()
8585
$xmlWriter->endElement(); // w:t
8686
$xmlWriter->endElement(); // w:r
8787

88-
$this->writeClosingWP();
88+
$this->endElementP(); // w:p
8989
}
9090
}

src/PhpWord/Writer/Word2007/Element/Field.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,6 @@ public function write()
8282
$xmlWriter->endElement(); // w:r
8383
$xmlWriter->endElement(); // w:fldSimple
8484

85-
$this->writeClosingWP();
85+
$this->endElementP(); // w:p
8686
}
8787
}

src/PhpWord/Writer/Word2007/Element/Footnote.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,6 @@ public function write()
5555
$xmlWriter->endElement(); // w:$referenceType
5656
$xmlWriter->endElement(); // w:r
5757

58-
$this->writeClosingWP();
58+
$this->endElementP(); // w:p
5959
}
6060
}

src/PhpWord/Writer/Word2007/Element/Image.php

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -52,54 +52,63 @@ public function write()
5252
private function writeImage(XMLWriter $xmlWriter, ImageElement $element)
5353
{
5454
$rId = $element->getRelationId() + ($element->isInSection() ? 6 : 0);
55+
5556
$style = $element->getStyle();
5657
$styleWriter = new ImageStyleWriter($xmlWriter, $style);
5758

5859
if (!$this->withoutP) {
5960
$xmlWriter->startElement('w:p');
6061
$styleWriter->writeAlignment();
6162
}
63+
6264
$xmlWriter->startElement('w:r');
6365
$xmlWriter->startElement('w:pict');
6466
$xmlWriter->startElement('v:shape');
6567
$xmlWriter->writeAttribute('type', '#_x0000_t75');
68+
6669
$styleWriter->write();
70+
$styleWriter->writeW10Wrap();
71+
6772
$xmlWriter->startElement('v:imagedata');
6873
$xmlWriter->writeAttribute('r:id', 'rId' . $rId);
6974
$xmlWriter->writeAttribute('o:title', '');
7075
$xmlWriter->endElement(); // v:imagedata
71-
$styleWriter->writeW10Wrap();
76+
7277
$xmlWriter->endElement(); // v:shape
7378
$xmlWriter->endElement(); // w:pict
7479
$xmlWriter->endElement(); // w:r
7580

76-
if (!$this->withoutP) {
77-
$xmlWriter->endElement(); // w:p
78-
}
81+
$this->endElementP(); // w:p
7982
}
8083
/**
8184
* Write watermark element
8285
*/
8386
private function writeWatermark(XMLWriter $xmlWriter, ImageElement $element)
8487
{
8588
$rId = $element->getRelationId();
89+
8690
$style = $element->getStyle();
87-
$style->setPositioning('absolute');
8891
$styleWriter = new ImageStyleWriter($xmlWriter, $style);
8992

9093
$xmlWriter->startElement('w:p');
94+
9195
$xmlWriter->startElement('w:r');
9296
$xmlWriter->startElement('w:pict');
9397
$xmlWriter->startElement('v:shape');
9498
$xmlWriter->writeAttribute('type', '#_x0000_t75');
99+
100+
$style->setPositioning('absolute');
95101
$styleWriter->write();
102+
96103
$xmlWriter->startElement('v:imagedata');
97104
$xmlWriter->writeAttribute('r:id', 'rId' . $rId);
98105
$xmlWriter->writeAttribute('o:title', '');
99106
$xmlWriter->endElement(); // v:imagedata
107+
100108
$xmlWriter->endElement(); // v:shape
101109
$xmlWriter->endElement(); // w:pict
102110
$xmlWriter->endElement(); // w:r
111+
103112
$xmlWriter->endElement(); // w:p
104113
}
105114
}

src/PhpWord/Writer/Word2007/Element/Line.php

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,16 +37,19 @@ public function write()
3737
return;
3838
}
3939

40-
$style = $element->getStyle();
40+
$style = $element->getStyle();
4141
$styleWriter = new LineStyleWriter($xmlWriter, $style);
4242

4343
$elementId = $element->getElementIndex();
44+
4445
if (!$this->withoutP) {
4546
$xmlWriter->startElement('w:p');
4647
$styleWriter->writeAlignment();
4748
}
49+
4850
$xmlWriter->startElement('w:r');
4951
$xmlWriter->startElement('w:pict');
52+
5053
// Shapetype could be defined for each line separately, but then a unique id would be necessary
5154
if ($elementId == 1) {
5255
$xmlWriter->startElement('v:shapetype');
@@ -67,18 +70,20 @@ public function write()
6770
$xmlWriter->endElement(); // o:lock
6871
$xmlWriter->endElement(); // v:shapetype
6972
}
73+
7074
$xmlWriter->startElement('v:shape');
7175
$xmlWriter->writeAttribute('id', sprintf('_x0000_s1%1$03d', $elementId));
7276
$xmlWriter->writeAttribute('type', '#_x0000_t32'); //type should correspond to shapetype id
77+
7378
$styleWriter->write();
74-
$styleWriter->writeStroke();
7579
$styleWriter->writeW10Wrap();
80+
$styleWriter->writeStroke();
81+
7682
$xmlWriter->endElement(); // v:shape
83+
7784
$xmlWriter->endElement(); // w:pict
7885
$xmlWriter->endElement(); // w:r
7986

80-
if (!$this->withoutP) {
81-
$xmlWriter->endElement(); // w:p
82-
}
87+
$this->endElementP(); // w:p
8388
}
8489
}

src/PhpWord/Writer/Word2007/Element/Link.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,6 @@ public function write()
5353
$xmlWriter->endElement(); // w:r
5454
$xmlWriter->endElement(); // w:hyperlink
5555

56-
$this->writeClosingWP();
56+
$this->endElementP(); // w:p
5757
}
5858
}

src/PhpWord/Writer/Word2007/Element/Object.php

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,27 +41,35 @@ public function write()
4141
$rIdImage = $element->getImageRelationId() + ($element->isInSection() ? 6 : 0);
4242
$shapeId = md5($rIdObject . '_' . $rIdImage);
4343
$objectId = $element->getRelationId() + 1325353440;
44+
4445
$style = $element->getStyle();
4546
$styleWriter = new ImageStyleWriter($xmlWriter, $style);
4647

4748
if (!$this->withoutP) {
4849
$xmlWriter->startElement('w:p');
4950
$styleWriter->writeAlignment();
5051
}
52+
5153
$xmlWriter->startElement('w:r');
5254
$xmlWriter->startElement('w:object');
5355
$xmlWriter->writeAttribute('w:dxaOrig', '249');
5456
$xmlWriter->writeAttribute('w:dyaOrig', '160');
57+
58+
// Icon
5559
$xmlWriter->startElement('v:shape');
5660
$xmlWriter->writeAttribute('id', $shapeId);
5761
$xmlWriter->writeAttribute('type', '#_x0000_t75');
5862
$xmlWriter->writeAttribute('style', 'width:104px;height:67px');
5963
$xmlWriter->writeAttribute('o:ole', '');
64+
6065
$xmlWriter->startElement('v:imagedata');
6166
$xmlWriter->writeAttribute('r:id', 'rId' . $rIdImage);
6267
$xmlWriter->writeAttribute('o:title', '');
6368
$xmlWriter->endElement(); // v:imagedata
69+
6470
$xmlWriter->endElement(); // v:shape
71+
72+
// Object
6573
$xmlWriter->startElement('o:OLEObject');
6674
$xmlWriter->writeAttribute('Type', 'Embed');
6775
$xmlWriter->writeAttribute('ProgID', 'Package');
@@ -70,10 +78,10 @@ public function write()
7078
$xmlWriter->writeAttribute('ObjectID', '_' . $objectId);
7179
$xmlWriter->writeAttribute('r:id', 'rId' . $rIdObject);
7280
$xmlWriter->endElement(); // o:OLEObject
81+
7382
$xmlWriter->endElement(); // w:object
7483
$xmlWriter->endElement(); // w:r
75-
if (!$this->withoutP) {
76-
$xmlWriter->endElement(); // w:p
77-
}
84+
85+
$this->endElementP(); // w:p
7886
}
7987
}

src/PhpWord/Writer/Word2007/Element/PreserveText.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,6 @@ public function write()
8686
}
8787
}
8888

89-
$this->writeClosingWP();
89+
$this->endElementP(); // w:p
9090
}
9191
}

src/PhpWord/Writer/Word2007/Element/Shape.php

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,8 @@ public function write()
4242
}
4343

4444
$style = $element->getStyle();
45+
$styleWriter = new ShapeStyleWriter($xmlWriter, $style);
46+
4547
$type = $element->getType();
4648
if ($type == 'rect' && $style->getRoundness() !== null) {
4749
$type = 'roundrect';
@@ -62,16 +64,13 @@ public function write()
6264
}
6365

6466
// Child style
65-
$styleWriter = new ShapeStyleWriter($xmlWriter, $style);
6667
$styleWriter->write();
6768

6869
$xmlWriter->endElement(); // v:$type
6970
$xmlWriter->endElement(); // w:pict
7071
$xmlWriter->endElement(); // w:r
7172

72-
if (!$this->withoutP) {
73-
$xmlWriter->endElement(); // w:p
74-
}
73+
$this->endElementP(); // w:p
7574
}
7675

7776
/**

src/PhpWord/Writer/Word2007/Element/Text.php

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ public function write()
5151
$xmlWriter->endElement();
5252
$xmlWriter->endElement(); // w:r
5353

54-
$this->writeClosingWP();
54+
$this->endElementP(); // w:p
5555
}
5656

5757
/**
@@ -78,18 +78,6 @@ protected function writeOpeningWP()
7878
}
7979
}
8080

81-
/**
82-
* Write ending
83-
*/
84-
protected function writeClosingWP()
85-
{
86-
$xmlWriter = $this->getXmlWriter();
87-
88-
if (!$this->withoutP) {
89-
$xmlWriter->endElement(); // w:p
90-
}
91-
}
92-
9381
/**
9482
* Write ending
9583
*/

src/PhpWord/Writer/Word2007/Element/TextBox.php

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ public function write()
3636
if (!$element instanceof \PhpOffice\PhpWord\Element\TextBox) {
3737
return;
3838
}
39+
3940
$style = $element->getStyle();
4041
$styleWriter = new TextBoxStyleWriter($xmlWriter, $style);
4142

@@ -48,7 +49,9 @@ public function write()
4849
$xmlWriter->startElement('w:pict');
4950
$xmlWriter->startElement('v:shape');
5051
$xmlWriter->writeAttribute('type', '#_x0000_t0202');
52+
5153
$styleWriter->write();
54+
5255
$xmlWriter->startElement('v:textbox');
5356
$styleWriter->writeInnerMargin();
5457

@@ -64,8 +67,6 @@ public function write()
6467
$xmlWriter->endElement(); // w:pict
6568
$xmlWriter->endElement(); // w:r
6669

67-
if (!$this->withoutP) {
68-
$xmlWriter->endElement(); // w:p
69-
}
70+
$this->endElementP(); // w:p
7071
}
7172
}

src/PhpWord/Writer/Word2007/Element/TextBreak.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,12 +38,14 @@ public function write()
3838
if (!$this->withoutP) {
3939
$hasStyle = $element->hasStyle();
4040
$this->writeOpeningWP();
41+
4142
if ($hasStyle) {
4243
$xmlWriter->startElement('w:pPr');
4344
$this->writeFontStyle();
4445
$xmlWriter->endElement(); // w:pPr
4546
}
46-
$this->writeClosingWP();
47+
48+
$this->endElementP(); // w:p
4749
} else {
4850
$xmlWriter->writeElement('w:br');
4951
}

src/PhpWord/Writer/Word2007/Element/TextRun.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,6 @@ public function write()
3737
$containerWriter = new Container($xmlWriter, $element);
3838
$containerWriter->write();
3939

40-
$this->writeClosingWP();
40+
$this->endElementP(); // w:p
4141
}
4242
}

0 commit comments

Comments
 (0)