日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

JAVA實(shí)現(xiàn)DOC轉(zhuǎn)PDF的示例代碼

瀏覽:22日期:2023-12-07 17:31:48
目錄一、下載依賴二、代碼實(shí)現(xiàn)三、轉(zhuǎn)換結(jié)果四、后續(xù)研究五、總結(jié)

Word作為目前主流的文本編輯軟件之一,功能十分強(qiáng)大,應(yīng)用人群廣,但是它也存在一些問題。像是Word文件在不同軟件或操作平臺(tái)之間傳輸?shù)臅r(shí)候,時(shí)不時(shí)會(huì)出現(xiàn)各種格式的“變化”,也會(huì)有點(diǎn)“不穩(wěn)定”,例如內(nèi)容和格式經(jīng)常容易篡動(dòng)。

相較于Word,pdf格式文件顯然優(yōu)秀不少。雖然在內(nèi)容編輯和修改方面表現(xiàn)不佳,但pdf格式文件在不同平臺(tái)和軟件上的穩(wěn)定性表現(xiàn)著實(shí)出色。日常辦公中,越來越多的會(huì)選擇將編輯好的Word文件轉(zhuǎn)換成Pdf格式文件,然后再分享給第三方瀏覽。

如果只是1個(gè)Word文件轉(zhuǎn)換成Pdf文件,簡直so easy;10個(gè)Word文件轉(zhuǎn)換成pdf文件,雖煩躁,但能忍;如果是將1000個(gè)word文件轉(zhuǎn)換成pdf文件呢?這會(huì)估計(jì)一股無名之火直沖天靈蓋,立馬想摔電腦的沖動(dòng)都有了。

但對(duì)于程序猿來說,操作起來顯然會(huì)容易很多,正好接到一個(gè)任務(wù),索性就來和大家分享一下:將docx轉(zhuǎn)成PDF文檔,還要以代碼的方式實(shí)現(xiàn)批量操作。先后參考了Apache poi java庫以及docx4j組件,于是選擇以docx4j組件來進(jìn)行文檔操作。

第一批次的文檔共90篇:

JAVA實(shí)現(xiàn)DOC轉(zhuǎn)PDF的示例代碼

以下開始實(shí)現(xiàn)docx4j的文檔轉(zhuǎn)PDF功能:

一、下載依賴

docx4j所有的依賴jar包使用marven去處理還是蠻簡潔的:

<dependency><groupId>org.docx4j</groupId><artifactId>docx4j-JAXB-Internal</artifactId><version>8.2.4</version></dependency><dependency><groupId>org.docx4j</groupId><artifactId>docx4j-export-fo</artifactId><version>8.2.4</version></dependency>

就兩個(gè),短暫等待下載依賴之后發(fā)現(xiàn),docx4j的依賴jar包還是挺多的:

JAVA實(shí)現(xiàn)DOC轉(zhuǎn)PDF的示例代碼

手動(dòng)開始敲代碼吧。

二、代碼實(shí)現(xiàn)

package com.convert.test;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import org.docx4j.Docx4J;import org.docx4j.fonts.IdentityPlusMapper;import org.docx4j.fonts.Mapper;import org.docx4j.fonts.PhysicalFonts;import org.docx4j.openpackaging.exceptions.Docx4JException;import org.docx4j.openpackaging.packages.WordprocessingMLPackage;public class ConvertTest {public static void main(String[] args) {word2pdf('D:tran2.doc', 'D:tran2.pdf');}public static void word2pdf(String source, String target) {try { WordprocessingMLPackage pkg = Docx4J.load(new File(source)); Mapper fontMapper = new IdentityPlusMapper(); fontMapper.put('隸書', PhysicalFonts.get('LiSu')); fontMapper.put('宋體', PhysicalFonts.get('SimSun')); fontMapper.put('微軟雅黑', PhysicalFonts.get('Microsoft Yahei')); fontMapper.put('黑體', PhysicalFonts.get('SimHei')); fontMapper.put('楷體', PhysicalFonts.get('KaiTi')); fontMapper.put('新宋體', PhysicalFonts.get('NSimSun')); fontMapper.put('華文行楷', PhysicalFonts.get('STXingkai')); fontMapper.put('華文仿宋', PhysicalFonts.get('STFangsong')); fontMapper.put('仿宋', PhysicalFonts.get('FangSong')); fontMapper.put('幼圓', PhysicalFonts.get('YouYuan')); fontMapper.put('華文宋體', PhysicalFonts.get('STSong')); fontMapper.put('華文中宋', PhysicalFonts.get('STZhongsong')); fontMapper.put('等線', PhysicalFonts.get('SimSun')); fontMapper.put('等線 Light', PhysicalFonts.get('SimSun')); fontMapper.put('華文琥珀', PhysicalFonts.get('STHupo')); fontMapper.put('華文隸書', PhysicalFonts.get('STLiti')); fontMapper.put('華文新魏', PhysicalFonts.get('STXinwei')); fontMapper.put('華文彩云', PhysicalFonts.get('STCaiyun')); fontMapper.put('方正姚體', PhysicalFonts.get('FZYaoti')); fontMapper.put('方正舒體', PhysicalFonts.get('FZShuTi')); fontMapper.put('華文細(xì)黑', PhysicalFonts.get('STXihei')); fontMapper.put('宋體擴(kuò)展', PhysicalFonts.get('simsun-extB')); fontMapper.put('仿宋_GB2312', PhysicalFonts.get('FangSong_GB2312')); fontMapper.put('新細(xì)明體', PhysicalFonts.get('SimSun')); pkg.setFontMapper(fontMapper); Docx4J.toPDF(pkg, new FileOutputStream(target));} catch (FileNotFoundException e) { e.printStackTrace();} catch (Docx4JException e) { e.printStackTrace();} catch (Exception e) { e.printStackTrace();}}}三、轉(zhuǎn)換結(jié)果

SLF4J: Failed to load class 'org.slf4j.impl.StaticLoggerBinder'.SLF4J: Defaulting to no-operation (NOP) logger implementationSLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.Using pdbs 420=7mmUsing pdbs 420=7mm

有一點(diǎn)報(bào)錯(cuò),不過并不影響pdf的生成,打開生成的pdf,內(nèi)容也是完整的。算是完成了吧,只要再寫一個(gè)for循環(huán),去遍歷所有的文檔就可以了。但是后來發(fā)現(xiàn)轉(zhuǎn)換下來的pdf數(shù)量少了10個(gè),所有的文檔并沒有全都轉(zhuǎn)換成功。

四、后續(xù)研究

排查一番,發(fā)現(xiàn)這些文檔中有10個(gè)doc文檔,就該就是這10個(gè)沒有成功了,單獨(dú)拎出來轉(zhuǎn)換一下,結(jié)果就報(bào)錯(cuò)了:

SLF4J: Failed to load class 'org.slf4j.impl.StaticLoggerBinder'.SLF4J: Defaulting to no-operation (NOP) logger implementationSLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.org.docx4j.openpackaging.exceptions.Docx4JException: This file seems to be a binary doc/ppt/xls, not an encrypted OLE2 file containing a doc/pptx/xlsxat org.docx4j.openpackaging.packages.OpcPackage.load(OpcPackage.java:612)at org.docx4j.openpackaging.packages.OpcPackage.load(OpcPackage.java:414)at org.docx4j.openpackaging.packages.OpcPackage.load(OpcPackage.java:287)at org.docx4j.openpackaging.packages.OpcPackage.load(OpcPackage.java:265)at org.docx4j.openpackaging.packages.WordprocessingMLPackage.load(WordprocessingMLPackage.java:168)at org.docx4j.Docx4J.load(Docx4J.java:232)at com.convert.test.ConvertTest.word2pdf(ConvertTest.java:26)at com.convert.test.ConvertTest.main(ConvertTest.java:19)

This file seems to be a binary doc/ppt/xls, not an encrypted OLE2 file containing a doc/pptx/xlsx“此文件似乎是一個(gè)二進(jìn)制文件doc/ppt/xls,而不是包含doc/pptx/xlsx的加密OLE2文件”貌似docx4j并不能完美的支持所有的word文檔,至少doc文檔并不能支持。我想到之前有小伙伴也遇到過這樣問題,后來說是用了永中的office轉(zhuǎn)換,索性今天自己也來嘗試一下。

三下五除二,一頓操作,永中office官網(wǎng)上的office直接就能把我的doc文檔轉(zhuǎn)成html展示在瀏覽器上,心細(xì)如塵的我,還在其官網(wǎng)上發(fā)現(xiàn)有一款“PDF工具集”的產(chǎn)品:

JAVA實(shí)現(xiàn)DOC轉(zhuǎn)PDF的示例代碼

在文章的右側(cè)有“開發(fā)者”選項(xiàng),可以直接點(diǎn)擊它進(jìn)入到轉(zhuǎn)換的界面。進(jìn)入之后,發(fā)現(xiàn)永中支持的格式還是不少的,在頁面的上半部分就列出了當(dāng)前支持的所有格式:

JAVA實(shí)現(xiàn)DOC轉(zhuǎn)PDF的示例代碼

繼續(xù)向下滾動(dòng)鼠標(biāo)滾輪,到達(dá)文檔轉(zhuǎn)換的位置:

JAVA實(shí)現(xiàn)DOC轉(zhuǎn)PDF的示例代碼

可以直接點(diǎn)擊上傳一份doc文檔,等待上傳完畢,就可以直接將doc文檔轉(zhuǎn)換成PDF文檔了,這樣一來,不管多少個(gè)文件,都能一鍵實(shí)現(xiàn)word文件轉(zhuǎn)換成pdf文件,小伙伴們?cè)僖膊挥脫?dān)心了。

五、總結(jié)

其實(shí),目前市面上已有的文檔轉(zhuǎn)換類的產(chǎn)品非常多,市場(chǎng)競(jìng)爭十分激烈。但依舊不妨礙有好的產(chǎn)品涌現(xiàn)出來,受到一眾用戶的喜歡和追捧。

一款好的產(chǎn)品一定是契合用戶的本性,能夠?qū)τ脩粜纬梢环N強(qiáng)大的吸引力,將其牢牢“粘住”。就像永中的這款產(chǎn)品,緊跟市場(chǎng)需求,更看到了用戶的痛點(diǎn),真正做到用一款簡單、實(shí)用、好操作的產(chǎn)品,贏得市場(chǎng),更贏得了用戶!

到此這篇關(guān)于JAVA實(shí)現(xiàn)DOC轉(zhuǎn)PDF的示例代碼的文章就介紹到這了,更多相關(guān)JAVA實(shí)現(xiàn)DOC轉(zhuǎn)PDF功能內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Java
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
黄色在线一区| 精品欧美视频| 视频精品一区二区| 亚洲精品中文字幕乱码| 精品欧美一区二区三区在线观看| 久久99精品久久久野外观看| 91成人福利| 91成人小视频| 国产欧美日韩在线一区二区| 欧美日本二区| 国产乱子精品一区二区在线观看| 日韩欧美美女在线观看| 婷婷激情久久| 欧美福利专区| 日韩一级精品| 亚洲欧美日本国产专区一区| 国产精品日韩久久久| aa亚洲婷婷| 日韩中文字幕麻豆| 视频一区中文字幕精品| 亚洲精品第一| 国产亚洲一区二区三区不卡| 国产乱码精品一区二区三区亚洲人 | 激情国产在线| 女生影院久久| 欧美69视频| 伊人精品一区| 精品1区2区3区4区| 在线国产日韩| 国产日韩视频在线| 久久亚洲道色| 欧美成人基地| 成人av动漫在线观看| 欧美特黄一级| 视频国产精品| 久久精品亚洲一区二区| 亚洲va中文在线播放免费| 日韩中文在线播放| 亚洲一区二区三区免费在线观看| 婷婷成人av| 国产成人77亚洲精品www| 美女久久久久| 日韩av一二三| 久久香蕉精品香蕉| 黄色亚洲免费| 国产精品nxnn| 婷婷综合社区| 国产精品手机在线播放| 色综合www| 日本亚洲视频| 喷白浆一区二区| 精品久久在线| 蜜桃国内精品久久久久软件9| 91嫩草精品| av免费不卡国产观看| 亚洲一区激情| 国产欧美日韩一区二区三区在线| 丰满少妇一区| 亚洲色诱最新| 蜜桃91丨九色丨蝌蚪91桃色 | 人人草在线视频| 欧洲毛片在线视频免费观看| 亚洲永久精品唐人导航网址| 日韩精品一区二区三区免费视频| 97精品一区二区| 亚洲色诱最新| 国产精品久一| 精精国产xxxx视频在线播放| 国产亚洲福利| 国产精品.xx视频.xxtv| 日韩欧美综合| 麻豆91精品| 久久一区视频| 免费在线看一区| 鲁大师精品99久久久| 99在线精品视频在线观看| 国产剧情一区二区在线观看| 午夜精品成人av| 日韩国产在线观看| 精品久久不卡| 美女精品网站| 牛牛精品成人免费视频| 亚洲欧美一区在线| 国产欧美高清视频在线| 久久久久国产精品一区三寸| 亚洲欧美在线专区| 色网在线免费观看| 亚洲精品美女91| 国产v综合v| 午夜久久av| 日韩欧美看国产| 亚洲啊v在线| 亚洲日本久久| 久草免费在线视频| 亚洲一区二区三区久久久| 麻豆国产91在线播放| 久久婷婷av| 国产探花在线精品一区二区| 九九综合九九| 久久一区亚洲| 天堂va欧美ⅴa亚洲va一国产| 欧美二三四区| 国产剧情一区| 在线一区视频| 桃色一区二区| 国产精品v亚洲精品v日韩精品| 亚洲一区中文| 日韩深夜视频| 国产精品综合| 亚洲免费影院| 天堂√中文最新版在线| 一区二区三区午夜视频| 成人三级高清视频在线看| 亚洲图片久久| 亚洲一区二区三区高清| 久久男人av资源站| 欧美日韩1区| 美女国产精品| 久久亚洲精品中文字幕蜜潮电影| 久久不卡国产精品一区二区| 日韩中文字幕区一区有砖一区 | 日韩精品1区2区3区| 一区二区小说| 日韩一区电影| 国产福利一区二区三区在线播放| 亚洲一区有码| 国产99久久| 精精国产xxxx视频在线野外 | 99热精品久久| 在线看片福利| 激情久久一区二区| 国产精品欧美在线观看| 日韩激情一区二区| 日本欧洲一区二区| 国产亚洲激情| 国产视频一区欧美| 久久国产影院| 精品久久久网| 欧美黄色精品| 国产精品调教| 欧美在线观看天堂一区二区三区| 国产免费成人| 在线综合欧美| 妖精视频成人观看www| 欧美特黄一区| 99国产精品私拍| 亚洲精品一区二区在线看| 日产精品一区二区| jizzjizz中国精品麻豆| 国产精品成人a在线观看| 国产欧美日韩视频在线 | 久久成人一区| 日韩视频久久| 亚州av乱码久久精品蜜桃| 成人亚洲精品| 亚洲www免费| 久久影视一区| 亚洲午夜视频| 国产精品免费看| 丝袜国产日韩另类美女| 色8久久久久| 国产精品一站二站| 精品国产成人| 日韩欧美一区二区三区在线观看| 日韩欧美精品综合| 亚洲高清成人| 91精品在线观看国产| 午夜亚洲福利在线老司机| 69堂精品视频在线播放| 91亚洲成人| 视频一区欧美精品| 久久精品国产免费| 亚洲精品午夜av福利久久蜜桃| 亚洲a级精品| 日本精品黄色| 国产精品99免费看| 日本午夜精品一区二区三区电影| 国产欧美日韩精品高清二区综合区 | 欧美另类中文字幕 | 国产精品成人自拍| 老司机免费视频一区二区| av在线资源| 欧美/亚洲一区| 国产欧美一区二区精品久久久| 麻豆精品久久久| 麻豆精品av| 国产 日韩 欧美一区| 一本色道精品久久一区二区三区| 亚洲视频二区| 国产精品亚洲综合久久| 国产精品久久久久久久久妇女| 日韩精品欧美| 黄色成人精品网站| 国产激情一区| 亚洲精品乱码| 日韩精品社区| 欧美成a人片免费观看久久五月天| 国产一区2区| 99精品在线| 久久国产精品毛片|