代码片段,使用TIKA来解析PDF,WORD和EMAIL
/**
* com.jiaoyiping.pdstest.TestTika.java
* Copyright (c) 2009 Hewlett-Packard Development Company, L.P.
* All rights reserved.
*/
package com.jiaoyiping.pdstest; import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream; import org.apache.tika.metadata.Metadata;
import org.apache.tika.parser.ParseContext;
import org.apache.tika.parser.Parser;
import org.apache.tika.parser.mail.RFC822Parser;
import org.apache.tika.parser.microsoft.OfficeParser;
import org.apache.tika.parser.pdf.PDFParser;
import org.apache.tika.sax.BodyContentHandler;
import org.junit.Test;
import org.xml.sax.ContentHandler; /**
* <pre>
* Desc:
* @author 焦一平
* @refactor 焦一平
* @date 2014年12月4日 下午1:31:09
* @version 1.0
* @see
* REVISIONS:
* Version Date Author Description
* -------------------------------------------------------------------
* 1.0 2014年12月4日 焦一平 1. Created this class.
* </pre>
*/
public class TestTika { //解析PDF
@Test
public void testPdf() throws Exception{
Long start = System.currentTimeMillis();
Parser parser = new PDFParser();
InputStream is = new BufferedInputStream(new FileInputStream(new File("D:\\我的微盘\\文档\\参考文档\\Linux Shell脚本攻略.pdf")));
OutputStream os = new BufferedOutputStream(new FileOutputStream(new File("C:\\Users\\Administrator\\Desktop\\result.txt")));
Metadata meta = new Metadata();
meta.add(Metadata.CONTENT_ENCODING, "utf-8");
ContentHandler iHandler = new BodyContentHandler(os);
parser.parse(is, iHandler, meta, new ParseContext());
Long end = System.currentTimeMillis();
Long used = (end-start)/1000;
System.out.println("耗时: "+used+"秒");
}
//解析Word
@Test
public void testWrod() throws Exception{
Long start = System.currentTimeMillis();
Parser parser = new OfficeParser();
InputStream is = new BufferedInputStream(new FileInputStream(new File("D:\\我的微盘\\文档\\参考文档\\jBPM5_用户指南中文版.doc")));
OutputStream os = new BufferedOutputStream(new FileOutputStream(new File("C:\\Users\\Administrator\\Desktop\\result.txt")));
Metadata meta = new Metadata();
meta.add(Metadata.CONTENT_ENCODING, "utf-8");
ContentHandler iHandler = new BodyContentHandler(os);
parser.parse(is, iHandler, meta, new ParseContext()); Long end = System.currentTimeMillis();
Long used = (end-start)/1000;
System.out.println("耗时:"+used+"秒");
}
//解析EMAIL(只能解析标准的eml格式的,不能解析微软的msg格式)
//使用commons-email来进行解析的可以得到收件人、发件人、主题、内容等元数据,TIkA是否支持未尝试
@Test
public void testEmail() throws Exception{
Long start = System.currentTimeMillis();
Parser parser = new RFC822Parser();
InputStream is = new BufferedInputStream(new FileInputStream(new File("C:\\Users\\Administrator\\Downloads\\回复_ RE_ 数据导入工作 - 外部系统枚举与U-Cloud枚举映射.eml")));
OutputStream os = new BufferedOutputStream(new FileOutputStream(new File("C:\\Users\\Administrator\\Desktop\\result.txt")));
Metadata meta = new Metadata();
meta.add(Metadata.CONTENT_ENCODING, "utf-8");
ContentHandler iHandler = new BodyContentHandler(os);
parser.parse(is, iHandler, meta, new ParseContext()); Long end = System.currentTimeMillis();
Long used = (end-start)/1000;
System.out.println("耗时:"+used+"秒");
}
}
代码片段,使用TIKA来解析PDF,WORD和EMAIL的更多相关文章
- Java解析OFFICE(word,excel,powerpoint)以及PDF的实现方案及开发中的点滴分享
Java解析OFFICE(word,excel,powerpoint)以及PDF的实现方案及开发中的点滴分享 在此,先分享下写此文前的经历与感受,我所有的感觉浓缩到一个字,那就是:"坑&qu ...
- asp.net导出excel-一行代码实现excel、xml、pdf、word、html、csv等7种格式文件导出功能而且美观-SNF快速开发平台
分享: 腾讯微博 新浪微博 搜狐微博 网易微博 腾讯朋友 百度贴吧 豆瓣 QQ好友 人人网 作者:王春天 原文地址:http://www.cnblogs.com/spring_ ...
- RDLC - 后台代码直接导出Excel/PDF/Word格式
最近做报表功能,用到了.net的报表组件rdlc. 其中有个功能就是后台代码直接输出Excel/PDF/Word格式的文件,网上看了些资源,做个总结: 参考地址 我直接贴出代码: //自动导出exce ...
- js/jquery/html前端开发常用到代码片段
1.IE条件注释 条件注释简介 IE中的条件注释(Conditional comments)对IE的版本和IE非IE有优秀的区分能力,是WEB设计中常用的hack方法.条件注释只能用于IE5以上,IE ...
- 46 个非常有用的 PHP 代码片段
在编写代码的时候有个神奇的工具总是好的!下面这里收集了 40+ PHP 代码片段,可以帮助你开发 PHP 项目. 这些 PHP 片段对于 PHP 初学者也非常有帮助,非常容易学习,让我们开始学习吧- ...
- 【转】46 个非常有用的 PHP 代码片段
1. 发送 SMS 在开发 Web 或者移动应用的时候,经常会遇到需要发送 SMS 给用户,或者因为登录原因,或者是为了发送信息.下面的 PHP 代码就实现了发送 SMS 的功能. 为了使用任何的语言 ...
- PHP必用代码片段
在编写代码的时候有个神奇的工具总是好的!下面这里收集了 50+ PHP 代码片段,可以帮助你开发 PHP 项目. 这些 PHP 片段对于 PHP 初学者也非常有帮助,非常容易学习,让我们开始学习吧- ...
- Javascript 语言精粹 代码片段合集
Javascript 语言精粹 代码片段合集 标签:Douglas-Crockford Javascript 最佳实践 原文链接 更好的阅读体验 使用一个method 方法定义新方法 Function ...
- 在网站制作中随时可用的10个 HTML5 代码片段
HTML 很容易写,但创建网页时,您经常需要重复做同样的任务,如创建表单.在这篇文章中,我收集了10个超有用的 HTML 代码片段,有 HTML5 启动模板.空白图片.打电话和发短信.自动完成等等,帮 ...
随机推荐
- Python 爬验证码
主要实现功能: - 登陆网页 - 动态等待网页载入 - 验证码下载 非常早就有一个想法,就是自己主动依照脚本运行一个功能.节省大量的人力--个人比較懒.花了几天写了写,本着想完成验证码的识别,从根本上 ...
- am335x reboot 命令分析
本文记录am335x运行reboot命令时,内核中运行过程. Tony Liu, 2016-6-8, Shenzhen 参考链接: http://blog.csdn.net/wavemcu/artic ...
- 第二百九十七节,python操作redis缓存-List类型,可以理解为列表
python操作redis缓存-List类型,可以理解为列表,是可以有重复元素的列表 List操作,redis中的List在在内存中按照一个name对应一个List来存储.如图: lpush(name ...
- windows下安装TA-Lib库
步骤一: https://sourceforge.net/projects/ta-lib/files/ta-lib/0.4.0/ta-lib-0.4.0-msvc.zip/download?use_m ...
- AOP称为面向切面编程,在程序开发中主要用来解决一些系统层面上的问题
AOP称为面向切面编程,在程序开发中主要用来解决一些系统层面上的问题,比如日志,事务,权限等待,Struts2的拦截器设计就是基于AOP的思想,是个比较经典的例子. 一 AOP的基本概念 (1)Asp ...
- e581. Animating an Array of Images in an Application
This is the simplest application to animate an array of images. import java.awt.*; import javax.swin ...
- Fastqc 能够识别的碱基编码格式
Fastqc 能够自动识别序列的碱基编码格式,我查看一下源代码,发现是碱基编码格式一共分为 1)sanger/illumina 1.9 2) illumina 1.3 3) illumina 1.5 ...
- 【Java面试题】33 HashMap和Hashtable的区别
1 HashMap不是线程安全的 hastmap是一个接口 是map接口的子接口,是将键映射到值的对象,其中键和值都是对象,并且不能包含重复键,但可以包含重复值.HashMap允许null key和n ...
- Java几款性能分析工具的对比
在给客户的应用程序维护的过程中,我注意到在高负载下的一些性能问题.理论上,增加对应用程序的负载会使性能等比率的下降.然而,我认为性能下降的比率远远高于负载的增加.我也发现,性能可以通过改变应用程序的逻 ...
- CSS清除浮动常用方法小结
1.使用空标签清除浮动.我用了很久的一种方法,空标签可以是div标签,也可以是P标签.我习惯用<P>,够简短,也有很多人用<hr>,只是需要另外为其清除边框,但理论上可以是任何 ...