`
java_frog
  • 浏览: 253127 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java处理Word, Excel, PDF文档的4种开源系统的代码例子

阅读更多
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);
}
}
分享到:
评论

相关推荐

    java解析pdf,word,ppt,excel 源码

    在这个例子中,主要使用的是`PDFTextStripper`类,它能够将PDF文档中的文本转换为字符串格式,便于后续的处理或展示。 ```java PDDocument pdfdocument = PDDocument.load(f); PDFTextStripper stripper = new ...

    Java抽取Word和PDF格式文件

    iText是一个开源的Java库,用于处理PDF文档。它可以用于创建、编辑和阅读PDF文件。以下是一个使用iText抽取PDF文本的例子: ```java import java.io.FileOutputStream; import java.io.IOException; import ...

    安卓Excelwordppt文档读写相关-Android读取并显示word文件的代码例子.rar

    在Android平台上,处理Office文档,如Excel、Word和PPT,通常涉及到文件的读写操作。这个压缩包“安卓Excelwordppt文档读写相关-Android读取并显示word文件的代码例子.rar”提供了关于Android如何读取并显示Word文件...

    java对word操作

    Java对Word的操作主要涉及到使用Java库来读取、修改、创建和处理Microsoft Word文档。在Java编程中,我们可以借助第三方库如Apache POI、JODConverter或者OpenOffice API来实现这些功能。Apache POI是最常用的一个,...

    Itext导出Word文档的例子

    在IT行业中,生成和操作文档是一项常见的任务,而Itext是一个强大的开源库,主要用于处理PDF文档。然而,根据标题"Itext导出Word文档的例子",我们可以推断这篇博文可能涉及如何利用Itext来生成Microsoft Word(.doc...

    Java操作MicrosoftWord之jacob.pdf

    Java操作Microsoft Word主要依赖于一个名为jacob的开源库,全称为Java-COM Bridge,它提供了Java与COM组件之间的桥梁,使得Java应用可以调用Windows平台上的Microsoft Office接口,包括Word、Excel等。jacob库包含三...

    java解析MSFormat和PDF等多种文件格式的方法总结

    iText是一个专注于PDF的开源库,主要用于创建和修改PDF文档。尽管它的主要用途是生成PDF,但它也提供了读取PDF的基本功能。不过,如果主要目的是解析PDF,那么PDFBox可能是更好的选择,因为它提供了更全面的PDF解析...

    java-poi教你如何生成office文档.7z

    Java POI 是一个开源库,专门用于处理Microsoft Office格式的文件,如Word(.doc, .docx)、Excel(.xls, .xlsx)等。它提供了API,使得开发者能够使用Java编程语言创建、修改和读取这些文件。在这个“java-poi教你...

    可以将docx xlsx pptx转为pdf的jar包及修改后的例子代码

    `.docx`是Microsoft Word的文档格式,`.xlsx`用于Excel工作簿,而`.pptx`则是PowerPoint演示文稿的格式。`.pdf`则是一种通用的、跨平台的文件格式,能够保留原始文件的布局和样式。 要使用JODConverter进行文件转换...

    JAVA超级简单的excel导入导出,springboot使用easypoi

    SpringBoot框架以其轻量级、便捷的特性深受开发者喜爱,而easypoi则是Java领域处理Excel的一个强大工具,它提供了对Excel的读写功能,同时也支持Word和PDF的操作。本文将详细讲解如何在SpringBoot项目中集成easypoi...

    openoffice springboot集成 在线预览ppt,word,excel

    在IT行业中,集成OpenOffice与SpringBoot框架来实现在线预览PPT、Word和Excel是一项常见的需求,尤其在开发Web应用时。OpenOffice是一个开源的办公软件套件,它提供了API,可以用来处理多种文档格式,包括ODF...

    office转PDF

    1. Apache PDFBox:这是一个Apache软件基金会的开源项目,主要用于生成和处理PDF文档。虽然它的主要功能是生成PDF,但通过与其他工具(如Flying Saucer或iText)结合,可以实现Office到PDF的转换。例如,先用Apache ...

    jacob api文档及使用方法

    **Jacob API文档及使用方法** Jacob(Java COM Bridge)是一个开源Java库,它允许Java程序与...对于需要在Java项目中与Windows原生应用程序交互的场景,如自动化办公文档处理、PDF操作等,Jacob是一个值得考虑的工具。

    Java JDK实例宝典

    全部代码出自电子工业出版社夏先波的《Java JDK实例宝典》一书,本书以J2SE 5.0为开发环境,选取Java应用的典型实例,循序渐进地介绍了Java语言的各种开发方法和技巧,实例代码注释详细规范,思路清晰。 第1章 ...

    poi-demo.7z

    POI库主要处理两种类型的文件:HSSF(Horizontally Stored File Format)用于Excel,而XWPF(XML Word Processing Format)用于Word。在处理Word文档时,XWPF允许开发者通过编程方式访问和修改文档中的文本、表格、...

    XML和PDF生成的资料

    POI是Apache软件基金会的一个开源项目,提供了Java API来处理Microsoft Office格式的文件,包括Excel(HSSF)、Word(HWPF)和PowerPoint(HSLF)。在这个例子中,我们看到如何使用POI的HSSF组件来生成Excel报表。 ...

    office转pdf格式文件

    Java库如Apache POI用于读取和操作Office文件(Word、Excel、PowerPoint等),而iText或Apache PDFBox这样的库则用于创建PDF文件。接口的实现可能包含了这些库的调用,允许开发者通过简单的API调用来执行转换。 1. ...

    NPOI教程,开发包,操作excel

    NPOI是一个强大的开源库,专门用于处理Microsoft Office文件格式,尤其是Excel文档。在.NET环境中,NPOI提供了一种高效、便捷的方式来读写Excel文件,而无需安装Microsoft Office。这个教程和开发包将帮助开发者深入...

    OpenOffice转格式开发所需所有Jar包(含jodconverter2.2.2,可转docx)

    本资源提供了一组必要的Java开发所需的JAR包,使得开发者能够在Java项目中利用OpenOffice进行文件格式的转换,特别是将Word、Excel、PowerPoint等格式转换为PDF或图片。 核心知识点之一是**jodconverter**,这是一...

    Aspose_Slides_for_Apache_POI

    Apache POI是开源项目,它提供了Java API来读写Microsoft Office格式的文件,包括Excel、Word和PowerPoint等。Aspose.Slides则是一个商业组件,它提供了更高级的功能,可以处理更复杂的PPT任务。 Apache POI的核心...

Global site tag (gtag.js) - Google Analytics