Pārlūkot izejas kodu

add XSLFPictureShape setName

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1894505 13f79535-47bb-0310-9956-ffa450edef68
tags/REL_5_2_0
PJ Fanning pirms 2 gadiem
vecāks
revīzija
802165ecd0

+ 32
- 5
poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XSLFPictureShape.java Parādīt failu

@@ -282,17 +282,44 @@ public class XSLFPictureShape extends XSLFSimpleShape
XmlObject xmlObject = getXmlObject();
if (xmlObject instanceof CTPicture) {
CTPicture ctPicture = (CTPicture)xmlObject;
CTPictureNonVisual nvSpPr = ctPicture.getNvPicPr();
if (nvSpPr != null) {
CTNonVisualDrawingProps cnv = nvSpPr.getCNvPr();
if (cnv != null) {
name = cnv.getName();
CTPictureNonVisual nvPicPr = ctPicture.getNvPicPr();
if (nvPicPr != null) {
CTNonVisualDrawingProps cnvdProps = nvPicPr.getCNvPr();
if (cnvdProps != null) {
name = cnvdProps.getName();
}
}
}
return name;
}

/**
* @param name picture name
* @return returns true if the name was set
* @since POI 5.1.0
*/
public boolean setName(String name) {
XmlObject xmlObject = getXmlObject();
if (xmlObject instanceof CTPicture) {
CTPicture ctPicture = (CTPicture)xmlObject;
CTPictureNonVisual nvPicPr = ctPicture.getNvPicPr();
if (nvPicPr == null) {
nvPicPr = ctPicture.addNewNvPicPr();
}
if (nvPicPr != null) {
CTNonVisualDrawingProps cnvdProps = nvPicPr.getCNvPr();
if (cnvdProps == null) {
cnvdProps = nvPicPr.addNewCNvPr();
}
if (cnvdProps != null) {
cnvdProps.setName(name);
return true;
}
}
}
return false;
}

/**
* @return SVG image data -- can return null if no SVG image is found
*/

+ 48
- 0
poi-ooxml/src/test/java/org/apache/poi/xslf/usermodel/TestXSLFPictureShape.java Parādīt failu

@@ -94,6 +94,54 @@ class TestXSLFPictureShape {
}
}

@Test
void testCreateWithSetName() throws Exception {
try (XMLSlideShow ppt1 = new XMLSlideShow()) {
assertEquals(0, ppt1.getPictureData().size());
byte[] data1 = new byte[100];
for (int i = 0; i < 100; i++) {
data1[i] = (byte) i;
}
XSLFPictureData pdata1 = ppt1.addPicture(data1, PictureType.JPEG);
assertEquals(0, pdata1.getIndex());
assertEquals(1, ppt1.getPictureData().size());

XSLFSlide slide = ppt1.createSlide();
XSLFPictureShape shape1 = slide.createPicture(pdata1);
assertNotNull(shape1.getPictureData());
assertArrayEquals(data1, shape1.getPictureData().getData());
assertTrue(shape1.setName("Shape1 Picture"));

byte[] data2 = new byte[200];
for (int i = 0; i < 200; i++) {
data2[i] = (byte) i;
}
XSLFPictureData pdata2 = ppt1.addPicture(data2, PictureType.PNG);
XSLFPictureShape shape2 = slide.createPicture(pdata2);
assertNotNull(shape2.getPictureData());
assertEquals(1, pdata2.getIndex());
assertEquals(2, ppt1.getPictureData().size());
assertArrayEquals(data2, shape2.getPictureData().getData());
assertTrue(shape2.setName("Shape2 Picture"));

try (XMLSlideShow ppt2 = writeOutAndReadBack(ppt1)) {
List<XSLFPictureData> pics = ppt2.getPictureData();
assertEquals(2, pics.size());
assertArrayEquals(data1, pics.get(0).getData());
assertArrayEquals(data2, pics.get(1).getData());

List<XSLFShape> shapes = ppt2.getSlides().get(0).getShapes();
assertEquals(2, shapes.size());
XSLFPictureShape xlsfShape1 = (XSLFPictureShape) shapes.get(0);
XSLFPictureShape xlsfShape2 = (XSLFPictureShape) shapes.get(1);
assertArrayEquals(data1, xlsfShape1.getPictureData().getData());
assertArrayEquals(data2, xlsfShape2.getPictureData().getData());
assertEquals("Shape1 Picture", xlsfShape1.getName());
assertEquals("Shape2 Picture", xlsfShape2.getName());
}
}
}

@Test
void testCreateMultiplePictures() throws Exception {
try (XMLSlideShow ppt1 = new XMLSlideShow()) {

Notiek ielāde…
Atcelt
Saglabāt