Java實(shí)現(xiàn)PDF轉(zhuǎn)HTML/Word/Excel/PPT/PNG的示例代碼
從 Maven 下載 Aspose.PDF
通過將以下配置添加到 pom.xml, 您可以直接從基于Maven的項(xiàng)目 輕松地使用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>
核心代碼實(shí)現(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 共耗時(shí):" + ((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 共耗時(shí):" + ((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 共耗時(shí):" + ((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 共耗時(shí):" + ((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 共耗時(shí):" + ((now - old) / 1000.0) + "秒"); } catch (Exception e) { System.out.println("Pdf 轉(zhuǎn) PNG 失敗..."); e.printStackTrace(); } } }
運(yùn)行方法,idea里右鍵運(yùn)行,如果要做成web系統(tǒng)可以將代碼封裝程web服務(wù),調(diào)用方法就行。
轉(zhuǎn)換文件結(jié)果
以一個(gè)十四的pdf文件轉(zhuǎn)化為例,大部分轉(zhuǎn)換時(shí)間在10-12s,只有轉(zhuǎn)ppt花費(fèi)的時(shí)間久一點(diǎn)需要20s.可能pdf里面不是表格類的內(nèi)容,所以轉(zhuǎn)換excel文件后,樣式差別會(huì)有點(diǎn)大,其他文件轉(zhuǎn)換后樣式和之前是保持一樣的。
以上就是Java實(shí)現(xiàn)PDF轉(zhuǎn)HTML/Word/Excel/PPT/PNG的示例代碼的詳細(xì)內(nèi)容,更多關(guān)于Java PDF轉(zhuǎn)HTML Word Excel PPT PNG的資料請關(guān)注腳本之家其它相關(guān)文章!
- Java實(shí)現(xiàn)Html轉(zhuǎn)Pdf的方法
- Java?將PDF轉(zhuǎn)為HTML時(shí)保存到流的方法和步驟
- Java實(shí)現(xiàn)Word/Pdf/TXT轉(zhuǎn)html的實(shí)例代碼
- JAVA實(shí)現(xiàn)PDF轉(zhuǎn)HTML文檔的示例代碼
- Java實(shí)現(xiàn)Word/Pdf/TXT轉(zhuǎn)html的示例
- Java實(shí)現(xiàn)word/pdf轉(zhuǎn)html并在線預(yù)覽
- Java中將Html轉(zhuǎn)換為PDF的方法和步驟
- java實(shí)現(xiàn)html轉(zhuǎn)pdf方法步驟
相關(guān)文章
eclipse下搭建hibernate5.0環(huán)境的步驟(圖文)
這篇文章主要介紹了eclipse下搭建hibernate5.0環(huán)境的步驟(圖文),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-05-05Java通過反射機(jī)制將對象封裝成JSON和JsonArray格式
這篇文章主要介紹了Java通過反射機(jī)制將對象封裝成JSON和JsonArray格式,JAVA反射機(jī)制是在運(yùn)行狀態(tài)中,對于任意一個(gè)實(shí)體類,都能夠知道這個(gè)類的所有屬性和方法,需要的朋友可以參考下2023-10-10java long轉(zhuǎn)String +Codeforces110A案例
這篇文章主要介紹了java long轉(zhuǎn)String +Codeforces110A案例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-09-09mybatis-plus中wrapper的用法實(shí)例詳解
本文給大家介紹了mybatis-plus中wrapper的用法,包括條件構(gòu)造器關(guān)系、項(xiàng)目實(shí)例及具體使用操作,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-02-02