pure java读取rtf文档???
各位大虾,小弟正在编写全文索引功能,需要索引的文档都为.rtf/.txt,但是.rtf读出来之后全是看不懂的乱码,这样就无法与用户输入的字符串匹配。小弟为此头痛不已,都已经在网上查找了一个星期的资料了,还是全无办法,请各位大虾不吝赐教,感激不尽!或者根据我的题目,如果各位大虾有更好的解决方案,请提出来大家探讨探讨。至于分数,大家不用担心,定不少给。再次感谢了! 问题点数:0、回复次数:12Top
1 楼etre(林荃)回复于 2003-11-04 08:53:03 得分 0
对于txt就不用说了,好做,对于rtf其实也很好做的,java本身代了读取rft的控件,你可以用的。其实就rft文档也是文体的,你可以用一般的工作打开的。只是它里面加了很多的显示属性。
如果对应的是WORD文档的话,做起来就有点难了,尤其是用纯Java的。Top
2 楼liusy_2001(笑着悲伤)回复于 2003-11-04 09:13:00 得分 0
能不能说得清楚一点,因为我问了很多人,都说要用控件。我实在不清楚java本身带了读取rtf的控件?最好能给一小段代码,谢谢了。Top
3 楼liad()回复于 2003-11-04 09:45:27 得分 0
http://javaresearch.gro.clinux.org/jdk140/javax/swing/text/rtf/package.html
不知能不能用,我没有试过Top
4 楼lcz022(阿五)回复于 2003-11-04 10:20:20 得分 0
javax.swing.text.rtf.RTFEditorKit
read(InputStream in, Document doc, int pos);
read(Reader in, Document doc, int pos)
write(OutputStream out, Document doc, int pos, int len)
write(Writer out, Document doc, int pos, int len)
提供四个方法可以用。Top
5 楼vcvj([Reside]in Fuzhou, [Gonna]be Oversea, [Depositing)回复于 2003-11-04 10:54:41 得分 0
javax.swing.text.rtf.RTFEditorKit
Support itTop
6 楼liusy_2001(笑着悲伤)回复于 2003-11-04 12:31:02 得分 0
我用过RTFEditorKit这个类,读出来的还是子节流
{\rtf1\ansi\ansicpg936\deff0\deflang1033\deflangfe2052{\fonttbl{\f0\fmodern\fprq6\fcharset134 \'cb\'ce\'cc\'e5;}}
\viewkind4\uc1\pard\lang2052\f0\fs20 rtf\'ce\'c4\'b5\'b5\par
\par
}
和记事本打开的效果一样Top
7 楼liusy_2001(笑着悲伤)回复于 2003-11-05 08:19:00 得分 0
没有人知道了吗?Top
8 楼jinxianhe(仙鹤)回复于 2003-11-05 09:01:13 得分 0
我知道 apache poi项目专门解决读word和excel文件的,
你可以看看,pure java
http://jakarta.apache.org/poi/Top
9 楼liusy_2001(笑着悲伤)回复于 2003-11-05 15:02:39 得分 0
jinxianhe兄,我看过了poi的东西,他们的excel功能是做得挺强的,不过针对word部分还在开发之中,你用过吗?Top
10 楼jinxianhe(仙鹤)回复于 2003-11-06 08:38:19 得分 0
针对word部分还没有用过。:)
针对excel功能也只是做了一个jsp读excel文件的例子和Servlet写excel的例子,
而且还是抄来的 :)Top
11 楼OExpress(浪子猫)回复于 2003-11-06 09:21:31 得分 0
使用JEditorPane子类可以显示RTF文档。
Top
12 楼emate(化石)回复于 2004-03-23 12:24:48 得分 0
我认为这个是没有办法的,如果是用word或者类似兼容的编辑器生成的rtf文档,会做相应的转码(可能更加ms的某种规范),所以读出来字节流是正常的;如果是用java自己生成的(这个俺在行^_^),就可以看到一般的字符。
所以,我觉得可行的方法是,把重点放在如何去解析这些“'c4\'b5\'b5”成为汉字,这个才是王道 ^_^
Top




