Java读取Office文档文件和PDF文件的方法

对于这些二进制文档,如果需要建立全文索引,必须首先将其转换为文本文件格式,也就是读取其中的文字内容。简单常见的方法就是使用各种开源API。

对于Office文档,可以考虑使用POI,下载地址:http://poi.apache.org/

这里使用的是3.14版本,解压文件所需的jar包(全部导入Java工程即可)为:

poi-3.14-20160307.jar
poi-examples-3.14-20160307.jar
poi-excelant-3.14-20160307.jar
poi-ooxml-3.14-20160307.jar
poi-ooxml-schemas-3.14-20160307.jar
poi-scratchpad-3.14-20160307.jar

基本的使用方法,以读取Word文档为例:

import java.io.File;
import java.io.FileInputStream;

import org.apache.poi.hwpf.extractor.WordExtractor;

public class Exec {
	public static void main(String[] args) throws Exception {
		FileInputStream in = new FileInputStream(new File(
				"c:\\docs\\课件(必看)网盘下载课件资料的详细步骤.doc"));
		WordExtractor extrator = new WordExtractor(in);
		String text = extrator.getText();
		System.out.println(text);
	}
}

对于PDF文档,可以使用的包是:https://pdfbox.apache.org/,这里使用2.0.5版本

除了下载pdfbox-2.0.5.jar外,还需下载fontbox-2.0.5.jar,可能编译还需commons-logging-1.2.jar(该文件需要单独添加:commons-logging-1.2

基本使用方法参考:

import java.io.FileInputStream;
import java.io.StringWriter;

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.text.PDFTextStripper;

public class Exec {

	public static void main(String[] args) throws Exception {
		FileInputStream is = new FileInputStream(
				"c:\\pdfs\\chinachengruo_cn.pdf");
		StringWriter writer = new StringWriter();
		PDDocument pdfDocument = PDDocument.load(is);
		PDFTextStripper stripper = new PDFTextStripper();
		stripper.writeText(pdfDocument, writer);
		String contents = writer.getBuffer().toString();
		System.out.println(contents);
	}
}

发表评论

邮箱地址不会被公开。 必填项已用*标注