JAVA提取纯文本_从常见文档中提取纯文本内容 | IT人生录
要想使用Lucene检索office文档(word、excel、ppt等)、PDF、HTML文档,通常的处理策略是先从这些文档中提取出纯文本,然后再进行相关索引处理等。
一、从office中提取纯文本
从office文件中提取纯文本,可以使用POI(http://poi.apache.org/),最新版本为3.8。从office文件中提取纯文本方法很简单。只需要两行代码即可。
POITextExtractor extractor = ExtractorFactory.createExtractor(is);
String contents = extractor.getText();
第一行中传入的is参数为office文件的inputstream。这里不分word、excle还是ppt,不区分03版还是07版,只需要将文件的inputStream传入此方法中。再使用extractor.getText()。得到的即为office文件的纯文本数据。
注意:有时候可能由于文件的源访问,导致提取的纯文本里面有一些特殊字符,可以使用下面的方法过滤掉。
/**
* 过滤特殊字符
*
* @param contents
* @return
*/
public static String filterSpecialChar(String contents) {
contents = contents.replace('\u0003', '\u0000');
contents = contents.replace('\u0004', '\u0000');
contents = contents.replace('\u000b', '\u0000');
contents = contents.replace('\u000c', '\u0000');
contents = contents.replace('\u0007', '\u0000');
contents = contents.replace('\u0008', '\u0000');
contents = contents.replace('\u0013', '\u0000');
contents = contents.replace('\u0014', '\u0000');
contents = contents.replace('\u0015', '\u0000');
contents = contents.replace('\u0016', '\u0000');
contents = contents.replace('\u0020', '\u0000');
return contents;
}
二、从PDF中提取纯文本
从PDF中提取纯文本,可以使用PDFBox组件(http://pdfbox.apache.org/),最新版本为1.7.1。需要的jar包为:pdfbox、fontbox、jempbox等,最好再加上pdfbox-lucene。
如果使用了pdfbox-lucene的包,则不用自己写pdfbox的处理方法,直接调用相关方法(LucenePDFDocument类里面)就行了,这里介绍,如何手写实现,也很简单。
PDDocument pdfDocument = PDDocument.load(is);
if (pdfDocument.isEncrypted()) {
// 仅仅尝试使用默认密码打开加密的PDF
pdfDocument.decrypt("");
}
// 创建一个writer用来作来存储文件正文
StringWriter writer = new StringWriter();
if (stripper == null) {
stripper = new PDFTextStripper();
} else {
stripper.resetEngine();
}
stripper.writeText(pdfDocument, writer);
String contents = writer.getBuffer().toString();
上面is同样为PDF文件的inputStream。下面的contents为提取到的PDF的纯文本内容。
三、从HTML文件中提取正文
从HTML文件中提取正文,简单说就是去除HTML文件中的HTML标签,这处常用的方法有许多,如使用正则表达式、html parse等。这里我们使用JSOUP,这个更方便快捷。可以参考我以前写的一篇文章:使用JSOUP处理HTML文档
在获取到Document之后,使用String text = document.text(); 即可获取到纯文本数据。
JAVA提取纯文本_从常见文档中提取纯文本内容 | IT人生录相关推荐
- Java使用 PDFBox 2.0 从 PDF 文档中读取所有文本
在本教程中,我们将学习在 Java 程序中使用 PDFBox 2.0 库从 pdf 文档中读取所有文本. PDF 文档可能包含文本.嵌入图像等作为其内容.PDFBox 中的 PDFTextStripp ...
- java中用流提取文档中的文字,语言实现从word文档中提取文本
word中提取中文 打开Word,CTRL+F打开"查找替换"对话框. 点击下方的"查找替换"对话框的"高级"按钮. 点击"特殊字 ...
- Word处理控件Aspose.Words功能演示:用Java从Word文档中提取文本
Aspose.Words For .NET是一种高级Word文档处理API,用于执行各种文档管理和操作任务.API支持生成,修改,转换,呈现和打印文档,而无需在跨平台应用程序中直接使用Microsof ...
- java imageio删除图片_Java 提取、替换、删除PDF文档中的图片
在一篇文章里,配有与文本信息相得益彰的图片,不仅能够活跃与美化版面,同时也有利于提高文章的可读性和阅读效果,从而增强其吸引力.同时,对文档中已存在图片的处理也尤为重要.本文将通过使用Java程序来演示 ...
- Word处理控件Aspose.Words功能演示:从 Java 中的 Word 文档中提取图像
图像通常用于表示 Word 文档中的重要信息.在文本旁边包含图像使内容更具吸引力.在某些情况下,您可能需要以编程方式提取嵌入在 Word 文档中的图像.为此,本文介绍了如何使用 Java 从 Word ...
- php 提取文字,如何使用PHP从word文档中提取文本内容?
我想用PHP从word文档中提取文本内容. 我在Microsoft Word for Mac 2011中创建了一个新的单词文档. 编辑:也通过在Windows 7中的Microsoft Word中创建 ...
- Word处理控件Aspose.Words功能演示:在 C# 中从 Word 文档中提取文本
从 Word 文档中提取文本通常在不同的场景中执行.例如,分析文本,提取文档的特定部分并将它们组合成单个文档,等等.在本文中,您将学习如何使用 C# 以编程方式从 Word 文档中提取文本.此外,我们 ...
- [翻译] DTCoreText 从HTML文档中创建富文本
DTCoreText 从HTML文档中创建富文本 https://github.com/Cocoanetics/DTCoreText 注意哦亲,DTRichTextEditor 这个组件是收费的,不贵 ...
- 如何(以及为什么)在Word文档中使用隐藏文本
Word lets you hide text so you can read or print your document as if the text isn't there. This migh ...
- 9款免费的OCR工具,从扫描的PDF文档中提取文字
Windows 10有OCR吗? Windows 10 具有适用于所有应用程序的内置OCR服务. 令人惊讶的是,这是Windows搜索工具. 查看如何使用它: 步骤 1. 打开您要扫描的照片.PDF或 ...
最新文章
- 启动mysql服务是报错找不到pid_mysql报错 The server quit without updating PID file
- numpy中的matrix矩阵处理
- HTMLTestRunner加入logging输出
- Shiro的Base64和MD5加密的使用
- python定时器5秒执行一次_PLC编程之“自切断”定时器
- pl/sql developer 安装svn插件 64位
- 60-10-040-命令-数据的路径间迁移kafka-reassign-partitions.sh
- eclipse ADT
- Javaweb安装教程
- 计算机字体库位置,电脑cad软件字体库的路径怎么添加
- RetinaFace论文解读 --- RetinaFace: Single-stage Dense Face Localisation in the Wild
- 关于解决windows10和ubuntu18.04.2 双系统时win10时间不对的问题
- Java 程序员常用资源网站集合
- 【成功解决】运行qt生成的.exe文件报“无法找到入口”的问题
- Masm 如何调试汇编代码
- 中关村硬科技孵化器首次合作建科技成果转化创新平台
- 64位电脑安装32位系统不能引导启动
- Java web实现百度地图导航
- 用bridge创建虚拟网桥
- CSS鼠标滑过div上移效果