最近弄个程序,想把ppt里的内容读取出来然后显示在网页上,郁闷。网上的代码都不行。都是转载的!好像做这方面的人很少,
请各位高手帮忙。

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【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
      

  2.   

    不知楼主用不用 spring   它对ppt 也有支持的 你不放看一下《spring专业开发指南》 这本书
      

  3.   

    都行。好像poi有这个,还有jacob但是都没有具体例子,郁闷。高手帮忙啊。
      

  4.   

    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 你可以参考一下 呵呵
      

  5.   

    利用Apache POI组件可以实现相应的功能!