apache tika 实现各种文档内容解析
1、依赖
<?xml version="1.0" encoding="utf-8"?>
<project xmlns="http://maven.apache.org/pom/4.0.0"
xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"
xsi:schemalocation="http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelversion>4.0.0</modelversion>
<groupid>cn.js</groupid>
<artifactid>tikaresouce</artifactid>
<version>1.0-snapshot</version>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<project.build.sourceencoding>utf-8</project.build.sourceencoding>
</properties>
<parent>
<groupid>org.springframework.boot</groupid>
<artifactid>spring-boot-starter-parent</artifactid>
<version>2.7.0</version>
</parent>
<dependencymanagement>
<dependencies>
<dependency>
<groupid>org.apache.tika</groupid>
<artifactid>tika-bom</artifactid>
<version>2.8.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencymanagement>
<dependencies>
<dependency>
<groupid>org.springframework.boot</groupid>
<artifactid>spring-boot-starter-web</artifactid>
</dependency>
<dependency>
<groupid>commons-fileupload</groupid>
<artifactid>commons-fileupload</artifactid>
<version>1.4</version>
</dependency>
<dependency>
<groupid>org.apache.tika</groupid>
<artifactid>tika-core</artifactid>
</dependency>
<dependency>
<groupid>org.apache.tika</groupid>
<artifactid>tika-parsers-standard-package</artifactid>
</dependency>
</dependencies>
</project>2、配置文件
新建一个 tika-config.xml 文件
<?xml version="1.0" encoding="utf-8"?>
<properties>
<encodingdetectors>
<encodingdetector class="org.apache.tika.parser.html.htmlencodingdetector">
<params>
<param name="marklimit" type="int">64000</param>
</params>
</encodingdetector>
<encodingdetector class="org.apache.tika.parser.txt.universalencodingdetector">
<params>
<param name="marklimit" type="int">64001</param>
</params>
</encodingdetector>
<encodingdetector class="org.apache.tika.parser.txt.icu4jencodingdetector">
<params>
<param name="marklimit" type="int">64002</param>
</params>
</encodingdetector>
</encodingdetectors>
</properties>3、配置类
package cn.js.config;
import java.io.ioexception;
import java.io.inputstream;
import org.apache.tika.tika;
import org.apache.tika.config.tikaconfig;
import org.apache.tika.detect.detector;
import org.apache.tika.exception.tikaexception;
import org.apache.tika.parser.autodetectparser;
import org.apache.tika.parser.parser;
import org.springframework.beans.factory.annotation.autowired;
import org.springframework.context.annotation.bean;
import org.springframework.context.annotation.configuration;
import org.springframework.core.io.resource;
import org.springframework.core.io.resourceloader;
import org.xml.sax.saxexception;
/**
* tika配置类
*/
@configuration
public class mytikaconfig {
@autowired
private resourceloader resourceloader;
@bean
public tika tika() throws tikaexception, ioexception, saxexception {
resource resource = resourceloader.getresource("classpath:tika-config.xml");
inputstream inputstream = resource.getinputstream();
tikaconfig config = new tikaconfig(inputstream);
detector detector = config.getdetector();
parser autodetectparser = new autodetectparser(config);
return new tika(detector, autodetectparser);
}
}controller
package cn.js.controller;
import org.apache.tika.tika;
import org.apache.tika.exception.tikaexception;
import org.springframework.http.httprequest;
import org.springframework.web.bind.annotation.postmapping;
import org.springframework.web.bind.annotation.requestmapping;
import org.springframework.web.bind.annotation.requestparam;
import org.springframework.web.bind.annotation.restcontroller;
import org.springframework.web.multipart.multipartfile;
import javax.annotation.resource;
import java.io.ioexception;
import java.io.inputstream;
@restcontroller
@requestmapping("/tika")
public class tikacontroller {
@resource
private tika tika;
@postmapping("/pdf")
public void tikademon(@requestparam("file") multipartfile file) throws ioexception, tikaexception {
inputstream inputstream = file.getinputstream();
string s = tika.parsetostring(inputstream);
system.out.println(s);
}
}到此这篇关于apache tika 实现各种文档内容解析的文章就介绍到这了,更多相关apache tika 文档内容解析内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论