Cómo resolver el problema de operar ppt con java poi
Analizar imágenes en archivos PPT
import java.io.File;
import java.io.FileOutputStream
import org. apache.poi.hslf.HSLFSlideShow;
importar org.apache.poi.hslf.model.Picture
importar org.apache.poi.hslf.usermodel.PictureData
p>import org.apache.poi.hslf.usermodel.SlideShow;
public class OutputPicture {
//Ruta de almacenamiento predeterminada para imágenes
public final static String path = "F:\\ppt\";
public static void main(String[] args) throws Exception {
// Cargar PPT
HSLFSlideShow _hslf = new HSLFSlideShow("F:\\Downloads\\myPPT.ppt");
SlideShow _slideShow = new SlideShow(_hslf); Datos de imagen en el archivo
PictureData[] _pictures = _slideShow.getPictureData();
// Bucle para leer datos de imagen
for (int i = 0 ; i lt; _pictures.length; i ) {
StringBuilder fileName = new StringBuilder(ruta);
PictureData pic_data = _pictures[i]; .append(i);
// Establecer formato
switch (pic_data.getType()) {
case Imagen.JPEG:
fileName.append(".jpg");
break
case Pic;
ture.PNG:
fileName.append(".png");
break;
predeterminado:
fileName.append( ".data");
}
// Archivo de salida
FileOutputStream fileOut = new FileOutputStream(new File(fileName.toString())); /p>
fileOut.write(pic_data.getData());
fileOut.close()
}
}
;}
Agregar imágenes externas a archivos PPT
import java.awt.Rectangle
import java.awt.image.BufferedImage
p>
importar java.io.File
importar java.io.FileOutputStream
importar javax.imageio.ImageIO
importar org.apache.poi.hslf.model.Picture;
importar org.apache.poi.hslf.model.Slide
importar org.apache.poi.hslf. usermodel.SlideShow;
public class InputPicture {
ruta de cadena estática pública = "F:\\images\\myImage.png"
cadena estática pública; SALIDA = "F :\\ppt\\myppt.ppt";
public static void main(String[] args) lanza una excepción {
if(args.length != 0 ){
p>ruta = args[0];
}
// Crear PPT
Presentación de diapositivas _slideShow = nueva presentación de diapositivas( );
// Crear presentación de diapositivas <
/p>
Slide _slide = _slideShow.createSlide();
// Establece el tipo de imagen
int pic_type = -1; ruta .indexOf(".png") != -1){
pic_type = Imagen.PNG
}else{
pic_type = Imagen.JPEG; ;
}
Archivo archivo = nuevo Archivo(ruta);
Imagen Buffered = ImageIO.read(archivo); / Posición del índice de la imagen recién colocada
int newIndex = _slideShow.addPicture(file, pic_type
// Crea un objeto de imagen basado en la posición del índice
Picture _picture = new Picture(newIndex);
//Establece la posición de visualización de la imagen
_picture.setAnchor(new Triangle(100, 100, image.getWidth(), image.getHeight) ()) );
// Coloca la imagen en la diapositiva
_slide.addShape(_picture
// Genera el archivo PPT
_slideShow.write(new FileOutputStream(new File(OUTPUT)));
}
}
Manipular objetos de texto
importar java .awt.Color;
importar java.awt.Rectangle
importar java.io.FileOutputStream
importar org.apache.poi; .hslf.model .AutoShape;
importar org.apache.poi.hslf.model.Line
importar org.apache.poi.hslf.model.ShapeTypes
importar org.apache.poi.hslf.m
odel.Slide
importar org.apache.poi.hslf.model.TextBox;
importar org.apache.poi.hslf.model.TextRun; > importar org.apache.poi.hslf.usermodel.RichTextRun;
importar org.apache.poi.hslf.usermodel.SlideShow
clase pública InputTextRun {
public static void main(String[] args) lanza una excepción{
SlideShow _slideShow = new SlideShow()
Slide slide = _slideShow.createSlide();
// Crea y coloca texto simple
TextBox _text = new TextBox();
TextRun _textRun = _text.createTextRun();
_textRun . setRawText("Du Leimi");
_text.setAnchor(new Triangle(10, 10, 100, 100));
// Crea y coloca un texto con estilo Texto
AutoShape _autoShape = new AutoShape(ShapeTypes.Rectangle); //Establece la forma
TextRun _autoText = _autoShape.createTextRun()
_autoText.setRawText ("; Du Lei Mi");
_autoShape.setAnchor(nuevo Rectángulo(200, 200, 100, 100));
_autoShape.setFillColor(nuevo Color(170, 215, 255)
_autoShape.setLineWidth(5.0);
_autoShape.setLineStyle(Line.LINE_DOUBLE);
El objeto utoShape puede establecer múltiples estilos de texto diferentes
TextRun _autoText2 = _autoShape.createTextRun()
RichTextRun _richText = _autoText2.appendText("DU"); p > _richText.setFontColor(new Color(255, 255, 255));
RichTextRun _richText2 = _autoText2.appendText("Lei Mi");
_richText2.setFontColor(new Color) ( 255, 0, 0));
_richText2.setFontSize(12);
// Coloca el objeto de texto en la diapositiva
slide.addShape( _text );
slide.addShape(_autoShape);
// Archivo de salida
_slideShow.write(new FileOutputStream("F:\\ppt\\ text .ppt"));
}
}
Establecer varios atributos de archivo
import java.awt.Dimension; p>
p>
importar java.io.FileOutputStream;
importar org.apache.poi.hpsf.DocumentSummaryInformation
importar org.apache.poi.hpsf; .SummaryInformation;
p>
importar org.apache.poi.hslf.HSLFSlideShow
importar org.apache.poi.hslf.model.Slide;
import org.apache.poi.hslf.usermodel.SlideShow;
public class PPTProperty {
public static void main(String [] args)throws Exception{
HSLFSlideShow hslf = HSLFSlideShow.create ();
SlideShow _slideShow = nuevo Sl
ideShow(hslf);
// Establecer tamaño de página
_slideShow.setPageSize(new Dimension(400, 600)); diapositiva del tamaño correspondiente
Slide slide = _slideShow.createSlide();
DocumentSummaryInformation doc = hslf.getDocumentSummaryInformation()
SummaryInformation info = hslf.getSummaryInformation (
doc.setCompany("secreto");
info.setAuthor("Du Leimi");
info.setTitle("nada ")
// Archivo de salida
_slideShow.write(new FileOutputStream("F:\\ppt\\demo.ppt")); Una vez completado, busque el archivo, haga clic derecho y vea las propiedades :)
}
}