`

java操作word,pdf的四种武器

阅读更多

今天看到别人的博客上有这么一篇文章,觉得挺好的。

1。用jacob.
    其实jacob是一个bridage,连接java和com或者win32函数的一个中间件,jacob并不能直接抽取word,excel等文件,需要自己写dll哦,不过已经有为你写好的了,就是jacob的作者一并提供了。
   jacob下载: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.*;

public class FileExtracter{

 public static void main(String[] args) {

  ActiveXComponent app = new ActiveXComponent("Word.Application");
  String inFile = "c:\\test.doc";
 String tpFile = "c:\\temp.htm";
  String otFile = "c:\\temp.xml";
  boolean flag = false;
  try {
   app.setProperty("Visible", new Variant(false));
   Object docs = app.getProperty("document.").toDispatch();
   Object doc = Dispatch.invoke(docs,"Open", Dispatch.Method, new Object[]{inFile,new Variant(false), new Variant(true)}, new int[1]).toDispatch();
   Dispatch.invoke(doc,"SaveAs", Dispatch.Method, new Object[]{tpFile,new Variant(8)}, new int[1]);
   Variant f = new Variant(false);
   Dispatch.call(doc, "Close", f);
   flag = true;
  } catch (Exception e) {
   e.printStackTrace();
  } finally {
   app.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;
/**
 * <p>Title: pdf extraction</p>
 * <p>Description: email:chris@matrix.org.cn</p>
 * <p>Copyright: Matrix Copyright (c) 2003</p>
 * <p>Company: Matrix.org.cn</p>
 * @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;
/**
 * <p>Title: pdf extraction</p>
 * <p>Description: email:chris@matrix.org.cn</p>
 * <p>Copyright: Matrix Copyright (c) 2003</p>
 * <p>Company: Matrix.org.cn</p>
 * @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+"");
  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.*;
/**
 * <p>Title: pdf extraction</p>
 * <p>Description: email:chris@matrix.org.cn</p>
 * <p>Copyright: Matrix Copyright (c) 2003</p>
 * <p>Company: Matrix.org.cn</p>
 * @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);
  }
}


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/soleghost/archive/2006/09/30/1311888.aspx

分享到:
评论

相关推荐

    java抽取word,pdf的四种武器

    总结这四种武器,Java在处理Word和PDF文件时具备了强大的能力。Apache POI处理Word文档,PDFBox专攻PDF,iText则在PDF处理上表现出色,而Tika则作为通用的解析器,能够应对多种文件格式。了解并熟练掌握这些工具,将...

    java操作word转PDF源文件

    Java操作word转PDF需要下载Jacob包.

    JAVA实现Linux中word转换pdf

    在Java编程环境中,我们可以利用各种库来实现在Linux系统中将Word文档转换为PDF。这个过程通常涉及到对文件格式的理解,以及对操作系统调用的掌握。以下是一个详细的知识点介绍: 1. **Java与Linux交互**: Java...

    java word转pdf 源码 jacob

    Java Word转PDF是一种常见的文档格式转换需求,在许多业务场景中都有应用,比如报告生成、文档共享等。在Java中,可以使用第三方库如Apache POI处理Word文档,但要将Word转换为PDF,通常需要借助像JACOB这样的库。...

    java+pdf转word+word转pdf 无水印 无页数限制

    "java+pdf转word+word转pdf 无水印 无页数限制"这一标题揭示了我们讨论的是一个能够进行这两种转换,并且在转换过程中不添加水印,且不受页面数量限制的解决方案。以下是对这个主题的详细知识点解释: 1. **PDF转...

    java 实现word 转PDF (采用第三方技术 IText、Poi、Jsoup)

    java 实现word 转PDF (采用第三方技术 IText、Poi、Jsoup)iText-2.0.8.jar core-renderer.jar iTextAsian.jar iTextAsianCmaps.jar jsoup-1.8.1.jar

    java+poi+word转pdf的简单demo,执行转换main方法不会抛异常

    在Java开发中,有时我们需要将Word文档转换为PDF格式,以满足不同的应用场景需求。Apache POI是一个流行的Java库,用于处理Microsoft Office格式的文件,包括Word(.doc/.docx)。在本示例中,我们将深入探讨如何...

    java将word转图片转pdf_jacob.zip

    在Java中,Word转PDF的实现方式通常有两种:一种是利用Jacob将Word文档渲染成图片序列,然后将这些图片合并成PDF;另一种是通过使用支持PDF生成的库,如iText或Apache POI,直接解析Word文档内容并重新构建为PDF格式...

    java实现导出excel、word、 pdf

    在Java编程中,导出Excel、Word和PDF是常见的数据呈现和报告生成需求。这些文件格式广泛用于数据存储、报表生成、文档分享等场景。以下将详细介绍如何使用Java实现这三种文件类型的导出。 首先,让我们关注Excel的...

    java word转换成pdf

    Java作为一个强大的编程语言,提供了多种库和工具来实现文件格式的转换,包括将Word文档转换为PDF。"doc2pdf"标签提示我们关注的是这个领域的技术点。在本文中,我们将深入探讨如何利用Java进行Word到PDF的转换。 ...

    java将WORD转图片,转PDF来回转.zip

    在Java编程环境中,将Word文档转换为图片或PDF,以及进行图片与PDF之间的相互转换,是一种常见的需求。这种转换在处理大量文档时尤其有用,例如自动化报告生成、文档预览或者格式互换。本资源提供的"java将WORD转...

    java swing 实现的word文档转换成pdf文档

    首先,理解这个任务的背景,我们需要知道Word和PDF是两种常见的文档格式,各有其特点。Word文档通常用于编辑和格式化文本,而PDF则更侧重于呈现文档的精确布局和打印效果。转换过程涉及到读取Word文档的结构和内容,...

    Word转pdf java实现

    XDocReport是由OpenXML4J和FreeMarker支持的Java库,它允许我们使用模板引擎将Word文档(.docx)转换为其他格式,包括PDF。XDocReport的优势在于它支持动态内容插入,使得在Word模板中填充数据变得简单。以下是使用...

    java 实现word 转PDF

    全面支持DOC, DOCX, OOXML, RTF HTML, OpenDocument, PDF, EPUB, XPS, SWF 相互转换 ,word转pdf已做测试很好用!

    PDF转WORD,WORD转任何格式的JAVA代码调研报告。

    ### PDF转WORD与WORD转任何格式的JAVA代码调研报告 #### 一、引言 随着文档格式多样化的需求不断增加,能够高效地将不同格式的文档进行转换成为了一个重要的技术点。本报告将详细介绍如何使用Aspose.PDF和Aspose....

    java实现word文档转PDF,PDF转word

    1、网上许多搜索出来的要么就只能转4页、要么有水印 2、这个包里使用springboot作为例子,引入指定依赖和破解jar包使用 3、里面包括怎么去除水印和限制的说明都有

    java版pdf转word

    java版pdf转word 1

    java 的 word 转pdf的小demo

    本示例“java 的 word 转pdf的小demo”聚焦于使用Java来将Microsoft Word文档(.doc或.docx格式)转换成PDF格式。下面我们将深入探讨这一主题,讲解如何在Java环境中实现这个功能。 首先,我们需要引入一个能够处理...

    JAVA读取WORD_EXCEL_POWERPOINT_PDF文件的方法(poi)

    JAVA 读取 WORD_EXCEL_POWERPOINT_PDF 文件的方法(poi) JAVA 读取 WORD_EXCEL_POWERPOINT_PDF 文件的方法是使用 Apache POI 库来实现的。POI 库是一个开放源代码的 Java 库,提供了对 Microsoft Office 文件格式...

Global site tag (gtag.js) - Google Analytics