




已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
很多人用java进行文档操作时经常会遇到一个问题,就是如何获得word,excel,pdf等文档的内容?我研究了一下,在这里总结一下抽取word,pdf的几种方法。 用jacob 其实jacob是一个bridage,连接java和com或者win32函数的一个中间件,jacob并不能直接抽取word,excel等文件,需要自己写dll哦,不过已经有为你写好的了,就是jacob的作者一并提供了。 jacob jar与dll文件下载: /down_view.asp?id=13 下载了jacob并放到指定的路径之后(dll放到path,jar文件放到classpath),就可以写你自己的抽取程序了,下面是一个简单的例子: import java.io.File; import .*; import com.jacob.activeX.*; /* * Title: pdf extraction * Description: email: * Copyright: Matrix Copyright (c) 2003 * Company: M * 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 ObjectinFile,new Variant(false), new Variant(true), new int1 ).toDispatch(); Dispatch.invoke(wordfile,SaveAs, Dispatch.Method, new ObjecttpFile,new Variant(8), new int1); Variant f = new Variant(false); Dispatch.call(wordfile, Close, f); flag = true; catch (Exception e) e.printStackTrace(); finally component.invoke(Quit, new Variant ); 回页首 用apache的poi来抽取word,excel。 poi是apache的一个项目,不过就算用poi你可能都觉得很烦,不过不要紧,这里提供了更加简单的一个接口给你: 下载经过封装后的poi包: /down_view.asp?id=14 下载之后,放到你的classpath就可以了,下面是如何使用它的一个例子: import java.io.*; import org.textmining.text.extraction.WordExtractor; /* * Title: word extraction * Description: email: * Copyright: Matrix Copyright (c) 2003 * Company: M * 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); 回页首 pdfbox-用来抽取pdf文件 但是pdfbox对中文支持还不好,先下载pdfbox: /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: * Copyright: Matrix Copyright (c) 2003 * Company: M * 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; PDdocumentnbsppdfdocumentnull; FileInputStream is=new FileInputStream(filename); PDFParser parser = new PDFParser( is ); parser.parse(); pdfdocumentnbsp= parser.getPDdocument); ByteArrayOutputStream out = new ByteArrayOutputStream(); OutputStreamWriter writer = new OutputStreamWriter( out ); PDFTextStripper stripper = new PDFTextStripper(); stripper.writeText(pdfdocumentgetdocument), 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(); PDdocumentnbsppdfdocumentnbsp= null; try String ts=pf.GetTextFromPdf(c:a.pdf); System.out.println(ts); catch(Exception e) e.printStackTrace(); 回页首 抽取支持中文的pdf文件xpdf xpdf是一个开源项目,我们可以调用他的本地方法来实现抽取中文pdf文件。 下载xpdf函数包: /down_view.asp?id=15 同时需要下载支持中文的补丁包: /down_view.asp?id=16 按照readme放好中文的patch,就可以开始写调用本地方法的java程序了 下面是一个如何调用的例子: import java.io.*; /* * Title: pdf extraction * Description: email: * Copyright: Matrix Copyright (c) 2003 * Company: M * 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 Filesxpdfpdftotext.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
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 民爆生产企业安全培训课件
- 初期汽车考试题库及答案
- 保健酒业考试真题及答案
- 江苏农业新质生产力热潮涌动
- 个人如何面对新质生产力
- 新质生产力发展路径与实践指南
- 城市管理新质生产力
- 校园篮球联赛策划方案
- 新质生产力最核心的表述
- 美国视角下的新质生产力
- 4.《花之歌》教学设计-2024-2025学年统编版语文六年级上册
- 诉讼业务培训课件
- 2025青海黄南尖扎县公安局面向社会招聘警务辅助人员35人笔试参考题库附答案解析
- 12345热线培训课件
- 人教版(2024)一年级全一册体育与健康第二单元 健康行为与生活方式 教案
- 危险废弃物管理培训试题(附答案)
- 2025国投生物制造创新研究院有限公司招聘(31人)考试备考试题及答案解析
- 多彩的超轻泥教学课件
- 失语和构音障碍课件
- 赛事租赁用品租赁模式分析报告
- 学校防坠楼安全知识培训课件
评论
0/150
提交评论