- 浏览: 753186 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
lgh1992314:
a offset: 26b offset: 24c offse ...
java jvm字节占用空间分析 -
ls0609:
语音实现在线听书http://blog.csdn.net/ls ...
Android 语音输入API使用 -
wangli61289:
http://viralpatel-net-tutorials ...
Android 语音输入API使用 -
zxjlwt:
学习了素人派http://surenpi.com
velocity宏加载顺序 -
tt5753:
谢啦........
Lucene的IndexWriter初始化时的LockObtainFailedException的解决方法
poi3.9版本,官网 http://poi.apache.org/slideshow/how-to-shapes.html
import java.awt.Color; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import org.apache.poi.hslf.HSLFSlideShow; import org.apache.poi.hslf.model.AutoShape; import org.apache.poi.hslf.model.Fill; import org.apache.poi.hslf.model.Freeform; import org.apache.poi.hslf.model.HeadersFooters; import org.apache.poi.hslf.model.Hyperlink; import org.apache.poi.hslf.model.Line; import org.apache.poi.hslf.model.Picture; import org.apache.poi.hslf.model.Shape; import org.apache.poi.hslf.model.ShapeTypes; import org.apache.poi.hslf.model.Slide; import org.apache.poi.hslf.model.SlideMaster; import org.apache.poi.hslf.model.Table; import org.apache.poi.hslf.model.TableCell; import org.apache.poi.hslf.model.TextBox; import org.apache.poi.hslf.model.TextRun; import org.apache.poi.hslf.usermodel.PictureData; import org.apache.poi.hslf.usermodel.RichTextRun; import org.apache.poi.hslf.usermodel.SlideShow; import org.apache.poi.hslf.usermodel.SoundData; public class PPTParseUtil { public static void main(String[] args) throws IOException { SlideShow ppt = new SlideShow(); // 设置标题,底部信息 // presentation-scope headers / footers HeadersFooters hdd = ppt.getSlideHeadersFooters(); hdd.setSlideNumberVisible(true); hdd.setFootersText("Created by POI-HSLF"); // add first slide Slide s1 = ppt.createSlide(); // add second slide Slide s2 = ppt.createSlide(); // retrieve page size. Coordinates are expressed in points (72 dpi) java.awt.Dimension pgsize = ppt.getPageSize(); int pgx = pgsize.width; // slide width int pgy = pgsize.height; // slide height // set new page size ppt.setPageSize(new java.awt.Dimension(1024, 768)); // save changes FileOutputStream out = new FileOutputStream("E:\\logs\\slideshow.ppt"); // get slides Slide[] slide = ppt.getSlides(); for (int i = 0; i < slide.length; i++) { Shape[] sh = slide[i].getShapes(); for (int j = 0; j < sh.length; j++) { // name of the shape String name = sh[j].getShapeName(); // shapes's anchor which defines the position of this shape in // the slide java.awt.Rectangle anchor = sh[j].getAnchor(); if (sh[j] instanceof Line) { Line line = (Line) sh[j]; // work with Line } else if (sh[j] instanceof AutoShape) { AutoShape shape = (AutoShape) sh[j]; // work with AutoShape } else if (sh[j] instanceof TextBox) { TextBox shape = (TextBox) sh[j]; // work with TextBox } else if (sh[j] instanceof Picture) { Picture shape = (Picture) sh[j]; // work with Picture } } } // Drawing a shape on a slide Slide slide2 = ppt.createSlide(); // set slide title TextBox title = slide2.addTitle(); title.setText("Hello, World!"); // Line shape Line line = new Line(); line.setAnchor(new java.awt.Rectangle(50, 50, 100, 20)); line.setLineColor(new Color(0, 128, 0)); line.setLineStyle(Line.LINE_DOUBLE); slide2.addShape(line); // TextBox TextBox txt = new TextBox(); txt.setText("Hello, World!"); txt.setAnchor(new java.awt.Rectangle(300, 100, 300, 50)); // use RichTextRun to work with the text format RichTextRun rt = txt.getTextRun().getRichTextRuns()[0]; rt.setFontSize(32); rt.setFontName("Arial"); rt.setBold(true); rt.setItalic(true); rt.setUnderlined(true); rt.setFontColor(Color.red); rt.setAlignment(TextBox.AlignRight); slide2.addShape(txt); // create shapes of arbitrary geometry java.awt.geom.GeneralPath path = new java.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(); Freeform shape = new Freeform(); shape.setPath(path); slide2.addShape(shape); // Autoshape // 32-point star AutoShape sh1 = new AutoShape(ShapeTypes.Star32); sh1.setAnchor(new java.awt.Rectangle(50, 50, 100, 200)); sh1.setFillColor(Color.red); slide2.addShape(sh1); // Trapezoid AutoShape sh2 = new AutoShape(ShapeTypes.Trapezoid); sh2.setAnchor(new java.awt.Rectangle(150, 150, 100, 200)); sh2.setFillColor(Color.blue); slide2.addShape(sh2); // work with pictures // extract all pictures contained in the presentation PictureData[] pdata = ppt.getPictureData(); for (int ii = 0; ii < pdata.length; ii++) { PictureData pict = pdata[ii]; // picture data byte[] data = pict.getData(); int type = pict.getType(); String ext; switch (type) { case Picture.JPEG: ext = ".jpg"; break; case Picture.PNG: ext = ".png"; break; case Picture.WMF: ext = ".wmf"; break; case Picture.EMF: ext = ".emf"; break; case Picture.PICT: ext = ".pict"; break; default: continue; } FileOutputStream out2 = new FileOutputStream("pict_" + ii + ext); out2.write(data); out2.close(); } // add a new picture to this slideshow and insert it in a new slide int idx = ppt.addPicture(new File("E:\\logs\\clock.png"), Picture.PNG); Picture pict = new Picture(idx); // set image position in the slide pict.setAnchor(new java.awt.Rectangle(100, 100, 300, 200)); Slide slide3 = ppt.createSlide(); slide3.addShape(pict); // This slide has its own background. // Without this line it will use master's background. slide3.setFollowMasterBackground(false); Fill fill = slide3.getBackground().getFill(); int idx1 = ppt.addPicture(new File("E:\\logs\\clock.png"), Picture.PNG); fill.setFillType(Fill.FILL_PATTERN); fill.setPictureData(idx1); // create bulleted lists TextBox shape1 = new TextBox(); RichTextRun rt1 = shape1.getTextRun().getRichTextRuns()[0]; shape1.setText("January\r" + "February\r" + "March\r" + "April"); rt1.setFontSize(42); rt1.setBullet(true); rt1.setBulletOffset(0); // bullet offset rt1.setTextOffset(50); // text offset (should be greater than bullet // offset) rt1.setBulletChar('\u263A'); // bullet character slide3.addShape(shape1); shape1.setAnchor(new java.awt.Rectangle(50, 50, 500, 300)); // position // of the // text box // in the // slide slide3.addShape(shape1); // now retrieve pictures containes in the first slide and save them on // disk slide3 = ppt.getSlides()[0]; Shape[] sh3 = slide3.getShapes(); for (int i2 = 0; i2 < sh3.length; i2++) { if (sh3[i2] instanceof Picture) { Picture pict1 = (Picture) sh3[i2]; PictureData pictData = pict1.getPictureData(); byte[] data = pictData.getData(); int type = pictData.getType(); if (type == Picture.JPEG) { FileOutputStream out3 = new FileOutputStream("slide0_" + i2 + ".jpg"); out3.write(data); out3.close(); } else if (type == Picture.PNG) { FileOutputStream out4 = new FileOutputStream("slide0_" + i2 + ".png"); out4.write(data); out4.close(); } } } // modify background of a slide master SlideMaster master = ppt.getSlidesMasters()[0]; Fill fill1 = master.getBackground().getFill(); int idx11 = ppt .addPicture(new File("E:\\logs\\clock.png"), Picture.PNG); fill1.setFillType(Fill.FILL_PICTURE); fill1.setPictureData(idx11); // read hyperlinks from a slide show Slide[] slide1 = ppt.getSlides(); for (int j = 0; j < slide1.length; j++) { // read hyperlinks from the text runs TextRun[] txt1 = slide1[j].getTextRuns(); if (txt1 == null || txt1.length == 0) { continue; } for (int k = 0; k < txt1.length; k++) { String text = txt1[k].getText(); Hyperlink[] links = txt1[k].getHyperlinks(); if (links != null) for (int l = 0; l < links.length; l++) { Hyperlink link = links[l]; String title1 = link.getTitle(); String address = link.getAddress(); String substring = text.substring(link.getStartIndex(), link.getEndIndex() - 1); // in ppt end index is // inclusive System.out.println(title1 + address + substring); } } // in PowerPoint you can assign a hyperlink to a shape without text, // for example to a Line object. The code below demonstrates how to // read such hyperlinks Shape[] sh = slide1[j].getShapes(); for (int k = 0; k < sh.length; k++) { Hyperlink link = sh[k].getHyperlink(); if (link != null) { String title1 = link.getTitle(); String address = link.getAddress(); System.out.println(title1 + address); } } } // table data String[][] data = { { "INPUT FILE", "NUMBER OF RECORDS" }, { "Item File", "11,559" }, { "Vendor File", "300" }, { "Purchase History File", "10,000" }, { "Total # of requisitions", "10,200,038" } }; // 创建表格 Slide slide11 = ppt.createSlide(); // create a table of 5 rows and 2 columns Table table = new Table(5, 2); for (int i = 0; i < data.length; i++) { for (int j = 0; j < data[i].length; j++) { TableCell cell = table.getCell(i, j); cell.setText(data[i][j]); RichTextRun rt11 = cell.getTextRun().getRichTextRuns()[0]; rt11.setFontName("Arial"); rt11.setFontSize(10); cell.setVerticalAlignment(TextBox.AnchorMiddle); cell.setHorizontalAlignment(TextBox.AlignCenter); } } // set table borders Line border = table.createBorder(); border.setLineColor(Color.black); border.setLineWidth(1.0); table.setAllBorders(border); // set width of the 1st column table.setColumnWidth(0, 300); // set width of the 2nd column table.setColumnWidth(1, 150); slide11.addShape(table); table.moveTo(100, 100); // retrieve embedded sounds 获取语音信息 SoundData[] sound = ppt.getSoundData(); for (int i = 0; i < sound.length; i++) { // save *WAV sounds on disk if (sound[i].getSoundType().equals(".WAV")) { FileOutputStream out1 = new FileOutputStream( sound[i].getSoundName()); out1.write(sound[i].getData()); out1.close(); } } ppt.write(out); out.close(); } }
发表评论
-
对字符串进行验证之前先进行规范化
2013-09-17 23:18 13947对字符串进行验证之前先进行规范化 应用系统中经常对字 ... -
使用telnet连接到基于spring的应用上执行容器中的bean的任意方法
2013-08-08 09:17 1471使用telnet连接到基于spring的应用上执行容器中 ... -
jdk7和8的一些新特性介绍
2013-07-06 16:07 10110更多ppt内容请查看:htt ... -
java对于接口和抽象类的代理实现,不需要有具体实现类
2013-06-12 09:50 2952原文链接:http://www.javaarch.net/j ... -
Excel2007格式分析和XML解析
2013-06-07 09:56 10728在物料清单采购中,用到excel上传文件解析功能,不 ... -
Java EE 7中对WebSocket 1.0的支持
2013-06-05 09:27 3837原文链接:http://www.javaarch.n ... -
java QRCode生成示例
2013-06-05 09:26 1510原文链接:http://www.javaarch.n ... -
Java Web使用swfobject调用flex图表
2013-05-28 19:05 1121Java Web使用swfobject调用 ... -
spring使用PropertyPlaceholderConfigurer扩展来满足不同环境的参数配置
2013-05-21 15:57 3332spring使用PropertyPlaceholderCon ... -
java国际化
2013-05-20 20:57 4472java国际化 本文来自:http://www.j ... -
RSS feeds with Java
2013-05-20 20:52 1214RSS feeds with Java 原文来自:htt ... -
使用ibatis将数据库从oracle迁移到mysql的几个修改点
2013-04-29 10:40 1674我们项目在公司的大战略下需要从oracle ... -
线上机器jvm dump分析脚本
2013-04-19 10:48 2905#!/bin/sh DUMP_PIDS=`p ... -
eclipse远程部署,静态文件实时同步插件
2013-04-06 20:18 5460eclipse 远程文件实时同步,eclipse远程 ... -
java价格处理的一个问题
2013-03-26 21:21 1829我们经常会处理一些价格,比如从运营上传的文件中将某 ... -
java 服务降级开关设计思路
2013-03-23 16:35 3764java 服务屏蔽开关系统,可以手工降级服务,关闭服 ... -
poi解析excel内存溢出
2013-03-20 22:21 6397真是悲剧啊,一个破内部使用系统20多个人使用的后 ... -
简单web安全框架
2013-03-16 11:56 1543web安全框架,主要用servlet filter方 ... -
基于servlet的简单的页面缓存框架
2013-03-11 19:27 1215基于servlet的页面级缓存框架的基本用法: 代码参考: ... -
Eclipse使用过程中出现java.lang.NoClassDefFoundError的解决方案
2013-02-01 17:22 1572如果jdk,classpath设置正确,突然在eclipse ...
相关推荐
在这个特定的话题中,我们将深入探讨如何利用Java POI来操作PPT(PowerPoint)文件。以下是关于这个主题的详细讲解: 1. **创建新的PPT文档** 使用Java POI创建一个新的PPT文档首先需要引入相关的库,例如`poi-...
在本示例程序中,我们关注的是如何使用Java和Apache POI库来操作PowerPoint(PPT)文件。POI 提供了丰富的API,使得开发者能够创建、修改、读取和展示PPT文件,而无需依赖Microsoft Office。 首先,我们需要理解...
在这个"poi操作ppt图表史上最完整示例演示.zip"压缩包中,我们主要关注的是如何使用Apache POI库来操作PowerPoint中的图表,包括圆饼图、柱状图、线性图和面积图。这些图表是数据可视化的重要工具,有助于更好地理解...
Java POI 是一个开源项目,由Apache软件基金会维护,它为开发者提供了在Java环境中读取、写入和修改Microsoft Office格式文件...通过深入理解并实践文档中的内容,你将能够熟练地利用Java POI进行各种复杂的文件操作。
在处理各种文档格式时,如PPT(PowerPoint)和PDF(Portable Document Format),Java提供了强大的库,如Apache POI和PDFBox。这两个库分别用于处理Microsoft Office文档和PDF文件。 Apache POI是Java中的一个开源...
Apache POI是一个强大的Java库,专门用于处理Microsoft Office格式的文件,如Excel(.xls和.xlsx)、Word(.doc和.docx)以及PowerPoint(.ppt和.pptx)。这个"最全的POI操作示例"集合了各种POI API的使用方法,旨在...
在本“poi操作ppt生成图表完整工程”中,我们将会深入探讨如何使用Apache POI库来创建和编辑PowerPoint文档中的图表。 首先,我们需要了解Apache POI提供的API。`XSLFSlideShow`是用于创建和修改PowerPoint幻灯片的...
标题中的“Poi-ppt.zip_885POICOM_PPT模板_javaPPT工具项目_poi ppt”表明这是一个基于Java的项目,利用Apache POI库来操作PPT模板,生成定制化的PPT文件。描述进一步确认了这一点,说明这个项目能够接受模板,并在...
Java POI 是一个开源项目,专门用于处理Microsoft Office文件,如Word(.doc/.docx)、Excel(.xls/.xlsx)和PowerPoint(.ppt/.pptx)等。在这个场景中,我们关注的是如何利用Java POI库通过Word模板生成包含特定...
- Java POI 是一套API,用于处理Microsoft Office格式的文件,如Excel (.xls), Word (.doc), PowerPoint (.ppt)等。 - 它提供了一种与Office格式兼容的方式来操作这些文件,使得开发者可以在不依赖Microsoft ...
在IT行业中,尤其是在数据处理和文档管理领域,Apache POI是一个非常重要的库,它允许开发者使用Java处理Microsoft Office格式的文件,如Excel、Word和PowerPoint。本篇将详细讲解如何利用Apache POI将不同类型的...
在这个特定的场景中,我们将探讨如何利用POI 3.17版本来操作PowerPoint(PPT)文件,特别是创建饼状图。饼状图是一种常用的可视化工具,用于展示数据中各部分的比例关系。以下是一些关键知识点: 1. **Apache POI ...
Java使用Poi导出PPT幻灯片java-poi,示例使用XMLSlideShow和XSLFSlide创建了一页胶片,并导入了一张图片,最后通过write方法导出成PPT幻灯片文件。
Java中的Apache POI库是处理Microsoft Office文档的强大工具,尤其在Excel操作方面。它允许开发者在Java应用程序中创建、修改和读取Excel文件。在进行批量导入和导出Excel数据时,Apache POI是一个非常实用的选择。...
8. **PowerPoint处理**:POI也允许开发者操作PPT和PPTX文件,创建幻灯片、添加文本、图片、动画效果等。 通过学习和理解这些核心概念,开发者可以使用Java POI库进行高效的Office文档处理,无论是在数据分析、自动...
Apache POI 是一个流行的 Java 库,用于读取和写入 Microsoft Office 格式的文件,如 Excel、Word 和 PowerPoint。在这个场景中,我们将专注于使用 POI 来在 PowerPoint(PPT)文件中创建多数据柱状图。Apache POI ...
以下是一个创建带有标题和内容的简单PPT文件的示例代码: ```java import org.apache.poi.xslf.usermodel.*; import java.io.FileOutputStream; import java.io.OutputStream; public class PPTExportExample { ...
1. **Apache POI** - 这是用于处理Microsoft Office格式(如Word、Excel和PowerPoint)的Java库。通过Apache POI,我们可以读取、写入和修改这些文件,并将其转换为其他格式,包括HTML。 2. **PDFBox** - 是Apache...
本篇文章将详细讲解如何利用Java实现生成PPT文件,主要涉及的技术栈是Apache POI库,这是一个强大的API,用于处理Microsoft Office格式的文档,包括PPTX。 首先,我们需要引入Apache POI库。在Maven项目中,可以在...