java 技術文件 用java獲得word,excel,pdf等文件的內容
很多人用java進行文件操作時經常會遇到一個問題,就是如何獲得word,excel,pdf等文件的內容?我研究了一下,在這裡總結一下抽取word,pdf的幾種方法。
1. 用jacob
其實jacob是一個bridage,連線java和com或者win32函式的一箇中間件,jacob並不能直接抽取word,excel等檔案,需要自己寫dll哦,不過已經有為你寫好的了,就是jacob的作者一併提供了。
下載了jacob並放到指定的路徑之後(dll放到path,jar檔案放到classpath),就可以寫你自己的抽取程式了,下面是一個簡單的例子:
import java.io.File;
import com.jacob.com.*;
import com.jacob.activeX.*;
/**
* Title: pdf extraction
* Description: email:
* Copyright: Matrix Copyright (c) 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(8)}, 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你可能都覺得很煩,不過不要緊,這裡提供了更加簡單的一個介面給你:
下載之後,放到你的classpath就可以了,下面是如何使用它的一個例子:
import java.io.*;
import org.textmining.text.extraction.WordExtractor;
/**
*
Title: word extraction
*
Description: email:[email protected]
*
Copyright: Matrix Copyright (c) 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抽取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:[email protected]
*
Copyright: Matrix Copyright (c) 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檔案。
同時需要下載支援中文的補丁包,按照readme放好中文的patch,就可以開始寫呼叫本地方法的java程式了。
下面是一個如何呼叫的例子:
import java.io.*;
/**
*
Title: pdf extraction
*
Description: email:[email protected]
*
Copyright: Matrix Copyright (c) 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);
}
}
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1293505
相關推薦
iOS在app中開啟word、execl、pdf等文件
//用UIWebView -(void)open:(NSString*)wordName andView:(UIWebView*)webView { NSString *path = [[N
如何從word、excel、pdf等檔案中提取文字(Tika)
Tika-內容分析工具包 官方網站:https://tika.apache.org/ 在maven倉庫下載最新版依賴 https://mvnrepository.com/artifact/org.apache.tika/tika-parsers 懶得去的同學,提供一個筆者正在使
java 技術文件 用java獲得word,excel,pdf等文件的內容
很多人用java進行文件操作時經常會遇到一個問題,就是如何獲得word,excel,pdf等文件的內容?我研究了一下,在這裡總結一下抽取word,pdf的幾種方法。 1. 用jacob 其實jacob是一個bridage,連線java和com或者win32函式的一箇
java操作office和pdf檔案:讀取word,excel和pdf文件內容
..... <properties> <poi.version>3.13</poi.version> <pdf.version>1.8.10</pdf.
Word文件格式轉換:Word如何轉換成PDF格式
自定義 如圖所示 分享圖片 部分 基本操作 範圍 water 定義 cto Word文件如何轉換成PDF格式呢? 可能大部分人都知道PDF轉換成word格式,畢竟這也是一種常用的轉換。就word轉換成PDF小編在這裏告訴大家一種方法! 1、首先我們需要借助輔助工具進行文件格
這些java技術面試題也許你在面試時會遇到,早些防範!
大家在平常面試java的過程中都會遇到哪些難題呢?還有一些即將去面試java的童鞋們,你們想知道技術面試中會涉及到哪些點嗎?今天為你整理Java面試中會被問到的幾個技術難題。 1、一個".java"原始檔中是否可以包括多個類(不是內部類)?有什麼限制? 可以有多個類,但只能有一個p
java實現線上預覽--poi實現word、excel、ppt轉html
分享一下我的偶像大神的人工智慧教程!http://blog.csdn.net/jiangjunshow 也歡迎轉載我的文章,轉載請註明出處 https://blog.csdn.net/aabbyyz java實現線上預覽 - -之poi實現word、e
java筆試題:用java實現字串壓縮演算法
題目:將字串 aaabcdda (可以從控制檯接收)程式設計實現將其轉換為 3a1b1c2d1a。 我的大致就這樣: System.out.print("請輸入一串字串:"); Scanner s = new Scanner(System.in); String str
將jsp頁面生成word、excel、pdf文件
開發過程中,有時要求將顯示查詢結果的jsp頁面生成word、excel、pdf等型別的文件,甚至可能要求將那些格式的文件下載下來,因為這樣更符合客戶的需求,也更利於他們的辦公使用。 基於此,上網查閱了一些資料,現簡單整理一下,以供自己和大家學習。
Word,Excel,Powerpoint,Txt,Pdf 等文件的線上瀏覽的實現
一:使用的工具及其技術: openOffice,swfTools,flexPaper。 其中openOffice和swfTools兩個工具需要在應用伺服器上安裝,搭建其執行使用環境。 flexPaper是一個開源輕量級的在瀏
Ubuntu 伺服器 PHP實現word、excel、ppt、pdf 等文件線上閱讀功能的實現
1、實現原理思路 要實現 word 等文件線上閱讀,需要將文件轉換成 swf 的 flash 檔案,然後結合 flexpaper ,在頁面上閱讀顯示。 這個轉換過程有些複雜,首先需要我們把上傳的檔案轉換成 pdf 格式的檔案,然後在把 pdf 格式的檔案轉換為 swf 的格
Java技術棧(2)排序演算法(冒泡,快速排序)
1.氣泡排序 氣泡排序是一種簡單的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越小的元素會經由交換慢慢“浮”到數列的頂端
WORD、PPT、TXT、PDF等文件轉換
一個檔案格式轉換成另一個檔案格式,這對我們來說有什麼難得,簡單的很!但是大量的檔案,如,WORD、PPT、TXT、PDF等不同格式的檔案如何巧妙轉換?你不會還傻傻的一個字一個字敲吧?今天這篇文章教你不同檔案格式間的轉換方式,不管論文還是工作,你一定用得到!
C# 基於NPOI+Office COM元件 實現20行程式碼線上預覽文件(word,excel,pdf,txt,png)
由於專案需要,需要一個線上預覽office的功能,小編一開始使用的是微軟提供的方法,簡單快捷,但是不符合小編開發需求, 就另外用了:將檔案轉換成html檔案然後預覽html檔案的方法。對微軟提供的方法感興趣的小夥伴可以去看一下,夠簡單直接:word+excle+pdf表格線上瀏覽 我們來說一下小編使用的方法,
重磅:保姆級Java技術圖譜釋出!夠學到元宵節了,趕緊收藏!
最近因為參與社群交流的時間比較多,除了嘮嘮白酒的嗑之外,很大一部分時間都是看到群裡問到一些關於Spring Boot和Spring Cloud應用過程中碰到的問題以及一些開發過程中的報錯資訊。在這些幫助分析和排查問題的過程中,我發現有好多問題之所以開發者無法自己解決,或者沒有方法解決的根本原因還是對很多基礎知
C++輸出迴文數用迴圈控制語句編寫程式,完成表示式的計算
實驗目的:學會使用迴圈控制語句解決實際問題,並強化注重效率的觀念 實驗內容:用迴圈控制語句編寫程式,完成表示式的計算 * 程式頭部註釋開始 * 程式的版權和版本宣告部分 * Copyright (c) 2011, 煙臺大學計算機學院學生 * All rights res
iOS 根據字符串數目,自定義Label等控件的高度
rect 復制代碼 設置 高度 uifont ios oat size hsi 利用分類,NSString,增加一個方法。 #import <Foundation/Foundation.h> #import <UIKit/UIKit.h> @
android中的五大布局(控件的容器,可以放button等控件)
orien ble frame http logs 控件 容器 div 以及 一.android中五大布局相當於是容器,這些容器裏可以放控件也可以放另一個容器,子控件和布局都需要制定屬性。 1.相對布局:RelativeLayout @1控件默認堆疊排列,需要制定控件的相
Android應用內展示word、excel、pdf、ppt等檔案
筆者最近兩個專案裡頭都有需要展示檔案的功能,於是做了一番調研,發現asce1885給出一份方案,不過都是關於pdf的展示:http://www.jianshu.com/p/1bf49af6584d,顯然不符合筆者的要求,筆者的專案裡需要展示的檔案格式並不單一,後來經過一番搜尋最後敲定使用
Android中解析讀取複雜word,excel,ppt等的方法
前段時間在嘗試做一個Android裡的萬能播放器,能播放各種格式的軟體,其中就涉及到了最常用的office軟體。查閱了下資料,發現Android中最傳統的直接解析讀取word,excel的方法主要用了java裡第三方包,比如利用tm-extractors-0