一般人不会!java抽取ppt 最近弄个程序,想把ppt里的内容读取出来然后显示在网页上,郁闷。网上的代码都不行。都是转载的!好像做这方面的人很少,请各位高手帮忙。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 此回复为自动发出,仅用于显示而已,并无任何其他特殊作用楼主【xu8863626】截止到2008-08-02 08:57:01的历史汇总数据(不包括此帖):发帖的总数量:10 发帖的总分数:180 每贴平均分数:18 回帖的总数量:7 得分贴总数量:0 回帖的得分率:0% 结贴的总数量:10 结贴的总分数:180 无满意结贴数:1 无满意结贴分:20 未结的帖子数:0 未结的总分数:0 结贴的百分比:100.00% 结分的百分比:100.00% 无满意结贴率:10.00 % 无满意结分率:11.11 % 敬礼!取消马甲机器人,请点这里:http://www.java2000.net/mycsdn/robotStop.jsp?usern=xu8863626 不知楼主用不用 spring 它对ppt 也有支持的 你不放看一下《spring专业开发指南》 这本书 都行。好像poi有这个,还有jacob但是都没有具体例子,郁闷。高手帮忙啊。 package com.bit.dlde.resourcetrans.text.extraction.ppt;import com.bit.dlde.resourcetrans.text.extraction.Extractor;import com.bit.dlde.resourcetrans.text.extraction.pdf.PdfExtractor;import java.io.FileInputStream;import java.io.IOException;import java.util.HashMap;import org.apache.poi.hpsf.PropertySetFactory;import org.apache.poi.hpsf.SummaryInformation;import org.apache.poi.hslf.extractor.PowerPointExtractor;import org.apache.poi.poifs.eventfilesystem.POIFSReader;import org.apache.poi.poifs.eventfilesystem.POIFSReaderEvent;import org.apache.poi.poifs.eventfilesystem.POIFSReaderListener;/** * 解析PPt文件 */public class PPTExtractor extends Extractor { private String filename = null; private static String title = null; private static String author = null; private static String subject = null; private static String text = null; private static int pageCount = 0; private FileInputStream fileInputStream = null; public PPTExtractor(String filename) { // TODO Auto-generated method stub this.filename = filename; try { PPTExtractor.text=this.getText(); PPTExtractor.title=this.getTitle(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * @return the text * @uml.property name="text" */ public String getText() throws IOException { // TODO Auto-generated method stub String text = null; fileInputStream = new FileInputStream(filename); PowerPointExtractor ppe = new PowerPointExtractor(fileInputStream); text = ppe.getText(); ppe.close(); fileInputStream.close(); return text; } /** * @return the author * @uml.property name="author" */ public String getAuthor() throws IOException { // TODO Auto-generated method stub POIFSReader r = new POIFSReader(); fileInputStream = new FileInputStream(filename); r.registerListener(new AuthorPOIFSReaderListener(), "\005SummaryInformation"); r.read(fileInputStream); fileInputStream.close(); if (author == null) { author = ""; } return author; } /** * @return the title * @uml.property name="title" */ public String getTitle() throws IOException { // TODO Auto-generated method stub POIFSReader r = new POIFSReader(); fileInputStream = new FileInputStream(filename); r.registerListener(new TitlePOIFSReaderListener(), "\005SummaryInformation"); r.read(fileInputStream); fileInputStream.close(); if (title == null) { title = ""; } return title; } /** * @return the subject * @uml.property name="subject" */ public String getSubject() throws IOException { // TODO Auto-generated method stub POIFSReader r = new POIFSReader(); fileInputStream = new FileInputStream(filename); r.registerListener(new SubjectPOIFSReaderListener(), "\005SummaryInformation"); r.read(fileInputStream); fileInputStream.close(); if (subject == null) { subject = ""; } return subject; } /** * @return the pageCount * @uml.property name="pageCount" */ public int getPageCount() throws IOException { // TODO Auto-generated method stub POIFSReader r = new POIFSReader(); fileInputStream = new FileInputStream(filename); r.registerListener(new PageCountPOIFSReaderListener(), "\005SummaryInformation"); r.read(fileInputStream); fileInputStream.close(); return pageCount; } /** * @author 张琨 *用来一次性得到全部信息 */ public HashMap getTotaltext(){ // TODO Auto-generated method stub HashMap<Integer,String> hm =new HashMap<Integer,String>(); hm.put(1,PPTExtractor.title ); hm.put(2, PPTExtractor.text); hm.put(3, "null"); return hm; } static class TitlePOIFSReaderListener implements POIFSReaderListener { public void processPOIFSReaderEvent(POIFSReaderEvent event) { // TODO Auto-generated method stub SummaryInformation si = null; try { si = (SummaryInformation) PropertySetFactory.create(event .getStream()); } catch (Exception ex) { throw new RuntimeException("属性集流\"" + event.getPath() + event.getName() + "\": " + ex); } title = si.getTitle(); // if (title != null) // System.out.println("标题: \"" + title + "\""); // else // System.out.println("该文档没有标题."); } } static class AuthorPOIFSReaderListener implements POIFSReaderListener { public void processPOIFSReaderEvent(POIFSReaderEvent event) { // TODO Auto-generated method stub SummaryInformation si = null; try { si = (SummaryInformation) PropertySetFactory.create(event .getStream()); } catch (Exception ex) { throw new RuntimeException("属性集流\"" + event.getPath() + event.getName() + "\": " + ex); } author = si.getAuthor(); } } static class SubjectPOIFSReaderListener implements POIFSReaderListener { public void processPOIFSReaderEvent(POIFSReaderEvent event) { // TODO Auto-generated method stub SummaryInformation si = null; try { si = (SummaryInformation) PropertySetFactory.create(event .getStream()); } catch (Exception ex) { throw new RuntimeException("属性集流\"" + event.getPath() + event.getName() + "\": " + ex); } subject = si.getSubject(); } } static class PageCountPOIFSReaderListener implements POIFSReaderListener { public void processPOIFSReaderEvent(POIFSReaderEvent event) { // TODO Auto-generated method stub SummaryInformation si = null; try { si = (SummaryInformation) PropertySetFactory.create(event .getStream()); } catch (Exception ex) { throw new RuntimeException("属性集流\"" + event.getPath() + event.getName() + "\": " + ex); } pageCount = si.getPageCount(); } }}// 这是我以前做项目时写的demo 你可以参考一下 呵呵 利用Apache POI组件可以实现相应的功能! jre1.5和tomcat5.5 配置出现问题 java得到访问者的IP cab弄成的控件怎样与数据库连接? JSP聊天室源码 关于lucene的N个问题。。高手帮忙解决 SQL通用防注入程序(jsp版)--利用filter 一个服务器上两个不同的web应用程序,设置域名 报错说找不到javabean的类?? 请高手们指点新手如何学习jsp? 再jsp中如何获取文件头? 如何实现自动跳转页面 50分! 怎么实现相册功能
楼主【xu8863626】截止到2008-08-02 08:57:01的历史汇总数据(不包括此帖):
发帖的总数量:10 发帖的总分数:180 每贴平均分数:18
回帖的总数量:7 得分贴总数量:0 回帖的得分率:0%
结贴的总数量:10 结贴的总分数:180
无满意结贴数:1 无满意结贴分:20
未结的帖子数:0 未结的总分数:0
结贴的百分比:100.00% 结分的百分比:100.00%
无满意结贴率:10.00 % 无满意结分率:11.11 %
敬礼!
取消马甲机器人,请点这里:http://www.java2000.net/mycsdn/robotStop.jsp?usern=xu8863626
import com.bit.dlde.resourcetrans.text.extraction.pdf.PdfExtractor;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.HashMap;
import org.apache.poi.hpsf.PropertySetFactory;
import org.apache.poi.hpsf.SummaryInformation;
import org.apache.poi.hslf.extractor.PowerPointExtractor;
import org.apache.poi.poifs.eventfilesystem.POIFSReader;
import org.apache.poi.poifs.eventfilesystem.POIFSReaderEvent;
import org.apache.poi.poifs.eventfilesystem.POIFSReaderListener;/**
* 解析PPt文件
*/
public class PPTExtractor extends Extractor {
private String filename = null; private static String title = null; private static String author = null; private static String subject = null; private static String text = null;
private static int pageCount = 0; private FileInputStream fileInputStream = null; public PPTExtractor(String filename) {
// TODO Auto-generated method stub
this.filename = filename;
try {
PPTExtractor.text=this.getText();
PPTExtractor.title=this.getTitle();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} /**
* @return the text
* @uml.property name="text"
*/
public String getText() throws IOException {
// TODO Auto-generated method stub
String text = null;
fileInputStream = new FileInputStream(filename);
PowerPointExtractor ppe = new PowerPointExtractor(fileInputStream);
text = ppe.getText();
ppe.close();
fileInputStream.close();
return text;
} /**
* @return the author
* @uml.property name="author"
*/
public String getAuthor() throws IOException {
// TODO Auto-generated method stub
POIFSReader r = new POIFSReader();
fileInputStream = new FileInputStream(filename);
r.registerListener(new AuthorPOIFSReaderListener(),
"\005SummaryInformation");
r.read(fileInputStream);
fileInputStream.close();
if (author == null) {
author = "";
}
return author;
} /**
* @return the title
* @uml.property name="title"
*/
public String getTitle() throws IOException {
// TODO Auto-generated method stub
POIFSReader r = new POIFSReader();
fileInputStream = new FileInputStream(filename);
r.registerListener(new TitlePOIFSReaderListener(),
"\005SummaryInformation");
r.read(fileInputStream);
fileInputStream.close();
if (title == null) {
title = "";
}
return title;
} /**
* @return the subject
* @uml.property name="subject"
*/
public String getSubject() throws IOException {
// TODO Auto-generated method stub
POIFSReader r = new POIFSReader();
fileInputStream = new FileInputStream(filename);
r.registerListener(new SubjectPOIFSReaderListener(),
"\005SummaryInformation");
r.read(fileInputStream);
fileInputStream.close();
if (subject == null) {
subject = "";
}
return subject;
} /**
* @return the pageCount
* @uml.property name="pageCount"
*/
public int getPageCount() throws IOException {
// TODO Auto-generated method stub
POIFSReader r = new POIFSReader();
fileInputStream = new FileInputStream(filename);
r.registerListener(new PageCountPOIFSReaderListener(),
"\005SummaryInformation");
r.read(fileInputStream);
fileInputStream.close();
return pageCount;
} /**
* @author 张琨
*用来一次性得到全部信息
*/
public HashMap getTotaltext(){
// TODO Auto-generated method stub
HashMap<Integer,String> hm =new HashMap<Integer,String>();
hm.put(1,PPTExtractor.title );
hm.put(2, PPTExtractor.text);
hm.put(3, "null");
return hm;
}
static class TitlePOIFSReaderListener implements POIFSReaderListener { public void processPOIFSReaderEvent(POIFSReaderEvent event) {
// TODO Auto-generated method stub
SummaryInformation si = null;
try {
si = (SummaryInformation) PropertySetFactory.create(event
.getStream());
} catch (Exception ex) {
throw new RuntimeException("属性集流\"" + event.getPath()
+ event.getName() + "\": " + ex);
} title = si.getTitle(); // if (title != null)
// System.out.println("标题: \"" + title + "\"");
// else
// System.out.println("该文档没有标题.");
} } static class AuthorPOIFSReaderListener implements POIFSReaderListener { public void processPOIFSReaderEvent(POIFSReaderEvent event) {
// TODO Auto-generated method stub
SummaryInformation si = null;
try {
si = (SummaryInformation) PropertySetFactory.create(event
.getStream());
} catch (Exception ex) {
throw new RuntimeException("属性集流\"" + event.getPath()
+ event.getName() + "\": " + ex);
} author = si.getAuthor();
}
} static class SubjectPOIFSReaderListener implements POIFSReaderListener { public void processPOIFSReaderEvent(POIFSReaderEvent event) {
// TODO Auto-generated method stub
SummaryInformation si = null;
try {
si = (SummaryInformation) PropertySetFactory.create(event
.getStream());
} catch (Exception ex) {
throw new RuntimeException("属性集流\"" + event.getPath()
+ event.getName() + "\": " + ex);
}
subject = si.getSubject();
}
} static class PageCountPOIFSReaderListener implements POIFSReaderListener { public void processPOIFSReaderEvent(POIFSReaderEvent event) {
// TODO Auto-generated method stub
SummaryInformation si = null;
try {
si = (SummaryInformation) PropertySetFactory.create(event
.getStream());
} catch (Exception ex) {
throw new RuntimeException("属性集流\"" + event.getPath()
+ event.getName() + "\": " + ex);
}
pageCount = si.getPageCount();
}
}}
// 这是我以前做项目时写的demo 你可以参考一下 呵呵