Import slide notes when importing slide content
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1886338 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFShape.java b/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFShape.java
index f84e306..5a26759 100644
--- a/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFShape.java
+++ b/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFShape.java
@@ -143,7 +143,10 @@
if (this instanceof PlaceableShape) {
PlaceableShape<?,?> ps = (PlaceableShape<?,?>)this;
- ps.setAnchor(sh.getAnchor());
+ Rectangle2D anchor = sh.getAnchor();
+ if (anchor != null) {
+ ps.setAnchor(anchor);
+ }
}
@@ -485,4 +488,4 @@
protected XmlObject getShapeProperties() {
return getChild(CTShapeProperties.class, PML_NS, "spPr");
}
-}
\ No newline at end of file
+}
diff --git a/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFSlide.java b/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFSlide.java
index 1bf2b60..c126afd 100644
--- a/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFSlide.java
+++ b/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFSlide.java
@@ -295,6 +295,11 @@
return this;
}
+ XSLFNotes srcNotes = ((XSLFSlide)src).getNotes();
+ if (srcNotes != null) {
+ getSlideShow().getNotesSlide(this).importContent(srcNotes);
+ }
+
// only copy direct backgrounds - not backgrounds of master sheet
CTBackground bgOther = ((XSLFSlide)src)._slide.getCSld().getBg();
if (bgOther == null) {
diff --git a/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFNotes.java b/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFNotes.java
index 9b5efa3..526abab 100644
--- a/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFNotes.java
+++ b/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFNotes.java
@@ -103,4 +103,25 @@
ppt.close();
}
+
+ @Test
+ void importNotes() throws IOException {
+
+ XMLSlideShow ppt = XSLFTestDataSamples.openSampleDocument("sample.pptx");
+ XMLSlideShow newShow = new XMLSlideShow();
+
+ for (XSLFSlide slide : ppt.getSlides()) {
+ XSLFNotes slideNotes = slide.getNotes();
+ assertNotNull(slideNotes);
+ XSLFNotes notesSlide = ppt.getNotesSlide(slide);
+ assertNotNull(notesSlide);
+ assertEquals(notesSlide, slideNotes);
+
+ XSLFSlide newSlide = newShow.createSlide().importContent(slide);
+ XSLFNotes newNotes = newSlide.getNotes();
+ assertNotNull(newNotes);
+ }
+
+ ppt.close();
+ }
}