java删除文件中的一行_Java 插入、编辑、提取及删除PowerPoint中的图片

本文将使用Free Spire.Presentation for Java免费控件来介绍如何插入图片到PowerPoint幻灯片中,以及如何编辑、提取和删除幻灯片中已有的图片。

Free Spire.Presentation for Java 是一个专业的PowerPoint API,它允许开发人员在Java应用程序中创建、编辑、读取、转换和保存PowerPoint文档。作为一款独立的Java组件,它的运行环境无需安装Microsoft PowerPoint。

Jar文件获取及导入

在运行代码前,需将Jar包导入IDEA中。导入方式有两种:其一,在E-iceblue中文官网上下载Free Spire.Presentation for Java产品包,解压后将lib文件夹下的Spire.Presentation.jar手动导入IDEA;其二,在IDEA中创建一个Maven项目,然后在pom.xml文件下键入以下代码,最后点击“Import Changes”即可。

com.e-icebluehttp://repo.e-iceblue.cn/repository/maven-public/e-iceblue        spire.presentation.free        3.9.0

代码示例

示例1 插入图片到PowerPoint幻灯片中

import com.spire.presentation.*;import com.spire.presentation.drawing.FillFormatType;import java.awt.geom.Rectangle2D;public class InsertImages {    public static void main(String[] args) throws Exception {        //创建Presentation实例        Presentation ppt = new Presentation();Rectangle2D rect = new Rectangle2D.Double(ppt.getSlideSize().getSize().getWidth() / 2 - 280, 140, 300, 250);        //获取第一张幻灯片(创建后默认含有一张幻灯片)        ISlide slide = ppt.getSlides().get(0);        //插入图片到幻灯片        IEmbedImage image = slide.getShapes().appendEmbedImage(ShapeType.RECTANGLE, "C:甥敳獲Test1DesktopImage1.jpg", rect);        image.getLine().setFillType(FillFormatType.NONE);        //添加一张新的幻灯片        slide = ppt.getSlides().append();        //插入图片到幻灯片        image = slide.getShapes().appendEmbedImage(ShapeType.RECTANGLE, "C:甥敳獲Test1DesktopImage2.png", rect);        image.getLine().setFillType(FillFormatType.NONE);        //保存文档        ppt.saveToFile("output/InsertImages.pptx", FileFormat.PPTX_2013);    }}

效果图:

e8fa2b8a25a33792796bc2b468af89b9.png

示例2 编辑PowerPoint幻灯片中的图片

import com.spire.presentation.*;public class EditImage {    public static void main(String[] args) throws Exception {        //创建实例,加载PPT测试文档        Presentation ppt = new Presentation();        ppt.loadFromFile("C:甥敳獲Test1DesktopInsertImages.pptx");        //获取第一张幻灯片        ISlide slide = ppt.getSlides().get(0);        //遍历幻灯片中的形状        for( int i = 0; i< slide.getShapes().getCount();i++){            IShape shape = slide.getShapes().get(i);            //设置图片高、宽、位置、旋转、可选文本、像素、名称等            if(shape instanceof SlidePicture){                SlidePicture pic = (SlidePicture) shape;                pic.setHeight(270);                pic.setWidth(400);                pic.setAlternativeText("原始图片文件");                pic.setAlternativeTitle("标题1");                pic.setRotation(30);                pic.setLeft(200);                pic.setTop(150);                pic.setName("图片1");                pic.getPictureFill().getPicture().setTransparency(60);            }        }        //保存文档        ppt.saveToFile("output/ModifyImage.pptx",FileFormat.PPTX_2013);        ppt.dispose();    }}

编辑前后对比图:

acf2f8516590f77180d010ee18273948.png

示例3 提取Powerpoint幻灯片中的图片

情况1:提取所有幻灯片中的图片

import com.spire.presentation.Presentation;import javax.imageio.ImageIO;import java.awt.image.BufferedImage;import java.io.File;public class ExtractImages {    public static void main(String[] args) throws Exception {        //创建Presentation实例        Presentation ppt = new Presentation();        //加载PowerPoint文档        ppt.loadFromFile("C:甥敳獲Test1DesktopInsertImages.pptx");        //提取文档中的所有图片        for (int i = 0; i < ppt.getImages().getCount(); i++) {            BufferedImage image = ppt.getImages().get(i).getImage();            ImageIO.write(image, "PNG",  new File(String.format("output/" + "extractImage-%1$s.png", i)));        }    }}

提取效果:

9122418a36db8ca4c93b72f4837354bf.png

情况2 提取指定幻灯片中的图片

import com.spire.presentation.*;import javax.imageio.ImageIO;import java.awt.image.BufferedImage;import java.io.File;public class ExtractSpecifiedImage {    public static void main(String[] args) throws Exception {        //创建Presentation实例        Presentation ppt = new Presentation();        //加载PowerPoint文档        ppt.loadFromFile("C:甥敳獲Test1DesktopInsertImages.pptx");        //获取第一张幻灯片        ISlide slide = ppt.getSlides().get(0);        //提取图片        for(int i = 0; i< slide.getShapes().getCount(); i++)        {            IShape shape = slide.getShapes().get(i);            if(shape instanceof SlidePicture)            {                SlidePicture pic = (SlidePicture) shape;                BufferedImage image = pic.getPictureFill().getPicture().getEmbedImage().getImage();                ImageIO.write(image, "PNG",  new File(String.format("output/" + "extractSpecifiedImage-%1$s.png", i)));            }            if(shape instanceof PictureShape)            {                PictureShape ps = (PictureShape) shape;                BufferedImage image = ps.getEmbedImage().getImage();                ImageIO.write(image, "PNG",  new File(String.format("output/" + "extractSpecifiedImage-%1$s.png", i)));            }        }    }}

提取效果:

5eb3b94d199303689fc25b01c3ed3301.png

示例4 删除PowerPoint幻灯片中的图片

import com.spire.presentation.*;public class DeleteImages {    public static void main(String[] args) throws Exception {        //加载PPT文档        Presentation ppt = new Presentation();        ppt.loadFromFile("C:甥敳獲Test1DesktopInsertImages.pptx");        //获取指定幻灯片        ISlide slide = ppt.getSlides().get(1);        //遍历幻灯片中的形状        for( int i = 0; i< slide.getShapes().getCount();i++){            IShape shape = slide.getShapes().get(i);            //删除图片            if(shape instanceof SlidePicture){                SlidePicture pic = (SlidePicture) shape;                slide.getShapes().remove(pic);            }        }        //保存文档        ppt.saveToFile("output/DeleteImages.pptx", FileFormat.PPTX_2013);        ppt.dispose();    }}

删除前后对比图:

46f62dfcd7e46b1e33b587502d4c19f0.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值