HSLF操作PPT

来源:互联网 发布:flotherm软件下载 编辑:程序博客网 时间:2024/06/05 12:38

新建PPT

//创建一个新的幻灯片

HSLFSlideShow ppt = newHSLFSlideShow();

   

//添加第一个幻灯片

HSLFSlide s1 =ppt.createSlide();

   

//添加第二个幻灯片

HSLFSlide s2 =ppt.createSlide();

   

//保存

FileOutputStream out = newFileOutputStream("slideshow.ppt");

ppt.write(out);

out.close();

查看和修改幻灯片大小

    HSLFSlideShow ppt = new HSLFSlideShow(newHSLFSlideShowImpl("slideshow.ppt"));

    //查看幻灯片大小. 点表示坐标

    java.awt.Dimension pgsize =ppt.getPageSize();

    int pgx = pgsize.width; //slide width

    int pgy = pgsize.height; //slide height

 

    //设置新的大小

    ppt.setPageSize(newjava.awt.Dimension(1024, 768));

    //保存

    FileOutputStream out = newFileOutputStream("slideshow.ppt");

    ppt.write(out);

    out.close();

                 

如何获得特定的形状包含在一个幻灯片

    HSLFSlideShow ppt = new HSLFSlideShow(newHSLFSlideShowImpl("slideshow.ppt"));

    // 获取幻灯片

    for (HSLFSlide slide : ppt.getSlides()) {

        for (HSLFShape sh : slide.getShapes()){

            // 形状名称

            String name = sh.getShapeName();

 

            // 在这个幻灯片中的形状的锚位置

            java.awt.Rectangle anchor =sh.getAnchor();

 

            if (sh instanceof Line) {

                Line line = (Line) sh;

                // 在行间

            } else if (sh instanceofHSLFAutoShape) {

                HSLFAutoShape shape = (HSLFAutoShape) sh;

                // 在自动填充区域内

            } else if (sh instanceofHSLFTextBox) {

                HSLFTextBox shape =(HSLFTextBox) sh;

                // 在文本框中

            } else if (sh instanceofHSLFPictureShape) {

                HSLFPictureShape shape =(HSLFPictureShape) sh;

                // 在图片中

            }

        }

    }

图片处理

HSLFSlideShow ppt = new HSLFSlideShow(newHSLFSlideShowImpl("slideshow.ppt"));

//
提取所有包含在演示中的图片
intidx = 1;
for (HSLFPictureData pict : ppt.getPictureData()) {

// 图片数据
byte[] data = pict.getData();


PictureData.PictureType type = pict.getType();
String ext = type.extension;
FileOutputStream out = new FileOutputStream("pict_" +idx + ext);
out.write(data);
out.close();
idx++;
}

//
给幻灯片添加新图片、插入新幻灯片
HSLFPictureData pd = ppt.addPicture(newFile("clock.jpg"), PictureData.PictureType.JPEG);


HSLFPictureShape pictNew = new HSLFPictureShape(pd);

// 设置图片在幻灯片中的位置
pictNew.setAnchor(new java.awt.Rectangle(100, 100, 300, 200));


HSLFSlide slide = ppt.createSlide();
slide.addShape(pictNew);

// 检索第一张幻灯片的图片并保存到磁盘上

idx = 1;
slide = ppt.getSlides().get(0);

for (HSLFShape sh : slide.getShapes()) {
if (sh instanceof HSLFPictureShape) {
HSLFPictureShape pict = (HSLFPictureShape) sh;
HSLFPictureData pictData = pict.getPictureData();
byte[] data = pictData.getData();
PictureData.PictureType type = pictData.getType();
FileOutputStream out = new FileOutputStream("slide0_" +idx + type.extension);
out.write(data);
out.close();
idx++;
}
}

FileOutputStream out = newFileOutputStream("slideshow.ppt");
ppt.write(out);
out.close();

幻灯片设置title

   HSLFSlideShow ppt = new HSLFSlideShow();

   HSLFSlide slide = ppt.createSlide();

   HSLFTextBox title = slide.addTitle();

   title.setText("Hello, World!");

 

    //保存

   FileOutputStream out = new FileOutputStream("slideshow.ppt");

   ppt.write(out);

   out.close();

                 

//精简版代码

   Set myDocument = ActivePresentation.Slides(1)

myDocument.Shapes.AddTitle.TextFrame.TextRange.Text= "Hello, World!"

 

修改幻灯片主题背景

    HSLFSlideShow ppt = new HSLFSlideShow();

    HSLFSlideMaster master =ppt.getSlideMasters().get(0);

 

    HSLFFill fill =master.getBackground().getFill();

    HSLFPictureData pd = ppt.addPicture(newFile("background.png"), PictureData.PictureType.PNG);

    fill.setFillType(HSLFFill.FILL_PICTURE);

    fill.setPictureData(pd);

                 

修改幻灯片背景

    HSLFSlideShow ppt = new HSLFSlideShow();

    HSLFSlide slide = ppt.createSlide();

 

    // 这一行用自己的背景.

    // 除了这一行其余都是用的主题背景.

    slide.setFollowMasterBackground(false);

    HSLFFill fill =slide.getBackground().getFill();

    HSLFPictureData pd = ppt.addPicture(newFile("background.png"), PictureData.PictureType.PNG);

    fill.setFillType(HSLFFill.FILL_PATTERN);

    fill.setPictureData(pd);   

                 

How to modifybackground of a shape

    HSLFSlideShow ppt = new HSLFSlideShow();

    HSLFSlide slide = ppt.createSlide();

   

    HSLFShape shape = newHSLFAutoShape(ShapeType.RECT);

    shape.setAnchor(new java.awt.Rectangle(100,100, 200, 200));

    HSLFFill fill = shape.getFill();

    fill.setFillType(HSLFFill.FILL_SHADE);

    fill.setBackgroundColor(Color.red);

    fill.setForegroundColor(Color.green);

   

    slide.addShape(shape);

                 

如何创建项目符号列表

    HSLFSlideShow ppt = new HSLFSlideShow();

    HSLFSlide slide = ppt.createSlide();

    HSLFTextBox shape = new HSLFTextBox();

    HSLFTextParagraph tp =shape.getTextParagraphs().get(0);

    tp.setBullet(true);

    tp.setBulletChar('\u263A');

    tp.setIndent(0.);

    tp.setLeftMargin(50.);   //文本偏移

    HSLFTextRun rt = tp.getTextRuns().get(0);

    shape.setText(

        "January\r" +

        "February\r" +

        "March\r" +

        "April");

    rt.setFontSize(42.);

    slide.addShape(shape);

 

             shape.setAnchor(newjava.awt.Rectangle(50, 50, 500, 300)); //文本框的位置

    slide.addShape(shape);

 

    FileOutputStream out = newFileOutputStream("bullets.ppt");

    ppt.write(out);

    out.close();

               

阅读超链接的幻灯片

    FileInputStream is = newFileInputStream("slideshow.ppt");

    HSLFSlideShow ppt = new HSLFSlideShow(is);

    is.close();

 

    for (HSLFSlide slide : ppt.getSlides()) {

        //read hyperlinks from the text runs

        for (List<HSLFTextParagraph> txt: slide.getTextParagraphs()) {

            for (HSLFTextParagraph para : txt){

                for (HSLFTextRun run : para) {

                    HSLFHyperlink link =run.getHyperlink();

                    if (link != null) {

                        String title = link.getLabel();

                        String address =link.getAddress();

                        String text =run.getRawText();

                    }

                }

            }

        }

 

        //在演示文稿中可以插入一个没有文字的超链接

        for (HSLFShape sh : slide.getShapes()){

            if (sh instanceof HSLFSimpleShape){

                HSLFHyperlink link =((HSLFSimpleShape)sh).getHyperlink();

                if(link != null)  {

                    String title =link.getLabel();

                    String address =link.getAddress();

                }

            }

        }

    }

               

如何创建表

    //表数据             

    String[][] data = {

        {"INPUT FILE", "NUMBEROF RECORDS"},

        {"Item File","11,559"},

        {"Vendor File","300"},

        {"Purchase History File","10,000"},

        {"Total # of requisitions","10,200,038"}

    };

 

    HSLFSlideShow ppt = new HSLFSlideShow();

 

    HSLFSlide slide = ppt.createSlide();

    //建表5行2列

    HSLFTable table = new HSLFTable(5, 2);

    for (int i = 0; i < data.length; i++) {

        for (int j = 0; j < data[i].length;j++) {

            HSLFTableCell cell =table.getCell(i, j);

            cell.setText(data[i][j]);

 

            HSLFTextRun rt = cell.getTextParagraphs().get(0).getTextRuns().get(0);

           rt.setFontFamily("Arial");

            rt.setFontSize(10.);

 

           cell.setVerticalAlignment(VerticalAlignment.MIDDLE);

            cell.setHorizontalCentered(true);

        }

    }

 

    //设置表格边框

    Line border = table.createBorder();

    border.setLineColor(Color.black);

    border.setLineWidth(1.0);

    table.setAllBorders(border);

 

    //第一列的宽度

    table.setColumnWidth(0, 300);

    //第二列的宽度

    table.setColumnWidth(1, 150);

 

    slide.addShape(table);

    table.moveTo(100, 100);

 

    FileOutputStream out = newFileOutputStream("hslf-table.ppt");

    ppt.write(out);

    out.close();

                   

从幻灯片如何删除shape

    for (HSLFShape shape : slide.getShapes()) {

        //删除的形状

        boolean ok = slide.removeShape(shape);

        if (ok) {

            // shape 删除,Dosomething.

        }

    }

                   

如何检索嵌入式OLE对象

    for (HSLFShape shape : slide.getShapes()) {

        if (shape instanceof OLEShape) {

            OLEShape ole = (OLEShape) shape;

            HSLFObjectData data =ole.getObjectData();

            String name =ole.getInstanceName();

            if("Worksheet".equals(name)) {

                HSSFWorkbook wb = newHSSFWorkbook(data.getData());

            } else if("Document".equals(name)) {

                HWPFDocument doc = newHWPFDocument(data.getData());

            }

        }

    }

                   

如何检索嵌入式的声音

    FileInputStream is = newFileInputStream(args[0]);

    HSLFSlideShow ppt = new HSLFSlideShow(is);

    is.close();

 

    for (HSLFSoundData sound :ppt.getSoundData()) {

        //磁盘上保存* WAV

        if(sound.getSoundType().equals(".WAV")) {

            FileOutputStream out = newFileOutputStream(sound.getSoundName());

            out.write(sound.getData());

            out.close();

        }

    }

                   

How to createshapes of arbitrary geometry

    HSLFSlideShow ppt = new HSLFSlideShow();

    HSLFSlide slide = ppt.createSlide();

 

    java.awt.geom.GeneralPath path = newjava.awt.geom.GeneralPath();

    path.moveTo(100, 100);

    path.lineTo(200, 100);

    path.curveTo(50, 45, 134, 22, 78, 133);

    path.curveTo(10, 45, 134, 56, 78, 100);

    path.lineTo(100, 200);

    path.closePath();

 

    HSLFFreeformShape shape = newHSLFFreeformShape();

    shape.setPath(path);

    slide.addShape(shape);

1 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 一建证书丢了怎么办 自考大专证书丢了怎么办 护士学分卡丢了怎么办 公司电脑只能用内网怎么办 遇见素质低的人怎么办 被素质低的人骂怎么办 对素质差的人怎么办 碰到素质低的人怎么办 和韩国人结婚后工作怎么办 大连明珠卡坏了怎么办 护肤品酒精含量太高怎么办 父母出国三年想孩子怎么办 孩子高考不理想想出国怎么办 交大附中创新班剩余孩子怎么办 棋牌开发公司倒闭了怎么办 7月1日本地流量怎么办 装电池的弹簧生锈了怎么办 电器被电池碱了怎么办 车辆被交警拖走怎么办 香烟熏的眼睛疼怎么办 想在中牟住5天怎么办 腰弯了直不了怎么办 自考科目停考了怎么办 把wlan密码忘了怎么办 滕州不给报新婚怎么办 体内锁水能力差怎么办 别人说你人品差怎么办 面对没素质的人怎么办 遇到很坏的室友怎么办 餐饮员工与顾客发生矛盾怎么办 新员工老员工出现矛盾怎么办 手机移动4g网慢怎么办 碰到素质低的老公怎么办 小孩做事拖拉 没时间观念怎么办 execl表中日期加3.5怎么办 狗狗喜欢咬人怎么办 烧烤一顿吃多了怎么办 派派背包食物不足怎么办 未转变者下不了怎么办 小升初户籍与房产不一致怎么办 小孩在外地读书怎么办计生证明