Skip to content

Commit 540f87f

Browse files
committed
#179 : Bugfix for printing slide notes (Unit Tests)
1 parent 226a490 commit 540f87f

File tree

3 files changed

+292
-239
lines changed

3 files changed

+292
-239
lines changed

samples/Sample_09_SlideNote.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@
5555
->setHeight($oLayout->getCY($oLayout::UNIT_PIXEL))
5656
->setWidth($oLayout->getCX($oLayout::UNIT_PIXEL))
5757
->setOffsetX(170)
58-
->setOffsetY(180);;
58+
->setOffsetY(180);
5959
$oRichText->createTextRun('A class library');
6060
$oRichText->createParagraph()->createTextRun('Written in PHP');
6161
$oRichText->createParagraph()->createTextRun('Representing a presentation');

src/PhpPresentation/Writer/PowerPoint2007/PptSlides.php

Lines changed: 91 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -1441,216 +1441,242 @@ protected function writeNote(Note $pNote)
14411441
$objWriter->writeAttribute('xmlns:p', 'http://schemas.openxmlformats.org/presentationml/2006/main');
14421442
$objWriter->writeAttribute('xmlns:r', 'http://schemas.openxmlformats.org/officeDocument/2006/relationships');
14431443

1444-
// p:cSld
1444+
// p:notes/p:cSld
14451445
$objWriter->startElement('p:cSld');
14461446

1447-
// p:spTree
1447+
// p:notes/p:cSld/p:spTree
14481448
$objWriter->startElement('p:spTree');
14491449

1450-
// p:nvGrpSpPr
1450+
// p:notes/p:cSld/p:spTree/p:nvGrpSpPr
14511451
$objWriter->startElement('p:nvGrpSpPr');
14521452

1453-
// p:cNvPr
1453+
// p:notes/p:cSld/p:spTree/p:nvGrpSpPr/p:cNvPr
14541454
$objWriter->startElement('p:cNvPr');
14551455
$objWriter->writeAttribute('id', '1');
14561456
$objWriter->writeAttribute('name', '');
14571457
$objWriter->endElement();
14581458

1459-
// p:cNvGrpSpPr
1459+
// p:notes/p:cSld/p:spTree/p:nvGrpSpPr/p:cNvGrpSpPr
14601460
$objWriter->writeElement('p:cNvGrpSpPr', null);
14611461

1462-
// p:nvPr
1462+
// p:notes/p:cSld/p:spTree/p:nvGrpSpPr/p:nvPr
14631463
$objWriter->writeElement('p:nvPr', null);
14641464

1465-
// ## p:nvGrpSpPr
1465+
// p:notes/p:cSld/p:spTree/p:nvGrpSpPr
14661466
$objWriter->endElement();
14671467

1468-
// p:grpSpPr
1468+
// p:notes/p:cSld/p:spTree/p:grpSpPr
14691469
$objWriter->startElement('p:grpSpPr');
14701470

1471-
// a:xfrm
1471+
// p:notes/p:cSld/p:spTree/p:grpSpPr/a:xfrm
14721472
$objWriter->startElement('a:xfrm');
14731473

1474-
// a:off
1474+
// p:notes/p:cSld/p:spTree/p:grpSpPr/a:xfrm/a:off
14751475
$objWriter->startElement('a:off');
14761476
$objWriter->writeAttribute('x', CommonDrawing::pixelsToEmu($pNote->getOffsetX()));
14771477
$objWriter->writeAttribute('y', CommonDrawing::pixelsToEmu($pNote->getOffsetY()));
14781478
$objWriter->endElement(); // a:off
14791479

1480-
// a:ext
1480+
// p:notes/p:cSld/p:spTree/p:grpSpPr/a:xfrm/a:ext
14811481
$objWriter->startElement('a:ext');
14821482
$objWriter->writeAttribute('cx', CommonDrawing::pixelsToEmu($pNote->getExtentX()));
14831483
$objWriter->writeAttribute('cy', CommonDrawing::pixelsToEmu($pNote->getExtentY()));
14841484
$objWriter->endElement(); // a:ext
14851485

1486-
// a:chOff
1486+
// p:notes/p:cSld/p:spTree/p:grpSpPr/a:xfrm/a:chOff
14871487
$objWriter->startElement('a:chOff');
14881488
$objWriter->writeAttribute('x', CommonDrawing::pixelsToEmu($pNote->getOffsetX()));
14891489
$objWriter->writeAttribute('y', CommonDrawing::pixelsToEmu($pNote->getOffsetY()));
14901490
$objWriter->endElement(); // a:chOff
14911491

1492-
// a:chExt
1492+
// p:notes/p:cSld/p:spTree/p:grpSpPr/a:xfrm/a:chExt
14931493
$objWriter->startElement('a:chExt');
14941494
$objWriter->writeAttribute('cx', CommonDrawing::pixelsToEmu($pNote->getExtentX()));
14951495
$objWriter->writeAttribute('cy', CommonDrawing::pixelsToEmu($pNote->getExtentY()));
14961496
$objWriter->endElement(); // a:chExt
14971497

1498-
// ## a:xfrm
1498+
// p:notes/p:cSld/p:spTree/p:grpSpPr/a:xfrm
14991499
$objWriter->endElement();
15001500

1501-
// ## p:grpSpPr
1501+
// p:notes/p:cSld/p:spTree/p:grpSpPr
15021502
$objWriter->endElement();
15031503

1504-
// p:sp
1504+
// p:notes/p:cSld/p:spTree/p:sp[1]
15051505
$objWriter->startElement('p:sp');
15061506

1507-
// p:nvSpPr
1507+
// p:notes/p:cSld/p:spTree/p:sp[1]/p:nvSpPr
15081508
$objWriter->startElement('p:nvSpPr');
15091509

1510+
// p:notes/p:cSld/p:spTree/p:sp[1]/p:nvSpPr/p:cNvPr
15101511
$objWriter->startElement('p:cNvPr');
15111512
$objWriter->writeAttribute('id', '2');
15121513
$objWriter->writeAttribute('name', 'Slide Image Placeholder 1');
15131514
$objWriter->endElement();
1514-
//p:cNvSpPr
1515+
1516+
// p:notes/p:cSld/p:spTree/p:sp[1]/p:nvSpPr/p:cNvSpPr
15151517
$objWriter->startElement('p:cNvSpPr');
1516-
//a:spLocks
1518+
1519+
// p:notes/p:cSld/p:spTree/p:sp[1]/p:nvSpPr/p:cNvSpPr/a:spLocks
15171520
$objWriter->startElement('a:spLocks');
15181521
$objWriter->writeAttribute('noGrp', '1');
15191522
$objWriter->writeAttribute('noRot', '1');
15201523
$objWriter->writeAttribute('noChangeAspect', '1');
15211524
$objWriter->endElement();
1522-
//end p:cNvSpPr
1525+
1526+
// p:notes/p:cSld/p:spTree/p:sp[1]/p:nvSpPr/p:cNvSpPr
15231527
$objWriter->endElement();
1524-
//p:nvPr
1528+
1529+
// p:notes/p:cSld/p:spTree/p:sp[1]/p:nvSpPr/p:nvPr
15251530
$objWriter->startElement('p:nvPr');
1526-
//p:ph
1531+
1532+
// p:notes/p:cSld/p:spTree/p:sp[1]/p:nvSpPr/p:nvPr/p:ph
15271533
$objWriter->startElement('p:ph');
15281534
$objWriter->writeAttribute('type', 'sldImg');
15291535
$objWriter->endElement();
1530-
//end p:nvPr
1536+
1537+
// p:notes/p:cSld/p:spTree/p:sp[1]/p:nvSpPr/p:nvPr
15311538
$objWriter->endElement();
1532-
//end p:nvSpPr
1539+
1540+
// p:notes/p:cSld/p:spTree/p:sp[1]/p:nvSpPr
15331541
$objWriter->endElement();
15341542

1535-
//p:spPr
1543+
// p:notes/p:cSld/p:spTree/p:sp/p:spPr
15361544
$objWriter->startElement('p:spPr');
1537-
//a:xfrm
1545+
1546+
// p:notes/p:cSld/p:spTree/p:sp[1]/p:spPr/a:xfrm
15381547
$objWriter->startElement('a:xfrm');
1539-
//a:off
1548+
1549+
// p:notes/p:cSld/p:spTree/p:sp[1]/p:spPr/a:xfrm/a:off
15401550
$objWriter->startElement('a:off');
15411551
$objWriter->writeAttribute('x', CommonDrawing::pixelsToEmu($pNote->getOffsetX()));
15421552
$objWriter->writeAttribute('y', CommonDrawing::pixelsToEmu($pNote->getOffsetY()));
15431553
$objWriter->endElement();
1544-
//a:ext
1554+
1555+
// p:notes/p:cSld/p:spTree/p:sp[1]/p:spPr/a:xfrm/a:ext
15451556
$objWriter->startElement('a:ext');
15461557
$objWriter->writeAttribute('cx', CommonDrawing::pixelsToEmu(round($pNote->getExtentX() / 2)));
15471558
$objWriter->writeAttribute('cy', CommonDrawing::pixelsToEmu(round($pNote->getExtentY() / 2)));
15481559
$objWriter->endElement();
1549-
//a:xfrm
1560+
1561+
// p:notes/p:cSld/p:spTree/p:sp[1]/p:spPr/a:xfrm
15501562
$objWriter->endElement();
1551-
//a:prstGeom
1563+
1564+
// p:notes/p:cSld/p:spTree/p:sp[1]/p:spPr/a:prstGeom
15521565
$objWriter->startElement('a:prstGeom');
15531566
$objWriter->writeAttribute('prst', 'rect');
1554-
//a:avLst
1567+
1568+
// p:notes/p:cSld/p:spTree/p:sp[1]/p:spPr/a:prstGeom/a:avLst
15551569
$objWriter->writeElement('a:avLst', null);
1556-
//end prstGeom
1570+
1571+
// p:notes/p:cSld/p:spTree/p:sp[1]/p:spPr/a:prstGeom
15571572
$objWriter->endElement();
1558-
//a:noFill
1573+
1574+
// p:notes/p:cSld/p:spTree/p:sp[1]/p:spPr/a:noFill
15591575
$objWriter->writeElement('a:noFill', null);
1560-
//a:ln
1576+
1577+
// p:notes/p:cSld/p:spTree/p:sp[1]/p:spPr/a:ln
15611578
$objWriter->startElement('a:ln');
15621579
$objWriter->writeAttribute('w', '12700');
1563-
//a:solidFill
1580+
1581+
// p:notes/p:cSld/p:spTree/p:sp[1]/p:spPr/a:ln/a:solidFill
15641582
$objWriter->startElement('a:solidFill');
1565-
//a:prstClr
1583+
1584+
// p:notes/p:cSld/p:spTree/p:sp[1]/p:spPr/a:ln/a:solidFill/a:prstClr
15661585
$objWriter->startElement('a:prstClr');
15671586
$objWriter->writeAttribute('val', 'black');
15681587
$objWriter->endElement();
1569-
//end a:solidFill
1588+
1589+
// p:notes/p:cSld/p:spTree/p:sp[1]/p:spPr/a:ln/a:solidFill
15701590
$objWriter->endElement();
1571-
//end a:ln
1591+
1592+
// p:notes/p:cSld/p:spTree/p:sp[1]/p:spPr/a:ln
15721593
$objWriter->endElement();
1573-
//end p:spPr
1594+
1595+
// p:notes/p:cSld/p:spTree/p:sp[1]/p:spPr
15741596
$objWriter->endElement();
1575-
//end p:sp
1597+
1598+
// p:notes/p:cSld/p:spTree/p:sp[1]
15761599
$objWriter->endElement();
1577-
//end slide preview display
15781600

1579-
// p:sp
1601+
// p:notes/p:cSld/p:spTree/p:sp[2]
15801602
$objWriter->startElement('p:sp');
15811603

1582-
// p:nvSpPr
1604+
// p:notes/p:cSld/p:spTree/p:sp[2]/p:nvSpPr
15831605
$objWriter->startElement('p:nvSpPr');
15841606

1607+
// p:notes/p:cSld/p:spTree/p:sp[2]/p:nvSpPr/p:cNvPr
15851608
$objWriter->startElement('p:cNvPr');
15861609
$objWriter->writeAttribute('id', '3');
15871610
$objWriter->writeAttribute('name', 'Notes Placeholder');
15881611
$objWriter->endElement();
15891612

1590-
// p:cNvSpPr
1613+
// p:notes/p:cSld/p:spTree/p:sp[2]/p:nvSpPr/p:cNvSpPr
15911614
$objWriter->startElement('p:cNvSpPr');
15921615

1593-
//a:spLocks
1616+
// p:notes/p:cSld/p:spTree/p:sp[2]/p:nvSpPr/p:cNvSpPr/a:spLocks
15941617
$objWriter->startElement('a:spLocks');
15951618
$objWriter->writeAttribute('noGrp', '1');
15961619
$objWriter->endElement();
15971620

1598-
// ## p:cNvSpPr
1621+
// p:notes/p:cSld/p:spTree/p:sp[2]/p:nvSpPr/p:cNvSpPr
15991622
$objWriter->endElement();
16001623

1601-
// p:nvPr
1624+
// p:notes/p:cSld/p:spTree/p:sp[2]/p:nvSpPr/p:nvPr
16021625
$objWriter->startElement('p:nvPr');
16031626

1627+
// p:notes/p:cSld/p:spTree/p:sp[2]/p:nvSpPr/p:nvPr/p:ph
16041628
$objWriter->startElement('p:ph');
16051629
$objWriter->writeAttribute('type', 'body');
16061630
$objWriter->writeAttribute('idx', '1');
16071631
$objWriter->endElement();
16081632

1609-
// ## p:nvPr
1633+
// p:notes/p:cSld/p:spTree/p:sp[2]/p:nvSpPr/p:nvPr
16101634
$objWriter->endElement();
16111635

1612-
// ## p:nvSpPr
1636+
// p:notes/p:cSld/p:spTree/p:sp[2]/p:nvSpPr
16131637
$objWriter->endElement();
16141638

1615-
//START notes print below rectangle section
1616-
// p:spPr
1639+
// START notes print below rectangle section
1640+
// p:notes/p:cSld/p:spTree/p:sp[2]/p:spPr
16171641
$objWriter->startElement('p:spPr');
16181642

1619-
// p:spPr > a:xfrm
1643+
// p:notes/p:cSld/p:spTree/p:sp[2]/p:spPr/a:xfrm
16201644
$objWriter->startElement('a:xfrm');
16211645

1622-
// p:spPr > a:xfrm > :off
1646+
// p:notes/p:cSld/p:spTree/p:sp[2]/p:spPr/a:xfrm/a:off
16231647
$objWriter->startElement('a:off');
16241648
$objWriter->writeAttribute('x', CommonDrawing::pixelsToEmu($pNote->getOffsetX()));
16251649
$objWriter->writeAttribute('y', CommonDrawing::pixelsToEmu(round($pNote->getExtentY() / 2)));
16261650
$objWriter->endElement();
16271651

1628-
// p:spPr > a:xfrm > a:ext
1652+
// p:notes/p:cSld/p:spTree/p:sp[2]/p:spPr/a:xfrm/a:ext
16291653
$objWriter->startElement('a:ext');
16301654
$objWriter->writeAttribute('cx', '5486400');
16311655
$objWriter->writeAttribute('cy', '3600450');
16321656
$objWriter->endElement();
16331657

1634-
// p:spPr > ##a:xfrm
1658+
// p:notes/p:cSld/p:spTree/p:sp[2]/p:spPr/a:xfrm
16351659
$objWriter->endElement();
16361660

1637-
// p:spPr > a:prstGeom
1661+
// p:notes/p:cSld/p:spTree/p:sp[2]/p:spPr/a:prstGeom
16381662
$objWriter->startElement('a:prstGeom');
16391663
$objWriter->writeAttribute('prst', 'rect');
16401664

1641-
// p:spPr > a:prstGeom > a:avLst
1665+
// p:notes/p:cSld/p:spTree/p:sp[2]/p:spPr/a:prstGeom/a:avLst
16421666
$objWriter->writeElement('a:avLst', null);
16431667

1644-
// p:spPr > ##a:prstGeom
1668+
// p:notes/p:cSld/p:spTree/p:sp[2]/p:spPr/a:prstGeom
16451669
$objWriter->endElement();
16461670

1647-
// ##p:spPr
1671+
// p:notes/p:cSld/p:spTree/p:sp[2]/p:spPr
16481672
$objWriter->endElement();
16491673

1650-
// p:txBody
1674+
// p:notes/p:cSld/p:spTree/p:sp[2]/p:txBody
16511675
$objWriter->startElement('p:txBody');
16521676

1677+
// p:notes/p:cSld/p:spTree/p:sp[2]/p:txBody/a:bodyPr
16531678
$objWriter->writeElement('a:bodyPr', null);
1679+
// p:notes/p:cSld/p:spTree/p:sp[2]/p:txBody/a:lstStyle
16541680
$objWriter->writeElement('a:lstStyle', null);
16551681

16561682
// Loop shapes
@@ -1663,19 +1689,19 @@ protected function writeNote(Note $pNote)
16631689
}
16641690
}
16651691

1666-
// ## p:txBody
1692+
// p:notes/p:cSld/p:spTree/p:sp[2]/p:txBody
16671693
$objWriter->endElement();
16681694

1669-
// ## p:sp
1695+
// p:notes/p:cSld/p:spTree/p:sp[2]
16701696
$objWriter->endElement();
16711697

1672-
// ## p:spTree
1698+
// p:notes/p:cSld/p:spTree
16731699
$objWriter->endElement();
16741700

1675-
// ## p:cSld
1701+
// p:notes/p:cSld
16761702
$objWriter->endElement();
16771703

1678-
// ## p:notes
1704+
// p:notes
16791705
$objWriter->endElement();
16801706

16811707
// Return

0 commit comments

Comments
 (0)