package foundation.io.file.ppt;
|
|
import java.io.File;
|
import java.util.Map;
|
|
import org.apache.poi.sl.usermodel.PictureData;
|
import org.apache.poi.xslf.usermodel.*;
|
|
import foundation.io.engine.IShapeWriter;
|
|
public class PictureShapeWriter extends IShapeWriter{
|
private XSLFPictureShape pictureShape;
|
|
public PictureShapeWriter(XSLFPictureShape shape) {
|
super(shape);
|
this.pictureShape = shape;
|
}
|
|
@Override
|
public XSLFPictureShape getShape(){
|
return pictureShape;
|
}
|
|
@Override
|
public void writeData(XSLFSlide slide, Map<String, Object> data) throws Exception {
|
XSLFPictureData pictureData = pictureShape.getPictureData();
|
// String pictureName = pictureData.getFileName();
|
// String fileId = data.get(pictureName);
|
|
// FileRecord fileRecord = FileCenter.getFile(dataName, fileId);
|
// byte[] pictureDataBytes = IOUtils.toByteArray(new FileInputStream(fileRecord.getPath()));
|
|
// byte[] pictureDataBytes = IOUtils.toByteArray(new FileInputStream("D:\\Data\\photo\\1.png"));
|
File file = new File("D:\\Data\\photo\\1.png");
|
int newPictureIdx = pictureData.getIndex();
|
|
XSLFPictureData newPictureData = slide.getSlideShow().addPicture(file, PictureData.PictureType.PNG);
|
newPictureData.setIndex(newPictureIdx);
|
|
XSLFPictureShape newPicture = slide.createPicture(newPictureData);
|
newPicture.setAnchor(pictureShape.getAnchor());
|
// this.pictureShape = newPicture;
|
slide.removeShape(pictureShape);
|
}
|
|
}
|