Java处理Word, Excel, PDF文档的4种开源系统的代码例子 很多人用java进行文档操作时经常会遇到一个问题,就是如何获得word,excel,pdf等文档的内容?我载了别人总结的抽取word,pdf的几种方法。
1.使用jacob抽取word,excel等文件。
其实jacob是一个bridage,连接java和com或者win32函数的一个中间件,jacob并不能直接抽取word,excel等文件,需要自己写dll哦,不过已经有为你写好的了,就是jacob的作者一并提供了。
jacobjar与dll文件下载:http://www.matrix.org.cn/down_view.asp?id=13下载了jacob并放 到指定的路径之后(dll放到path,jar文件放到classpath),就可以写你自己的抽取程序了,下面是一个简单的例子:
import java.io.File;
import com.jacob.com.*;
import com.jacob.activeX.*;
/**
* Title: pdf extraction
* Description: email:chris@matrix.org.cn
* Copyright: Matrix Copyright 2003
* Company: Matrix.org.cn
* @author chris
* @version 1.0,who use this example pls remain the declare
*/
public class FileExtracter{
public static void main(String[] args) {
ActiveXComponent component = new ActiveXComponent("Word.Application");
String inFile = "c:\\test.doc";
String tpFile = "c:\\temp.htm";
String otFile = "c:\\temp.xml";
boolean flag = false;
try {
component.setProperty("Visible", new Variant(false));
Object wordacc = component.getProperty("document.").toDispatch();
Object wordfile = Dispatch.invoke(wordacc,"Open", Dispatch.Method,
new Object[]{inFile,new Variant(false), new Variant(true)},
new int[1] ).toDispatch();
Dispatch.invoke(wordfile,"SaveAs", Dispatch.Method, new Object[]{tpFile,new Variant}, new int[1]);
Variant f = new Variant(false);
Dispatch.call(wordfile, "Close", f);
flag = true;
} catch (Exception e) {
e.printStackTrace();
} finally {
component.invoke("Quit", new Variant[] {});
}
}
}
2.用apache的poi来抽取word,excel。
poi是apache的一个项目,不过就算用poi你可能都觉得很烦,不过不要紧,这里提供了更加简单的一个接口给你:
下载经过封装后的poi包:http://www.matrix.org.cn/down_view.asp?id=14 下载之后,放到你的classpath就可以了,下面是如何使用它的一个例子:
import java.io.*;
import org.textmining.text.extraction.WordExtractor;
/**
* Title: word extraction
* Description: email:chris@matrix.org.cn
* Copyright: Matrix Copyright 2003
* Company: Matrix.org.cn
* @author chris
* @version 1.0,who use this example pls remain the declare
*/
public class PdfExtractor {
public PdfExtractor() {
}
public static void main(String args[]) throws Exception
{
FileInputStream in = new FileInputStream ("c:\\a.doc");
WordExtractor extractor = new WordExtractor();
String str = extractor.extractText(in);
System.out.println("the result length is"+str.length());
System.out.println("the result is"+str);
}
}
3. pdfbox-用来抽取pdf文件
但是pdfbox对中文支持还不好,先下载pdfbox: http://www.matrix.org.cn/down_view.asp?id=12 下面是一个如何使用pdfbox抽取pdf文件的例子:
import org.pdfbox.pdmodel.PDdocument.
import org.pdfbox.pdfparser.PDFParser;
import java.io.*;
import org.pdfbox.util.PDFTextStripper;
import java.util.Date;
/**
* Title: pdf extraction
* Description: email:chris@matrix.org.cn
* Copyright: Matrix Copyright 2003
* Company: Matrix.org.cn
* @author chris
* @version 1.0,who use this example pls remain the declare
*/
public class PdfExtracter{
public PdfExtracter(){
}
public String GetTextFromPdf(String filename) throws Exception
{
String temp=null;
PDdocument.nbsppdfdocument.null;
FileInputStream is=new FileInputStream(filename);
PDFParser parser = new PDFParser( is );
parser.parse();
pdfdocument.nbsp= parser.getPDdocument.);
ByteArrayOutputStream out = new ByteArrayOutputStream();
OutputStreamWriter writer = new OutputStreamWriter( out );
PDFTextStripper stripper = new PDFTextStripper();
stripper.writeText(pdfdocument.getdocument.), writer );
writer.close();
byte[] contents = out.toByteArray();
String ts=new String(contents);
System.out.println("the string length is"+contents.length+"\n");
return ts;
}
public static void main(String args[])
{
PdfExtracter pf=new PdfExtracter();
PDdocument.nbsppdfdocument.nbsp= null;
try{
String ts=pf.GetTextFromPdf("c:\\a.pdf");
System.out.println(ts);
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
4. 抽取支持中文的pdf文件-xpdf
xpdf是一个开源项目,我们可以调用他的本地方法来实现抽取中文pdf文件。 下载xpdf函数包: http://www.matrix.org.cn/down_view.asp?id=15 同时需要下载支持中文的补丁包: http://www.matrix.org.cn/down_view.asp?id=16 按照readme放好中文的patch,就可以开始写调用本地方法的java程序了 下面是一个如何调用的例子: import java.io.*;
/**
* Title: pdf extraction
* Description: email:chris@matrix.org.cn
* Copyright: Matrix Copyright 2003
* Company: Matrix.org.cn
* @author chris
* @version 1.0,who use this example pls remain the declare
*/
public class PdfWin {
public PdfWin() {
}
public static void main(String args[]) throws Exception
{
String PATH_TO_XPDF="C:\\Program Files\\xpdf\\pdftotext.exe";
String filename="c:\\a.pdf";
String[] cmd = new String[] { PATH_TO_XPDF, "-enc", "UTF-8", "-q", filename, "-"};
Process p = Runtime.getRuntime().exec(cmd);
BufferedInputStream bis = new BufferedInputStream(p.getInputStream());
InputStreamReader reader = new InputStreamReader(bis, "UTF-8");
StringWriter out = new StringWriter();
char [] buf = new char[10000];
int len;
while((len = reader.read(buf))>= 0) {
//out.write(buf, 0, len);
System.out.println("the length is"+len);
}
reader.close();
String ts=new String(buf);
System.out.println("the str is"+ts);
}
}
分享到:
相关推荐
在这个例子中,主要使用的是`PDFTextStripper`类,它能够将PDF文档中的文本转换为字符串格式,便于后续的处理或展示。 ```java PDDocument pdfdocument = PDDocument.load(f); PDFTextStripper stripper = new ...
iText是一个开源的Java库,用于处理PDF文档。它可以用于创建、编辑和阅读PDF文件。以下是一个使用iText抽取PDF文本的例子: ```java import java.io.FileOutputStream; import java.io.IOException; import ...
在Android平台上,处理Office文档,如Excel、Word和PPT,通常涉及到文件的读写操作。这个压缩包“安卓Excelwordppt文档读写相关-Android读取并显示word文件的代码例子.rar”提供了关于Android如何读取并显示Word文件...
Java对Word的操作主要涉及到使用Java库来读取、修改、创建和处理Microsoft Word文档。在Java编程中,我们可以借助第三方库如Apache POI、JODConverter或者OpenOffice API来实现这些功能。Apache POI是最常用的一个,...
在IT行业中,生成和操作文档是一项常见的任务,而Itext是一个强大的开源库,主要用于处理PDF文档。然而,根据标题"Itext导出Word文档的例子",我们可以推断这篇博文可能涉及如何利用Itext来生成Microsoft Word(.doc...
Java操作Microsoft Word主要依赖于一个名为jacob的开源库,全称为Java-COM Bridge,它提供了Java与COM组件之间的桥梁,使得Java应用可以调用Windows平台上的Microsoft Office接口,包括Word、Excel等。jacob库包含三...
iText是一个专注于PDF的开源库,主要用于创建和修改PDF文档。尽管它的主要用途是生成PDF,但它也提供了读取PDF的基本功能。不过,如果主要目的是解析PDF,那么PDFBox可能是更好的选择,因为它提供了更全面的PDF解析...
Java POI 是一个开源库,专门用于处理Microsoft Office格式的文件,如Word(.doc, .docx)、Excel(.xls, .xlsx)等。它提供了API,使得开发者能够使用Java编程语言创建、修改和读取这些文件。在这个“java-poi教你...
`.docx`是Microsoft Word的文档格式,`.xlsx`用于Excel工作簿,而`.pptx`则是PowerPoint演示文稿的格式。`.pdf`则是一种通用的、跨平台的文件格式,能够保留原始文件的布局和样式。 要使用JODConverter进行文件转换...
SpringBoot框架以其轻量级、便捷的特性深受开发者喜爱,而easypoi则是Java领域处理Excel的一个强大工具,它提供了对Excel的读写功能,同时也支持Word和PDF的操作。本文将详细讲解如何在SpringBoot项目中集成easypoi...
在IT行业中,集成OpenOffice与SpringBoot框架来实现在线预览PPT、Word和Excel是一项常见的需求,尤其在开发Web应用时。OpenOffice是一个开源的办公软件套件,它提供了API,可以用来处理多种文档格式,包括ODF...
1. Apache PDFBox:这是一个Apache软件基金会的开源项目,主要用于生成和处理PDF文档。虽然它的主要功能是生成PDF,但通过与其他工具(如Flying Saucer或iText)结合,可以实现Office到PDF的转换。例如,先用Apache ...
**Jacob API文档及使用方法** Jacob(Java COM Bridge)是一个开源Java库,它允许Java程序与...对于需要在Java项目中与Windows原生应用程序交互的场景,如自动化办公文档处理、PDF操作等,Jacob是一个值得考虑的工具。
全部代码出自电子工业出版社夏先波的《Java JDK实例宝典》一书,本书以J2SE 5.0为开发环境,选取Java应用的典型实例,循序渐进地介绍了Java语言的各种开发方法和技巧,实例代码注释详细规范,思路清晰。 第1章 ...
POI库主要处理两种类型的文件:HSSF(Horizontally Stored File Format)用于Excel,而XWPF(XML Word Processing Format)用于Word。在处理Word文档时,XWPF允许开发者通过编程方式访问和修改文档中的文本、表格、...
POI是Apache软件基金会的一个开源项目,提供了Java API来处理Microsoft Office格式的文件,包括Excel(HSSF)、Word(HWPF)和PowerPoint(HSLF)。在这个例子中,我们看到如何使用POI的HSSF组件来生成Excel报表。 ...
Java库如Apache POI用于读取和操作Office文件(Word、Excel、PowerPoint等),而iText或Apache PDFBox这样的库则用于创建PDF文件。接口的实现可能包含了这些库的调用,允许开发者通过简单的API调用来执行转换。 1. ...
NPOI是一个强大的开源库,专门用于处理Microsoft Office文件格式,尤其是Excel文档。在.NET环境中,NPOI提供了一种高效、便捷的方式来读写Excel文件,而无需安装Microsoft Office。这个教程和开发包将帮助开发者深入...
本资源提供了一组必要的Java开发所需的JAR包,使得开发者能够在Java项目中利用OpenOffice进行文件格式的转换,特别是将Word、Excel、PowerPoint等格式转换为PDF或图片。 核心知识点之一是**jodconverter**,这是一...
Apache POI是开源项目,它提供了Java API来读写Microsoft Office格式的文件,包括Excel、Word和PowerPoint等。Aspose.Slides则是一个商业组件,它提供了更高级的功能,可以处理更复杂的PPT任务。 Apache POI的核心...