这个太弱了,几乎不能用,给个代码自已看看吧import java.io.*;
import java.util.*;import org.apache.poi.poifs.filesystem.*;
import org.apache.poi.util.*;
import wfc.service.log.*;
import wfc.service.util.*;public class WordParser
extends IParser { /**
* 解析文档, 获得文档正文
* @param content 原始文档内容
* @return 文档正文
*/
public String parseFromContent(String content) {
InputStream stream = new ByteArrayInputStream(content.getBytes());
return parse(stream);
} /**
* 解析文档, 获得文档正文
* @param filename 文件名称
* @return 文档正文
*/
public String parseFromFile(String filename) {
try {
InputStream stream = new FileInputStream(filename);
return parse(stream);
}
catch (FileNotFoundException ex) {
Log.error(ex);
return null;
}
} private String parse(InputStream stream) {
try {
POIFSFileSystem fs = new POIFSFileSystem(stream);
DirectoryEntry rootEntry = fs.getRoot();
StringWriter writer = new StringWriter();
recurse(rootEntry, writer);
return new String(writer.getBuffer());
}
catch (IOException ex) {
Log.error(ex);
return null;
}
} private void recurse(Entry entry, StringWriter writer) throws IOException {
if (entry instanceof DirectoryEntry) {
DirectoryEntry dirEntry = (DirectoryEntry) entry;
for (Iterator iter = dirEntry.getEntries(); iter.hasNext(); ) {
Entry e = (Entry) iter.next();
recurse(e, writer);
}
}
else if (entry instanceof DocumentEntry &&
"WordDocument".equals(entry.getName())) {
DocumentEntry docEntry = (DocumentEntry) entry;
DocumentInputStream dis = new DocumentInputStream(docEntry);
byte[] by = StreamHelper.toByteArray(dis);
writer.write(StringUtil.getFromUnicodeHigh(by));
}
}}
import java.util.*;import org.apache.poi.poifs.filesystem.*;
import org.apache.poi.util.*;
import wfc.service.log.*;
import wfc.service.util.*;public class WordParser
extends IParser { /**
* 解析文档, 获得文档正文
* @param content 原始文档内容
* @return 文档正文
*/
public String parseFromContent(String content) {
InputStream stream = new ByteArrayInputStream(content.getBytes());
return parse(stream);
} /**
* 解析文档, 获得文档正文
* @param filename 文件名称
* @return 文档正文
*/
public String parseFromFile(String filename) {
try {
InputStream stream = new FileInputStream(filename);
return parse(stream);
}
catch (FileNotFoundException ex) {
Log.error(ex);
return null;
}
} private String parse(InputStream stream) {
try {
POIFSFileSystem fs = new POIFSFileSystem(stream);
DirectoryEntry rootEntry = fs.getRoot();
StringWriter writer = new StringWriter();
recurse(rootEntry, writer);
return new String(writer.getBuffer());
}
catch (IOException ex) {
Log.error(ex);
return null;
}
} private void recurse(Entry entry, StringWriter writer) throws IOException {
if (entry instanceof DirectoryEntry) {
DirectoryEntry dirEntry = (DirectoryEntry) entry;
for (Iterator iter = dirEntry.getEntries(); iter.hasNext(); ) {
Entry e = (Entry) iter.next();
recurse(e, writer);
}
}
else if (entry instanceof DocumentEntry &&
"WordDocument".equals(entry.getName())) {
DocumentEntry docEntry = (DocumentEntry) entry;
DocumentInputStream dis = new DocumentInputStream(docEntry);
byte[] by = StreamHelper.toByteArray(dis);
writer.write(StringUtil.getFromUnicodeHigh(by));
}
}}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货