RTF转换为HTML格式(java)

弄了整整三天,终于搞定了,在此和大家分享一下我的收获,如有更好的解决方法,请指教,谢谢!

借鉴:rcom10002

想要做一个RTF转换TXT的代码,找了一圈,好不容易找了个折中的方法,先转HTML,然后提取HTML中的纯文本部分,下面把整个方法介绍一下。

一、第三方开发包

先简单介绍一下RTF格式相关的内容,摘自百度百科:

作为微软公司的标准文件,早期外间需要数十美元向微软付款,才能购买一本薄薄的RTF标准文件。不过随着采用RTF格式标准的软件愈来愈多,RTF格式也愈来愈普遍,微软公司就把标准文件公开,放在网上供开发者下载。现时可供下载的各个RTF版本标准文件如下:
  RTF 1.9.1 specification (March 2008)
  RTF 1.8 specification (April 2004)
  RTF 1.6 specification (May 1999)
  RTF 1.5 specification (April 1997)
  RTF 1.3 and 1.5 specifications
  RTF 1.0 specification (June 1992)
  RTF格式是许多软件都能够识别的文件格式。比如Word、WPS Office、Excel等都可以打开RTF格式的文件,这说明这种格式是较为通用的。
  RTF是Rich Text Format的缩写,意即多文本格式。这是一种类似DOC格式(Word文档)的文件,有很好的兼容性,使用Windows“附件”中的“写字板”就能打开并进行编辑。使用“写字板”打开一个RTF格式文件时,将看到文件的内容;如果要查看RTF格式文件的源代码,只要使用“记事本”将它打开就行了。这就是说,你完全可以像编辑HTML文件一样,使用“记事本”来编辑RTF格式文件。

忘记怎么找到WebCAT了,可能找太多、太乱,当时的关键词也没记住,http://webcat.sourceforge.net/,JavaDoc可以从这里http://webcat.sourceforge.net/javadocs/访问。WebCAT是葡萄牙里斯本大学的一个XXX什么的开发的(WebCAT was developed at the XLDB group of the Department of Informatics of the Faculty of Sciences of the University of Lisbon in Portugal.),其中提供的RTF2HTML可以很方便地把RTF文件转换成HTML文件,而且速度也还可以。不过只是针对文本,不能保留图片等资源,有些遗憾,但是并不影响转TXT的目的。

二、RTF转HTML

new RTF2HTML().convertRTFToHTML(new File(filename)),方法convertRTFToHTML会返回一个转换成HTML格式的字符串。

三:下载WEBCAT地址:http://download.csdn.net/detail/yongbuyanqi88888/8060051

 

四:使用该工具会出现中文格式乱码,解决方法如下:(红色字体部分)

 

String bodyText  =   null ;
        DefaultStyledDocument styledDoc 
= new DefaultStyledDocument();    //javax.swing.text.Document的一个实例
         try  {
            InputStream is 
=   new  FileInputStream( new  File( " data/java.swing.text读RTF文档测试.rtf " ));
            
new  RTFEditorKit().read(is, styledDoc,  0 );
            bodyText 
= new String(styledDoc.getText(0, styledDoc.getLength()).getBytes("ISO8859_1"));    //提取文本
        }  catch  (IOException e) {
            
throw   new  DocumentHandlerException( " 不能从RTF中摘录文本! " , e);
        } 
catch  (BadLocationException e) {
            
throw   new  DocumentHandlerException( " 不能从RTF中摘录文本! " , e);
        }
        System.out.println(bodyText);

 

RTF-HTML 终于解决了,接下来继续烟具HTML转换为RTF,嘿嘿,加油!

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值