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

借鉴: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,嘿嘿,加油!

RTF转换为HTML格式(java)相关推荐

  1. 将Rtf转换为Html格式

    工作需要,并且以前也没有做过,所以就在网上搜索有关方面的资料.还好,找到了一些,有现成的程序,也有提供动态库的,大多是国外的.我下载了几个,试了试,还是有点问题的.原来的纯文本.带一些格式并且为中文的 ...

  2. Word处理控件Aspose.Words功能演示:使用 Java 将 RTF 转换为 PDF

    Aspose.Words 是一种高级Word文档处理API,用于执行各种文档管理和操作任务.API支持生成,修改,转换,呈现和打印文档,而无需在跨平台应用程序中直接使用Microsoft Word.此 ...

  3. java pdf 多页转换为png格式的图片

    java pdf 多页转换为png格式的图片  适用于 无论pdf有多少页均可 废话不说,直接上代码 import java.awt.Graphics; import java.awt.image.B ...

  4. linux java amr转mp3_本工具用于将微信语音 amr 格式转换为 mp3 格式以便在 html5 的 audio 标签中进行播放...

    音频转码工具 本工具主要用于将微信语音 amr 格式转换为 mp3 格式以便在 html5 的 audio 标签中进行播放. 支持 Linux/Windows/Mac 平台 因为是基于 JAVE 项目 ...

  5. java amr音频转码_jave: 音频转码工具,主要用于将微信语音 amr 格式转换为 mp3 格式以便在 html5 的 audio 标签中进行播放...

    音频转码工具 本工具主要用于将微信语音 amr 格式转换为 mp3 格式以便在 html5 的 audio 标签中进行播放. 支持 Linux/Windows/Mac 平台 因为是基于 JAVE 项目 ...

  6. Java操作word文档将docx转换为pdf格式

    Java操作word文档将docx转换为pdf格式 一.整体说明 在上传 Office 课件时,格式有:doc,docx,xls,xlsx,ppt,pptx,程序需要将其 转换成 pdf 格式, 才能 ...

  7. java gif转jpg_Java gif图片转换为jpg格式

    下面通过代码给大家介绍Java gif图片转换为jpg格式,具体代码如下所示: if(fileName.toLowerCase().endsWith(".gif")){//由于头像 ...

  8. java gif转jpg_Java gif图片转换为jpg格式|chu

    下面通过代码给大家介绍Java gif图片转换为jpg格式,具体代码如下所示: if(fileName.toLowerCase().endsWith(".gif")){//由于头像 ...

  9. java gif jpg_Java gif图片转换为jpg格式

    下面通过代码给大家介绍Java gif图片转换为jpg格式,具体代码如下所示: if(fileName.toLowerCase().endsWith(".gif")){//由于头像 ...

  10. JAVA实现bmp转换JPEG_Java gif图片转换为jpg格式

    下面通过代码给大家介绍Java gif图片转换为jpg格式,具体代码如下所示: if(fileName.toLowerCase().endsWith(".gif")){//由于头像 ...

最新文章

  1. 新建eclipse的java项目报错处理
  2. 普通粒子群算法和优化方法
  3. SQL面试题: 数据库中有A B C三列,用SQL语句实现:当A列大于B列时选择A列否则选择B列 ,当B列大于C列时选择B列否则选择C列 ,...
  4. 用D触发器构造边沿触发器
  5. 如何鉴定相亲对象是否约过炮?PM们是这样干的...
  6. java中实现将十六进制按位取反
  7. 教你如何用计算机玩游戏,《永恒战士2》教你如何在PC电脑上玩秘籍
  8. Java+XML+MVC框架StrutsCX简介[转]
  9. IOT(7)---MQTT
  10. 服务器虚拟化平台 可信云认证,100%满足规范,华为云Stack首批通过可信云虚拟化云平台最高等级认证...
  11. 点云 高斯 曲率matlab,计算三维散乱点云的曲率,包括主曲率,高斯曲率和平均曲率...
  12. 跳出公式,看清全局,图神经网络(GCN)原理详解
  13. 使用mmdetection检测并存储结果
  14. java计算机毕业设计运动会管理系统源码+mysql数据库+系统+lw文档+部署
  15. IP地址规划设计技术
  16. 《电路》邱关源 思维导图 第五章-含有运算放大器的电阻电路
  17. 数值计算之第二期:误差分析
  18. oreo另一个意思_墓碑上的“故,显,考,妣”是什么意思?
  19. 支付宝配置沙箱测试android,个人开发者使用支付宝沙箱环境进行代码调试
  20. 使用Java统计英文文章的单词频率。

热门文章

  1. flac转mp3教程flac怎么转mp3才能减小音质的丢失
  2. Hibernate中@Embedded和@Embeddable注解的使用
  3. 常规恢复_不完全恢复_丢失控制文件
  4. 什么是飞书机器人?如何定时发送飞书机器人消息?
  5. Microbiome:粪菌移植改善自闭症Fecal microbiota transplant (FMT)
  6. 华为HCNA中vlan笔记
  7. 交换机console接口设置密码
  8. vue父组件通过v-for循环多次调用同一个子组件,改变被循环数组个数,各子组件显示数据混乱
  9. 从输入URL到页面加载的过程?由一道题完善自己的Web前端知识体系!
  10. C++17 结构化绑定