KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > contineo > core > text > parser > PPTParser


1 package org.contineo.core.text.parser;
2
3 import java.io.File JavaDoc;
4 import java.io.FileInputStream JavaDoc;
5 import java.io.InputStream JavaDoc;
6 import org.apache.log4j.Level;
7 import org.apache.log4j.Logger;
8 import org.apache.poi.poifs.eventfilesystem.POIFSReader;
9 import org.apache.poi.poifs.eventfilesystem.POIFSReaderEvent;
10 import org.apache.poi.poifs.eventfilesystem.POIFSReaderListener;
11 import org.apache.poi.poifs.filesystem.DocumentInputStream;
12 import org.contineo.core.LoggingManager;
13
14 /**
15  * Created on 23.12.2004
16  * @author Michael Scholz
17  */

18 public class PPTParser implements Parser, POIFSReaderListener {
19     
20     private InputStream JavaDoc input;
21     private Logger logger;
22     private StringBuffer JavaDoc content;
23
24     /**
25      *
26      */

27     public PPTParser(File JavaDoc file) {
28         content = new StringBuffer JavaDoc("");
29         logger = LoggingManager.getLogger(this.getClass());
30         init(file);
31     }
32
33     /* (non-Javadoc)
34      * @see org.contineo.core.text.parser.Parser#getVersion()
35      */

36     public String JavaDoc getVersion() {
37         return "";
38     }
39
40     /* (non-Javadoc)
41      * @see org.contineo.core.text.parser.Parser#getContent()
42      */

43     /**
44      * @return Returns the content.
45      * @uml.property name="content"
46      */

47     public StringBuffer JavaDoc getContent() {
48         return content;
49     }
50     
51     public void init(File JavaDoc file) {
52         try {
53             input = new FileInputStream JavaDoc(file);
54             POIFSReader reader = new POIFSReader();
55             reader.registerListener(this);
56             reader.read(input);
57         } catch (Exception JavaDoc ex) {
58             if (logger.isEnabledFor(Level.ERROR))
59                 logger.error(ex.getMessage());
60         } finally {
61             if (input != null) {
62                 try {
63                     input.close();
64                 } catch (Exception JavaDoc ex) {
65                     if (logger.isEnabledFor(Level.ERROR))
66                         logger.error(ex.getMessage());
67                 }
68             }
69         }
70     }
71
72     public void processPOIFSReaderEvent(POIFSReaderEvent event) {
73         try{
74             if(!event.getName().equalsIgnoreCase("PowerPoint Document"))
75                 return;
76             DocumentInputStream input = event.getStream();
77             int letter = 0;
78             StringBuffer JavaDoc word = new StringBuffer JavaDoc();
79             boolean separator = true;
80             while ((letter = input.read()) != -1) {
81                 if ((letter > 64 && letter < 91) || (letter > 96 && letter < 123)) {
82                     word.append((char)letter);
83                     separator = true;
84                 } else {
85                     if (letter == 196 || letter == 214 || letter == 220 || letter == 223 ||
86                             letter == 228 || letter == 246 || letter == 252) {
87                         word.append((char)letter);
88                         separator = true;
89                     } else {
90                         if (letter == 32)
91                             content.append((char)32);
92                         if (separator && letter != 0) {
93                             if (word.length() > 2) {
94                                 content.append(word);
95                                 content.append((char)32);
96                             }
97                             word = new StringBuffer JavaDoc();
98                             separator = false;
99                         }
100                     }
101                 }
102             }
103         } catch (Exception JavaDoc ex) {
104             if (logger.isEnabledFor(Level.ERROR))
105                 logger.error(ex.getMessage());
106         }
107     }
108
109     /* (non-Javadoc)
110      * @see org.contineo.core.text.parser.Parser#getAuthor()
111      */

112     public String JavaDoc getAuthor() {
113         return "";
114     }
115
116     /* (non-Javadoc)
117      * @see org.contineo.core.text.parser.Parser#getSourceDate()
118      */

119     public String JavaDoc getSourceDate() {
120         return "";
121     }
122
123     /* (non-Javadoc)
124      * @see org.contineo.core.text.parser.Parser#getKeywords()
125      */

126     public String JavaDoc getKeywords() {
127         return "";
128     }
129
130     /* (non-Javadoc)
131      * @see org.contineo.core.text.parser.Parser#getTitle()
132      */

133     /**
134      * @return Returns the title.
135      * @uml.property name="title"
136      */

137     public String JavaDoc getTitle() {
138         return "";
139     }
140 }
141
Popular Tags