最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java中Aspose組件進行多文檔間的轉(zhuǎn)換方法總結(jié)

 更新時間:2019年02月22日 11:10:18   作者:顧東城  
在本篇文章里我們給大家分享了關(guān)于Java中Aspose組件進行多文檔間的轉(zhuǎn)換方法內(nèi)容,需要的朋友們學(xué)習(xí)下吧。

什么是Aspose?

Aspose.Total是Aspose公司旗下的最全的一套office文檔管理方案,主要提供.net跟java兩個開發(fā)語言的控件套包,通過它,我們可以有計劃地操縱一些商業(yè)中最流行的文件格式:Word, Excel, PowerPoint, Project,等office文檔以及PDF文檔。 除了強大的文件操縱組件之外,Aspose.Total 還提供了用于制圖、寫電子郵件、拼寫檢查、創(chuàng)建條形碼、生成ad hoc 查詢、重現(xiàn)格式以及工作流等組件,運用它我們可以整理一個完整的文檔管理方案。

包含的功能:

Aspose.Word:

Aspose.Words是一款先進的類庫,通過它可以直接在各個應(yīng)用程序中執(zhí)行各種文檔處理任務(wù)。Aspose.Words支持DOC,OOXML,RTF,HTML,OpenDocument, PDF, XPS, EPUB和其他格式。使用Aspose.Words,您可以生成,更改,轉(zhuǎn)換,渲染和打印文檔而不使用Microsoft Word。

Aspose.Cell:

Aspose.Cells是一個廣受贊譽的電子表格組件,支持所有Excel格式類型的操作,用戶無需依靠Microsoft Excel也可為其應(yīng)用程序嵌入讀寫和處理Excel數(shù)據(jù)表格的功能。Aspose.Cells可以導(dǎo)入和導(dǎo)出每一個具體的數(shù)據(jù),表格和格式,在各個層面導(dǎo)入圖像,應(yīng)用復(fù)雜的計算公式,并將Excel的數(shù)據(jù)保存為各種格式等等---完成所有的這一切功能都無需使用Microsoft Excel 和Microsoft Office Automation。

Aspose.PDF:

Aspose.Pdf是一個PDF文檔創(chuàng)建組件,可以幫助用戶無需使用Adobe Acrobat 即可讀寫和操作PDF文件。Aspose.Pdf豐富功能:PDF文檔壓縮選項,表格創(chuàng)建與操作,圖表支持,圖像功能,豐富的超鏈接功能,擴展的安全性組件以及自定義字體處理。

Aspose.BarCode:

Aspose.BarCode是一個功能強大,且穩(wěn)健的條形碼生成和識別組件。

Aspose.Slide:

Aspose.Slides是一個獨特的可用于PowerPoint管理的控件,用戶無需使用Microsoft PowerPoint即可在應(yīng)用程序中對Microsoft PowerPoint文件進行讀寫以及操作。Aspose.Slides是第一個能在用戶的應(yīng)用程序中對PowerPoint文檔進行管理的組件。

Aspose.Task:

Aspose.Tasks 是一個非圖形的.NET 項目管理組件,使.NET應(yīng)用程序可以閱讀以及撰寫、管理項目文檔時無須使用Microsoft Project。使用Aspose.Tasks 你可以閱讀和改變?nèi)蝿?wù),重現(xiàn)任務(wù),資源,資源分配,關(guān)系和日歷。Aspose.Tasks 是一個提供穩(wěn)定性和靈活性的非常成熟的產(chǎn)品。

我們今天重點講解的是前面3個,Aspose.Words、Aspose.Cells、Aspose.Pdf,利用這三個組件分別實現(xiàn)Word轉(zhuǎn)Pdf、Excel轉(zhuǎn)Pdf、以及多個Pdf合并為一個Pdf的功能,下面上干貨。

Jar包及License獲取方式:

鏈接:https://pan.baidu.com/s/1PwtvfPGLu1MIpMLNHKHTmg

提取碼:5la1

import com.aspose.words.Document;
import com.aspose.words.License;
import com.aspose.words.SaveFormat;

import java.io.ByteArrayInputStream;
import java.io.FileInputStream;
import java.io.InputStream;

/**
 * Created with IntelliJ IDEA
 * Created By 顧東城
 * Date: 2019/2/21
 * Time: 14:01
 * Desc: 使用Aspose.Words將word文件轉(zhuǎn)換為pdf文件
 */
public class AsposeWordTest {

 /**
 * 獲取license
 *
 * @return
 */
 private static boolean getLicense() {
 boolean result = false;
 try {
  // 憑證
  String license =
   "<License>\n" +
    " <Data>\n" +
    " <Products>\n" +
    " <Product>Aspose.Total for Java</Product>\n" +
    " <Product>Aspose.Words for Java</Product>\n" +
    " </Products>\n" +
    " <EditionType>Enterprise</EditionType>\n" +
    " <SubscriptionExpiry>20991231</SubscriptionExpiry>\n" +
    " <LicenseExpiry>20991231</LicenseExpiry>\n" +
    " <SerialNumber>8bfe198c-7f0c-4ef8-8ff0-acc3237bf0d7</SerialNumber>\n" +
    " </Data>\n" +
    " <Signature>sNLLKGMUdF0r8O1kKilWAGdgfs2BvJb/2Xp8p5iuDVfZXmhppo+d0Ran1P9TKdjV4ABwAgKXxJ3jcQTqE/2IRfqwnPf8itN8aFZlV3TJPYeD3yWE7IT55Gz6EijUpC7aKeoohTb4w2fpox58wWoF3SNp6sK6jDfiAUGEHYJ9pjU=</Signature>\n" +
    "</License>";
  InputStream is = new ByteArrayInputStream(license.getBytes("UTF-8"));
  License asposeLic = new License();
  asposeLic.setLicense(is);
  result = true;
 } catch (Exception e) {
  e.printStackTrace();
 }
 return result;
 }

 /**
 * word 轉(zhuǎn) pdf
 * @param docPath 要轉(zhuǎn)換的word文件路徑
 * @param pdfPath 轉(zhuǎn)換完成后輸出的pdf文件路徑
 */
 public static void doc2pdf(String docPath,String pdfPath) {
 if (!getLicense()) {
  return;
 }

 try {
  Document convertDoc = new Document(new FileInputStream(docPath));
  convertDoc.save(pdfPath, SaveFormat.PDF);
 } catch (Exception e) {
  e.printStackTrace();
 }
 }

 public static void main(String[] args) {
 //在硬盤直接創(chuàng)建一個空白pdf即可
 AsposeWordTest.doc2pdf("H:/test.docx","H:/testDoc.pdf");
 }

}
import com.aspose.cells.License;
import com.aspose.cells.SaveFormat;
import com.aspose.cells.Workbook;

import java.io.ByteArrayInputStream;
import java.io.FileInputStream;
import java.io.InputStream;

/**
 * Created with IntelliJ IDEA
 * Created By 顧東城
 * Date: 2019/2/22
 * Time: 9:01
 * Desc: 使用Aspose.Cells將excel文件轉(zhuǎn)換為pdf文件
 */
public class AsposeCellTest {
 /**
 * 獲取license
 *
 * @return
 */
 private static boolean getLicense() {
 boolean result = false;
 try {
  // 憑證
  String license =
   "<License>\n" +
    " <Data>\n" +
    " <Products>\n" +
    " <Product>Aspose.Total for Java</Product>\n" +
    " <Product>Aspose.Words for Java</Product>\n" +
    " </Products>\n" +
    " <EditionType>Enterprise</EditionType>\n" +
    " <SubscriptionExpiry>20991231</SubscriptionExpiry>\n" +
    " <LicenseExpiry>20991231</LicenseExpiry>\n" +
    " <SerialNumber>8bfe198c-7f0c-4ef8-8ff0-acc3237bf0d7</SerialNumber>\n" +
    " </Data>\n" +
    " <Signature>sNLLKGMUdF0r8O1kKilWAGdgfs2BvJb/2Xp8p5iuDVfZXmhppo+d0Ran1P9TKdjV4ABwAgKXxJ3jcQTqE/2IRfqwnPf8itN8aFZlV3TJPYeD3yWE7IT55Gz6EijUpC7aKeoohTb4w2fpox58wWoF3SNp6sK6jDfiAUGEHYJ9pjU=</Signature>\n" +
    "</License>";
  InputStream is = new ByteArrayInputStream(license.getBytes("UTF-8"));
  License asposeLic = new License();
  asposeLic.setLicense(is);
  result = true;
 } catch (Exception e) {
  e.printStackTrace();
 }
 return result;
 }

 /**
 * excel 轉(zhuǎn) pdf
 * @param excelPath 要轉(zhuǎn)換的excel文件路徑
 * @param pdfPath 轉(zhuǎn)換完成后輸出的pdf文件路徑
 */
 public static void excel2pdf(String excelPath,String pdfPath) {
 if (!getLicense()) {
  return;
 }
 try {
  Workbook convertExcel = new Workbook(new FileInputStream(excelPath));
  convertExcel.save(pdfPath, SaveFormat.PDF);
 }catch (Exception e) {
  e.printStackTrace();
 }
 }

 public static void main(String[] args) {
 //在硬盤直接創(chuàng)建一個空白pdf即可
 AsposeCellTest.excel2pdf("H:/test.xlsx","H:/testExcel.pdf");
 }
}
import com.aspose.pdf.Document;
import com.aspose.pdf.License;

import java.io.ByteArrayInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.util.Arrays;
import java.util.List;

/**
 * Created with IntelliJ IDEA
 * Created By 顧東城
 * Date: 2019/2/22
 * Time: 9:24
 * Desc: 使用Aspose.Pdf將多個pdf合并為一個pdf文件
 */
public class AsposePdfTest {
 /**
 * 獲取license
 *
 * @return
 */
 private static boolean getLicense() {
 boolean result = false;
 try {
  // 憑證
  String license =
   "<License>\n" +
    " <Data>\n" +
    " <Products>\n" +
    " <Product>Aspose.Total for Java</Product>\n" +
    " <Product>Aspose.Words for Java</Product>\n" +
    " </Products>\n" +
    " <EditionType>Enterprise</EditionType>\n" +
    " <SubscriptionExpiry>20991231</SubscriptionExpiry>\n" +
    " <LicenseExpiry>20991231</LicenseExpiry>\n" +
    " <SerialNumber>8bfe198c-7f0c-4ef8-8ff0-acc3237bf0d7</SerialNumber>\n" +
    " </Data>\n" +
    " <Signature>sNLLKGMUdF0r8O1kKilWAGdgfs2BvJb/2Xp8p5iuDVfZXmhppo+d0Ran1P9TKdjV4ABwAgKXxJ3jcQTqE/2IRfqwnPf8itN8aFZlV3TJPYeD3yWE7IT55Gz6EijUpC7aKeoohTb4w2fpox58wWoF3SNp6sK6jDfiAUGEHYJ9pjU=</Signature>\n" +
    "</License>";
  InputStream is = new ByteArrayInputStream(license.getBytes("UTF-8"));
  License asposeLic = new License();
  asposeLic.setLicense(is);
  result = true;
 } catch (Exception e) {
  e.printStackTrace();
 }
 return result;
 }

 /**
 *
 * @param pdfPaths 要合并的pdf文件路徑
 * @param mergeSavePath 最終合并完成輸出的pdf文件路徑
 */
 public static void pdfMergePdf(List<String> pdfPaths,String mergeSavePath){
 try {
  Document mergeDocument = new Document();
  for (String pdfPath : pdfPaths) {
  Document document = new Document(new FileInputStream(pdfPath));
  mergeDocument.getPages().add(document.getPages());
  }
  mergeDocument.save(mergeSavePath);
 } catch (FileNotFoundException e) {
  e.printStackTrace();
 }
 }

 public static void main(String[] args) {
 //將需要合并的pdf文件放入list
 List<String> pdfPaths = Arrays.asList("H:/testDoc.pdf","H:/testExcel.pdf");
 //在硬盤直接創(chuàng)建一個空白pdf即可
 AsposePdfTest.pdfMergePdf(pdfPaths,"H:/merge.pdf");
 }
}

注意事項:

  • Aspose.Words、Aspose.Cells、Aspose.Pdf 三個Jar包中都有Document、License、SaveFormat類,如果Idea或者Eclipse控制臺沒有報錯,但是打開PDF提示PDF格式錯誤或者文件損壞的話,請檢查一下導(dǎo)包是否正確。
  • 獲取License網(wǎng)上也有通過類加載器獲取license.xml方式獲取license,但是我嘗試很多次都是報空指針異常,所以采用了直接使用字符串拼接的方式,如果各位有更好的辦法可以直接留言。
  • 博客僅作為博主學(xué)習(xí)記錄,交流使用,如果有不正確的地方,請在評論區(qū)留言指正。

相關(guān)文章

  • java實現(xiàn)excel導(dǎo)出合并單元格的步驟詳解

    java實現(xiàn)excel導(dǎo)出合并單元格的步驟詳解

    這篇文章主要介紹了java實現(xiàn)excel導(dǎo)出合并單元格,通過使用Apache POI庫,我們可以方便地創(chuàng)建Excel文件、填充數(shù)據(jù)、合并單元格和導(dǎo)出Excel文件,需要的朋友可以參考下
    2023-04-04
  • java字符串中${}或者{}等的占位符替換工具類

    java字符串中${}或者{}等的占位符替換工具類

    今天小編就為大家分享一篇關(guān)于java字符串中${}或者{}等的占位符替換工具類,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • springboot配置多數(shù)據(jù)源的實例(MongoDB主從)

    springboot配置多數(shù)據(jù)源的實例(MongoDB主從)

    下面小編就為大家分享一篇springboot配置多數(shù)據(jù)源的實例(MongoDB主從),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12
  • Spring Boot加密配置文件特殊內(nèi)容的示例代碼詳解

    Spring Boot加密配置文件特殊內(nèi)容的示例代碼詳解

    這篇文章主要介紹了Spring Boot加密配置文件特殊內(nèi)容的相關(guān)知識,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-05-05
  • java中的Arrays這個工具類你真的會用嗎(一文秒懂)

    java中的Arrays這個工具類你真的會用嗎(一文秒懂)

    這篇文章主要介紹了java中的Arrays這個工具類你真的會用嗎,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06
  • JAVA JDK8 List分組的實現(xiàn)和用法

    JAVA JDK8 List分組的實現(xiàn)和用法

    今天小編就為大家分享一篇關(guān)于JAVA JDK8 List分組的實現(xiàn)和用法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • Java對象初始化過程代碼塊和構(gòu)造器的調(diào)用順序

    Java對象初始化過程代碼塊和構(gòu)造器的調(diào)用順序

    這篇文章主要介紹了Java對象初始化過程代碼塊和構(gòu)造器的調(diào)用順序,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-08-08
  • 老生常談Java異常處理和設(shè)計(推薦)

    老生常談Java異常處理和設(shè)計(推薦)

    下面小編就為大家?guī)硪黄仙U凧ava異常處理和設(shè)計(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • 詳解Spring Batch 輕量級批處理框架實踐

    詳解Spring Batch 輕量級批處理框架實踐

    這篇文章主要介紹了詳解Spring Batch 輕量級批處理框架實踐,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • 五種Java多線程同步的方法

    五種Java多線程同步的方法

    這篇文章主要為大家詳細(xì)介紹了五種Java多線程同步的方法,需要的朋友可以參考下
    2015-09-09

最新評論

内江市| 化德县| 渝北区| 安溪县| 福贡县| 大宁县| 中江县| 瓮安县| 安陆市| 尉氏县| 策勒县| 绍兴县| 稷山县| 沙洋县| 西华县| 册亨县| 河东区| 太湖县| 眉山市| 兰考县| 隆回县| 长武县| 金平| 东光县| 乐业县| 固安县| 宣城市| 溆浦县| 贵阳市| 临夏市| 札达县| 正定县| 什邡市| 黄冈市| 哈密市| 韶山市| 普兰店市| 公主岭市| 沁源县| 钟祥市| 安宁市|