Java實現(xiàn)PDF轉(zhuǎn)HTML/Word/Excel/PPT/PNG的示例代碼
從 Maven 下載 Aspose.PDF
通過將以下配置添加到 pom.xml, 您可以直接從基于Maven的項目 輕松地使用Aspose.PDF for Java 。
<repository> <id>AsposeJavaAPI</id> <name>Aspose Java API</name> <url>https://repository.aspose.com/repo/</url> </repository> <dependency> <groupId>com.aspose</groupId> <artifactId>aspose-pdf</artifactId> <version>22.4</version> </dependency>
核心代碼實現(xiàn)(單類)
import com.aspose.pdf.Document; import com.aspose.pdf.SaveFormat; import com.aspose.pdf.devices.PngDevice; import com.aspose.pdf.devices.Resolution; import java.io.*; public class PDFHelper3 { public static void main(String[] args) throws IOException { pdf2image("C:\\Users\\liuya\\Desktop\\pdf\\示例文件.pdf"); } //轉(zhuǎn)word public static void pdf2word(String pdfPath) { long old = System.currentTimeMillis(); try { String wordPath=pdfPath.substring(0,pdfPath.lastIndexOf("."))+".docx"; FileOutputStream os = new FileOutputStream(wordPath); Document doc = new Document(pdfPath); doc.save(os, SaveFormat.DocX); os.close(); long now = System.currentTimeMillis(); System.out.println("Pdf 轉(zhuǎn) Word 共耗時:" + ((now - old) / 1000.0) + "秒"); } catch (Exception e) { System.out.println("Pdf 轉(zhuǎn) Word 失敗..."); e.printStackTrace(); } } //轉(zhuǎn)ppt public static void pdf2ppt(String pdfPath) { long old = System.currentTimeMillis(); try { String wordPath=pdfPath.substring(0,pdfPath.lastIndexOf("."))+".ppt"; FileOutputStream os = new FileOutputStream(wordPath); Document doc = new Document(pdfPath); doc.save(os, SaveFormat.Pptx); os.close(); long now = System.currentTimeMillis(); System.out.println("Pdf 轉(zhuǎn) PPT 共耗時:" + ((now - old) / 1000.0) + "秒"); } catch (Exception e) { System.out.println("Pdf 轉(zhuǎn) PPT 失敗..."); e.printStackTrace(); } } //轉(zhuǎn)excel public static void pdf2excel(String pdfPath) { long old = System.currentTimeMillis(); try { String wordPath=pdfPath.substring(0,pdfPath.lastIndexOf("."))+".xlsx"; FileOutputStream os = new FileOutputStream(wordPath); Document doc = new Document(pdfPath); doc.save(os, SaveFormat.Excel); os.close(); long now = System.currentTimeMillis(); System.out.println("Pdf 轉(zhuǎn) EXCEL 共耗時:" + ((now - old) / 1000.0) + "秒"); } catch (Exception e) { System.out.println("Pdf 轉(zhuǎn) EXCEL 失敗..."); e.printStackTrace(); } } //轉(zhuǎn)html public static void pdf2Html(String pdfPath) { long old = System.currentTimeMillis(); try { String htmlPath=pdfPath.substring(0,pdfPath.lastIndexOf("."))+".html"; Document doc = new Document(pdfPath); doc.save(htmlPath,SaveFormat.Html); long now = System.currentTimeMillis(); System.out.println("Pdf 轉(zhuǎn) HTML 共耗時:" + ((now - old) / 1000.0) + "秒"); } catch (Exception e) { System.out.println("Pdf 轉(zhuǎn) HTML 失敗..."); e.printStackTrace(); } } //轉(zhuǎn)圖片 public static void pdf2image(String pdfPath) { long old = System.currentTimeMillis(); try { Resolution resolution = new Resolution(300); String dataDir=pdfPath.substring(0,pdfPath.lastIndexOf(".")); File imageDir = new File(dataDir+"_images"); imageDir.mkdirs(); Document doc = new Document(pdfPath); PngDevice pngDevice = new PngDevice(resolution); for (int pageCount = 1; pageCount <= doc.getPages().size(); pageCount++) { OutputStream imageStream = new FileOutputStream(imageDir+"/"+pageCount+".png"); pngDevice.process(doc.getPages().get_Item(pageCount), imageStream); imageStream.close(); } long now = System.currentTimeMillis(); System.out.println("Pdf 轉(zhuǎn) PNG 共耗時:" + ((now - old) / 1000.0) + "秒"); } catch (Exception e) { System.out.println("Pdf 轉(zhuǎn) PNG 失敗..."); e.printStackTrace(); } } }
運行方法,idea里右鍵運行,如果要做成web系統(tǒng)可以將代碼封裝程web服務(wù),調(diào)用方法就行。
轉(zhuǎn)換文件結(jié)果
以一個十四的pdf文件轉(zhuǎn)化為例,大部分轉(zhuǎn)換時間在10-12s,只有轉(zhuǎn)ppt花費的時間久一點需要20s.可能pdf里面不是表格類的內(nèi)容,所以轉(zhuǎn)換excel文件后,樣式差別會有點大,其他文件轉(zhuǎn)換后樣式和之前是保持一樣的。
以上就是Java實現(xiàn)PDF轉(zhuǎn)HTML/Word/Excel/PPT/PNG的示例代碼的詳細內(nèi)容,更多關(guān)于Java PDF轉(zhuǎn)HTML Word Excel PPT PNG的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Java中 % 與Math.floorMod() 區(qū)別詳解
這篇文章主要介紹了Java中 % 與Math.floorMod() 區(qū)別詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-08-08java WebSocket實現(xiàn)聊天消息推送功能
這篇文章主要為大家詳細介紹了java WebSocket實現(xiàn)聊天消息推送功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-07-07根據(jù)URL下載圖片至客戶端、服務(wù)器的簡單實例
下面小編就為大家?guī)硪黄鶕?jù)URL下載圖片至客戶端、服務(wù)器的簡單實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-12-12專屬于程序員的浪漫-Java輸出動態(tài)閃圖iloveyou
這篇文章主要介紹了專屬于程序員的浪漫-Java輸出動態(tài)閃圖iloveyou,具有一定參考價值,需要的朋友可以了解下。2017-11-11Java數(shù)據(jù)結(jié)構(gòu)之平衡二叉樹的原理與實現(xiàn)
平衡樹(Balance Tree,BT) 指的是,任意節(jié)點的子樹的高度差都小于等于1。常見的符合平衡樹的有,B樹(多路平衡搜索樹)、AVL樹(二叉平衡搜索樹)等。本文將詳細介紹平衡二叉樹的概念和實現(xiàn)原理以及它的實現(xiàn)2022-01-01