1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > java word转成表格_java将Word/Excel/PDF文件转换成HTML整理

java word转成表格_java将Word/Excel/PDF文件转换成HTML整理

时间:2023-05-01 02:27:42

相关推荐

java word转成表格_java将Word/Excel/PDF文件转换成HTML整理

项目开发过程中,需求涉及到了各种文档转换为HTML或者网页易显示格式,现在将实现方式整理如下:

一、使用Jacob转换Word,Excel为HTML

“JACOB一个Java-COM中间件.通过这个组件你可以在Java应用程序中调用COM组件和Win32 libraries。”

首先下载Jacob包,JDK1.5以上需要使用Jacob1.9版本(JDK1.6尚未测试),与先前的Jacob1.7差别不大

1、将压缩包解压后,Jacob.jar添加到Libraries中;

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

需要注意的是:

【使用IDE启动Web服务器时,系统读取不到Jacob.dll,例如用MyEclipse启动Tomcat,就需要将dll文件copy到MyEclipse安装目录的“jre\bin”下面。

一般系统没有加载到Jacob.dll文件时,报错信息为:“java.lang.UnsatisfiedLinkError: no jacob in java.library.path”】

新建类:

1

publicclassJacobUtil2

{3publicstaticfinalintWORD_HTML=8;45publicstaticfinalintWORD_TXT=7;67publicstaticfinalintEXCEL_HTML=44;89

/***//**10*WORD转HTML11*@paramdocfileWORD文件全路径12*@paramhtmlfile转换后HTML存放路径13*/14publicstaticvoidwordToHtml(Stringdocfile,Stringhtmlfile)15

{16ActiveXComponentapp=newActiveXComponent("Word.Application");//启动word17try18

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

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

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

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

{38

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

/***//**43*EXCEL转HTML44*@paramxlsfileEXCEL文件全路径45*@paramhtmlfile转换后HTML存放路径46*/47publicstaticvoidexcelToHtml(Stringxlsfile,Stringhtmlfile)48

{49ActiveXComponentapp=newActiveXComponent("Excel.Application");//启动word50try51

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

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

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

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

{71

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

当时我在找转换控件时,发现网易也转载了一偏关于Jacob使用帮助,但其中出现了比较严重的错误:String htmlfile = "C:\\AA";

只指定到了文件夹一级,正确写法是String htmlfile = "C:\\AA\\xxx.html";

到此WORD/EXCEL转换HTML就已经差不多了,相信大家应该很清楚了:)

二、使用XPDF将PDF转换为HTML

2、下载中文支持包

3、下载pdftohtml支持包

4、解压调试

1) 先将xpdf-3.02pl2-win32.zip解压,解压后的内容可根据需要进行删减,如果只需要转换为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) 目录结构:

+---[X:\xpdf]

|-------各种转换用到的exe文件

|

|-------xpdfrc

|

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

|

|

+-------很多转换时需要用到的字符文件

xpdfrc:此文件是用来声明转换字符集对应路径的文件

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

修改文件内容为:

Txt代码

#-----beginChineseSimplifiedsupportpackagecidToUnicodeAdobe-GB1xpdf-chinese-simplified\Adobe-GB1.cidToUnicode

unicodeMapISO--CNxpdf-chinese-simplified\ISO--CN.unicodeMap

unicodeMapEUC-CNxpdf-chinese-simplified\EUC-CN.unicodeMap

unicodeMapGBKxpdf-chinese-simplified\GBK.unicodeMap

cMapDirAdobe-GB1xpdf-chinese-simplified\CMap

toUnicodeDirxpdf-chinese-simplified\CMap

fontDirC:\WINDOWS\Fonts

displayCIDFontTTAdobe-GB1C:\WINDOWS\Fonts\simhei.ttf

#-----endChineseSimplifiedsupportpackage

6) 创建bat文件pdftohtml.bat(放置的路径不能包含空格)

内容为:

Txt代码

@echooff

setfolderPath=%1setfilePath=%2cd/d%folderPath%pdftohtml-encGBK%filePath%exit

7) 创建类

JAVA代码

publicclassConvertPdf

{

privatestaticStringINPUT_PATH;

privatestaticStringPROJECT_PATH;

publicstaticvoidconvertToHtml(Stringfile,Stringproject)

{

INPUT_PATH=file;

PROJECT_PATH=project;

if(checkContentType()==0)

{

toHtml();

}}

privatestaticintcheckContentType()

{

Stringtype=INPUT_PATH.substring(INPUT_PATH.lastIndexOf(".")+1,INPUT_PATH.length())

.toLowerCase();

if(type.equals("pdf"))

return0;

elsereturn9;

}

privatestaticvoidtoHtml()

{

if(newFile(INPUT_PATH).isFile())

{

try

{

Stringcmd="cmd/cstartX:\\pdftohtml.bat\""+PROJECT_PATH+"\"\""+INPUT_PATH+"\"";

Runtime.getRuntime().exec(cmd);

}catch(IOExceptione)

{

e.printStackTrace();

}}}

}

String cmd = "....";此处代码是调用创建的bat文件进行转换

8) 测试转换

JAVA代码

publicstaticvoidmain(String[]args)

{

ConvertPdf.convertToHtml("C:\\test.pdf","X:\\xpdf");

}

posted on -04-20 14:26 方涛升 阅读(14514) 评论(3) 编辑 收藏 所属分类: j2ee

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。