javapoippt的简单介绍
本篇文章给大家谈谈javapoippt,以及对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、java poi 将ppt转换为png图片格式后,中文出现乱码,如何解决?
- 2、poi导出ppt怎么设置ppt母版
- 3、java 用POI转换PPT的问题
- 4、java poi 操作ppt,该怎么解决
- 5、Java poi操作PPT,怎么向PPT中插入文件对象?
- 6、Java POI HSLF PPT中文字体问题
java poi 将ppt转换为png图片格式后,中文出现乱码,如何解决?
在代码中将ppt文字的字体设置为中文字体,比如宋体,转换之后就不会乱码或者变框框了。
poi导出ppt怎么设置ppt母版
PPT模板需要再模板视图中设置,步骤如下:
我用的office PowerPoint演示 ,不过支持免费的WPS。
分为直接套用模板和自定义模板两种,
1.绍模板套用
模板套用很简单,首先要去找一个适合演讲展示内容主题的模板,
可以直接安装一个“文档美化大师”一键美化文档,使用方法很简单,这里就不多介绍,安装打开已经做好的ppt一键美化即可,也可以进去挑选喜欢的ppt模板。
2.模板更改和自定义:视图-幻灯片母版
这里有12个板式,分别对应的是板式中的11个板式+1个通用板式(模板中的第一个)
然后在对应板式里编辑相应的模板,字体样式、背景颜色
如果只是想要给幻灯片加个背景,那么直接在最顶上那个通用板式底部加一个背景就行
下图中,左侧的12个板式对应的是幻灯片普通视图编辑框中的11个板式+一个通用视图
下图是幻灯片板式入口,模板视图中编辑好,此处可以直接套用
编辑完成关闭,然后到普通视图中去添加想要展示的内容即可
注意的是,直接在非模板视图也是可以添加的,就是背景图片不是锁定样式
java 用POI转换PPT的问题
Shape[] sh = slide[i].getShapes();
如果这页里面有Picture元素,应该是可以得到的。我用poi写出了一个带图的ppt,然后用instanceof测试过,这是没问题的。
可能因为你需要读取的ppt不够规范,比如一个人加图一个习惯,有的人喜欢直接放图,有的人喜欢把图放在某个容器上之类的。
还有可能出问题的地方就是确定有底图的页面没用母板?
java poi 操作ppt,该怎么解决
解析PPT文件中的图片
import java.io.File;
import java.io.FileOutputStream;
import org.apache.poi.hslf.HSLFSlideShow;
import org.apache.poi.hslf.model.Picture;
import org.apache.poi.hslf.usermodel.PictureData;
import org.apache.poi.hslf.usermodel.SlideShow;
public class OutputPicture {
// 图片默认存放路径
public final static String path = "F:\\ppt\";
public static void main(String[] args) throws Exception {
// 加载PPT
HSLFSlideShow _hslf = new HSLFSlideShow("F:\\Downloads\\myPPT.ppt");
SlideShow _slideShow = new SlideShow(_hslf);
// 获取PPT文件中的图片数据
PictureData[] _pictures = _slideShow.getPictureData();
// 循环读取图片数据
for (int i = 0; i _pictures.length; i++) {
StringBuilder fileName = new StringBuilder(path);
PictureData pic_data = _pictures[i];
fileName.append(i);
// 设置格式
switch (pic_data.getType()) {
case Picture.JPEG:
fileName.append(".jpg");
break;
case Picture.PNG:
fileName.append(".png");
break;
default:
fileName.append(".data");
}
// 输出文件
FileOutputStream fileOut = new FileOutputStream(new File(fileName.toString()));
fileOut.write(pic_data.getData());
fileOut.close();
}
}
}
在PPT文件中加入外部图片
import java.awt.Rectangle;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;
import javax.imageio.ImageIO;
import org.apache.poi.hslf.model.Picture;
import org.apache.poi.hslf.model.Slide;
import org.apache.poi.hslf.usermodel.SlideShow;
public class InputPicture {
public static String path = "F:\\images\\myImage.png";
public static String OUTPUT = "F:\\ppt\\myppt.ppt";
public static void main(String[] args) throws Exception {
if(args.length != 0){
path = args[0];
}
// 构建PPT
SlideShow _slideShow = new SlideShow();
// 创建幻灯片
Slide _slide = _slideShow.createSlide();
// 设置图片类型
int pic_type = -1;
if(path.indexOf(".png") != -1){
pic_type = Picture.PNG;
}else{
pic_type = Picture.JPEG;
}
File file = new File(path);
BufferedImage image = ImageIO.read(file);
// 新置入图片索引位置
int newIndex = _slideShow.addPicture(file, pic_type);
// 根据索引位置 , 创建图片对象
Picture _picture = new Picture(newIndex);
// 设置图片显示位置
_picture.setAnchor(new Rectangle(100,100,image.getWidth(),image.getHeight()));
// 将图片放入幻灯片
_slide.addShape(_picture);
// 输出PPT文件
_slideShow.write(new FileOutputStream(new File(OUTPUT)));
}
}
操作文本对象
import java.awt.Color;
import java.awt.Rectangle;
import java.io.FileOutputStream;
import org.apache.poi.hslf.model.AutoShape;
import org.apache.poi.hslf.model.Line;
import org.apache.poi.hslf.model.ShapeTypes;
import org.apache.poi.hslf.model.Slide;
import org.apache.poi.hslf.model.TextBox;
import org.apache.poi.hslf.model.TextRun;
import org.apache.poi.hslf.usermodel.RichTextRun;
import org.apache.poi.hslf.usermodel.SlideShow;
public class InputTextRun {
public static void main(String[] args) throws Exception{
SlideShow _slideShow = new SlideShow();
Slide slide = _slideShow.createSlide();
// 创建并置入简单文本
TextBox _text = new TextBox();
TextRun _textRun = _text.createTextRun();
_textRun.setRawText("杜磊米");
_text.setAnchor(new Rectangle(10,10,100,100));
// 创建并置入带有样式的文本
AutoShape _autoShape = new AutoShape(ShapeTypes.Rectangle); //设置形状
TextRun _autoText = _autoShape.createTextRun();
_autoText.setRawText("杜磊米");
_autoShape.setAnchor(new Rectangle(200,200,100,100));
_autoShape.setFillColor(new Color(170,215,255));
_autoShape.setLineWidth(5.0);
_autoShape.setLineStyle(Line.LINE_DOUBLE);
// AutoShape 对象可以设置多个不同样式文本
TextRun _autoText2 = _autoShape.createTextRun();
RichTextRun _richText = _autoText2.appendText("杜");
_richText.setFontColor(new Color(255,255,255));
RichTextRun _richText2 = _autoText2.appendText("磊米");
_richText2.setFontColor(new Color(255,0,0));
_richText2.setFontSize(12);
// 将文本对象置入幻灯片
slide.addShape(_text);
slide.addShape(_autoShape);
// 输出文件
_slideShow.write(new FileOutputStream("F:\\ppt\\text.ppt"));
}
}
设置各类文件属性
import java.awt.Dimension;
import java.io.FileOutputStream;
import org.apache.poi.hpsf.DocumentSummaryInformation;
import org.apache.poi.hpsf.SummaryInformation;
import org.apache.poi.hslf.HSLFSlideShow;
import 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 = new SlideShow(hslf);
// 设置页面大小
_slideShow.setPageSize(new Dimension(400,600));
// 设置后创建出相应大小的幻灯片
Slide slide = _slideShow.createSlide();
DocumentSummaryInformation doc = hslf.getDocumentSummaryInformation();
SummaryInformation info = hslf.getSummaryInformation();
doc.setCompany("secret");
info.setAuthor("杜磊米");
info.setTitle("nothing");
// 输出文件
_slideShow.write(new FileOutputStream("F:\\ppt\\demo.ppt"));
// 完成后, 找到文件 , 右键属性查看:)
}
}
Java poi操作PPT,怎么向PPT中插入文件对象?
麻ao 对插操件象中芝操对文i#P?插a#
几千个PPT案例参考,再也不用为做PPT烦恼啦 pptmuban.c om(删掉c om之间空格)
Java POI HSLF PPT中文字体问题
恩,我估计可能是你的ppt的设置问题把?
你看看你的ppt里的字体。
1.你这里设置的字体必须是ppt支持的。
2.ppt里应该不会有强制中文都用宋体显示的设置把?
javapoippt的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、javapoippt的信息别忘了在本站进行查找喔。
发布于:2022-12-12,除非注明,否则均为
原创文章,转载请注明出处。