日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

java xpdf 转换成html_java将Word/Excel/PDF文件转换成HTML整理

發(fā)布時間:2024/9/27 HTML 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java xpdf 转换成html_java将Word/Excel/PDF文件转换成HTML整理 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

項目開發(fā)過程中,需求涉及到了各種文檔轉(zhuǎn)換為HTML或者網(wǎng)頁易顯示格式,現(xiàn)在將實現(xiàn)方式整理如下:

一、使用Jacob轉(zhuǎn)換Word,Excel為HTML

“JACOB一個Java-COM中間件.通過這個組件你可以在Java應(yīng)用程序中調(diào)用COM組件和Win32 libraries?!?/p>

首先下載Jacob包,JDK1.5以上需要使用Jacob1.9版本(JDK1.6尚未測試),與先前的Jacob1.7差別不大

1、將壓縮包解壓后,Jacob.jar添加到Libraries中;

2、將Jacob.dll放至“WINDOWS\SYSTEM32”下面。

需要注意的是:

【使用IDE啟動Web服務(wù)器時,系統(tǒng)讀取不到Jacob.dll,例如用MyEclipse啟動Tomcat,就需要將dll文件copy到MyEclipse安裝目錄的“jre\bin”下面。

一般系統(tǒng)沒有加載到Jacob.dll文件時,報錯信息為:“java.lang.UnsatisfiedLinkError: no jacob in java.library.path”】

新建類:

1

public

class

JacobUtil

2

{3public staticfinalintWORD_HTML=8;45public staticfinalintWORD_TXT =7;67public staticfinalintEXCEL_HTML=44;89

/** *//**10???? * WORD轉(zhuǎn)HTML11???? *@paramdocfile WORD文件全路徑12???? *@paramhtmlfile 轉(zhuǎn)換后HTML存放路徑13*/14public staticvoidwordToHtml(String docfile, String htmlfile)15

{16??????? ActiveXComponent app=newActiveXComponent("Word.Application");//啟動word 17try18

{19??????????? app.setProperty("Visible",newVariant(false));20??????????? Dispatch docs=app.getProperty("Documents").toDispatch();21??????????? Dispatch doc=Dispatch.invoke(22??????????????????? docs,23"Open",24??????????????????? Dispatch.Method,25

newObject[] { docfile,newVariant(false),26newVariant(true) },newint[1]).toDispatch();27

??????????? Dispatch.invoke(doc,"SaveAs", Dispatch.Method,newObject[] {28??????????????????? htmlfile,newVariant(WORD_HTML) },newint[1]);29??????????? Variant f=newVariant(false);30??????????? Dispatch.call(doc,"Close", f);31??????? }32catch(Exception e)33

{34??????????? e.printStackTrace();35??????? }36finally37

{38

??????????? app.invoke("Quit",newVariant[]{});39??????? }40??? }4142

/** *//**43???? * EXCEL轉(zhuǎn)HTML44???? *@paramxlsfile EXCEL文件全路徑45???? *@paramhtmlfile 轉(zhuǎn)換后HTML存放路徑46*/47public staticvoidexcelToHtml(String xlsfile, String htmlfile)48

{49??????? ActiveXComponent app=newActiveXComponent("Excel.Application");//啟動word 50try51

{52??????????? app.setProperty("Visible",newVariant(false));53??????????? Dispatch excels=app.getProperty("Workbooks").toDispatch();54??????????? Dispatch excel=Dispatch.invoke(55??????????????????? excels,56"Open",57??????????????????? Dispatch.Method,58

newObject[] { xlsfile,newVariant(false),59newVariant(true) },newint[1]).toDispatch();60

??????????? Dispatch.invoke(excel,"SaveAs", Dispatch.Method,newObject[] {61??????????????????? htmlfile,newVariant(EXCEL_HTML) },newint[1]);62??????????? Variant f=newVariant(false);63??????????? Dispatch.call(excel,"Close", f);64??????? }65catch(Exception e)66

{67??????????? e.printStackTrace();68??????? }69finally70

{71

??????????? app.invoke("Quit",newVariant[]{});72??????? }73??? }7475}

76

當(dāng)時我在找轉(zhuǎn)換控件時,發(fā)現(xiàn)網(wǎng)易也轉(zhuǎn)載了一偏關(guān)于Jacob使用幫助,但其中出現(xiàn)了比較嚴(yán)重的錯誤:String htmlfile = "C:\\AA";

只指定到了文件夾一級,正確寫法是String htmlfile = "C:\\AA\\xxx.html";

到此WORD/EXCEL轉(zhuǎn)換HTML就已經(jīng)差不多了,相信大家應(yīng)該很清楚了:)

二、使用XPDF將PDF轉(zhuǎn)換為HTML

2、下載中文支持包

3、下載pdftohtml支持包

4、解壓調(diào)試

1) 先將xpdf-3.02pl2-win32.zip解壓,解壓后的內(nèi)容可根據(jù)需要進(jìn)行刪減,如果只需要轉(zhuǎn)換為txt格式,其他的exe文件可以刪除,只保留pdftotext.exe,以此類推;

2) 然后將xpdf-chinese-simplified.tar.gz解壓到剛才xpdf-3.02pl2-win32.zip的解壓目錄;

3) 將pdftohtml-0.39-win32.tar.gz解壓,pdftohtml.exe解壓到xpdf-3.02pl2-win32.zip的解壓目錄;

4) 目錄結(jié)構(gòu):

+---[X:\xpdf]

|-------各種轉(zhuǎn)換用到的exe文件

|

|-------xpdfrc

|

+------[X:\xpdf\xpdf-chinese-simplified]

|

|

+-------很多轉(zhuǎn)換時需要用到的字符文件

xpdfrc:此文件是用來聲明轉(zhuǎn)換字符集對應(yīng)路徑的文件

5) 修改xpdfrc文件(文件原名為sample-xpdfrc)

修改文件內(nèi)容為: Txt代碼

#

-----

begin Chinese Simplified support

package

cidToUnicode??? Adobe

-

GB1?????? xpdf

-

chinese

-

simplified\Adobe

-

GB1.cidToUnicode

unicodeMap????? ISO

-

2022

-

CN???? xpdf

-

chinese

-

simplified\ISO

-

2022

-

CN.unicodeMap

unicodeMap????? EUC

-

CN????????? xpdf

-

chinese

-

simplified\EUC

-

CN.unicodeMap

unicodeMap? GBK??? xpdf

-

chinese

-

simplified\GBK.unicodeMap

cMapDir???????? Adobe

-

GB1?????? xpdf

-

chinese

-

simplified\CMap

toUnicodeDir??????????????????? xpdf

-

chinese

-

simplified\CMap

fontDir? C:\WINDOWS\Fonts??

displayCIDFontTT Adobe

-

GB1 C:\WINDOWS\Fonts\simhei.ttf

#

-----

end Chinese Simplified support

package

6) 創(chuàng)建bat文件pdftohtml.bat(放置的路徑不能包含空格)

內(nèi)容為: Txt代碼

@echo off

set folderPath

=%

1

set filePath

=%

2

cd

/

d

%

folderPath

%

pdftohtml

-

enc GBK

%

filePath

%

exit 7) 創(chuàng)建類

JAVA代碼

public

class

ConvertPdf

{

private staticString INPUT_PATH;??

private staticString PROJECT_PATH;??

??????

public staticvoidconvertToHtml(String file, String project)??

{??

??????? INPUT_PATH=file;??

??????? PROJECT_PATH=project;??

if(checkContentType()==0)??

{??

??????????? toHtml();??

??????? }??? }??????

private staticintcheckContentType()??

{??

??????? String type=INPUT_PATH.substring(INPUT_PATH.lastIndexOf(".")+1, INPUT_PATH.length())??

??????????????? .toLowerCase();??

if(type.equals("pdf"))??

return 0;??

elsereturn 9;??

??? }??????

private staticvoidtoHtml()??

{??

if(newFile(INPUT_PATH).isFile())??

{??

try

{??

??????????????? String cmd="cmd /c start X:\\pdftohtml.bat \""+ PROJECT_PATH +"\"\""+ INPUT_PATH +"\"";??

??????????????? Runtime.getRuntime().exec(cmd);??

??????????? }catch(IOException e)??

{??

??????????????? e.printStackTrace();??

??????????? }??????? }??? }??????

}

總結(jié)

以上是生活随笔為你收集整理的java xpdf 转换成html_java将Word/Excel/PDF文件转换成HTML整理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。