Java中將多個(gè)PDF文件合并為一個(gè)PDF的方法步驟
前言
如果您正在開發(fā)涉及處理 PDF 文件的 Java 項(xiàng)目,則可能需要將多個(gè) PDF 文件合并到一個(gè)文檔中。在本文中,我們將演示如何使用 Java 編程語言來實(shí)現(xiàn)這一目標(biāo)。我們將從以下兩個(gè)方面向您展示如何將多個(gè)PDF文件合并為一個(gè)PDF:
- 將文件中的多個(gè) PDF 合并為單個(gè) PDF
- 將流中的多個(gè) PDF 合并為單個(gè) PDF
第 1 部分:了解 Spire.PDF 庫(kù)
要在 Java 中合并 PDF 文件,我們將使用Spire.PDF 庫(kù)。Spire.PDF for Java 是一個(gè) PDF API,使 Java 應(yīng)用程序能夠在不使用 Adob??e Acrobat 的情況下讀取、寫入和保存 PDF 文檔。它提供了用于操作 PDF 文件的廣泛功能,包括將多個(gè) PDF 文件合并到單個(gè)文檔中。
在我們使用 Spire.PDF 合并 PDF 文件之前,我們需要將其依賴項(xiàng)添加到我們的 Java 項(xiàng)目中。我們可以通過向 Maven 項(xiàng)目添加以下依賴項(xiàng)來實(shí)現(xiàn)此目的:
<repositories> <repository> <id>com.e-iceblue</id> <name>e-iceblue</name> <url>https://repo.e-iceblue.com/nexus/content/groups/public/</url> </repository> </repositories> <dependencies> <dependency> <groupId>e-iceblue</groupId> <artifactId>spire.pdf</artifactId> <version>9.5.6</version> </dependency> </dependencies>
第 2 部分:編寫 Java 代碼
一旦我們將 Spire.PDF for java 依賴項(xiàng)添加到我們的項(xiàng)目中,我們就可以開始編寫 Java 代碼來合并多個(gè) PDF 文件。將 PDF 與 Spire.PDF 組合在一起非常簡(jiǎn)單。以下是合并兩個(gè) PDF 文檔然后將它們合并為一個(gè)的步驟。
從文件加載 PDF,然后將它們合并到新的 PDF
獲取要合并的文檔的路徑并將其存儲(chǔ)在 String 數(shù)組中。
使用PdfDocument.mergeFiles()方法合并選定的 PDF 文件。
使用PdfDocumentBase.save()方法保存 PDF 文檔。
import com.spire.pdf.*; public class mergePDF { public static void main(String[] args) throws Exception { //Get the paths of the documents to be merged String[] files = new String[] { "D:\\sample.pdf", "D:\\sample1.pdf"}; //Merge documents and return an object of PdfDocumentBase PdfDocumentBase pdf = PdfDocument.mergeFiles(files); //Save the result to a PDF file pdf.save("MergedPDF.pdf", FileFormat.PDF); } }
從流中加載 PDF,然后將它們合并到新的 PDF
從流中加載 PDF 并將其合并為新的 PDF 是處理多個(gè) PDF 文檔而無需將它們保存到磁盤的便捷有效的方法。當(dāng)處理您不想存儲(chǔ)在本地驅(qū)動(dòng)器上的大型或敏感文件時(shí),此方法特別有用。Spire.PDF還支持從流中加載PDF,然后將它們組合成一個(gè)新的PDF文件。
獲取 PDF 流的路徑,然后將它們存儲(chǔ)到FileInputStream數(shù)組中。
使用PdfDocument.mergeFiles()方法合并選定的 PDF 文件。
使用PdfDocumentBase.save()方法保存 PDF 文檔。
import com.spire.pdf.*; import java.io.*; public class mergePDFbyStream { public static void main(String[] args) throws Exception { FileInputStream stream1 = new FileInputStream(new File("sample.pdf")); FileInputStream stream2 = new FileInputStream(new File("sample1.pdf")); InputStream[] streams = new FileInputStream[]{stream1, stream2}; //Merge these documents and return an object of PdfDocumentBase PdfDocumentBase pdf = PdfDocument.mergeFiles(streams); //Save the result to a PDF file pdf.save("MergedPDF.pdf", FileFormat.PDF); } }
結(jié)論
就是這樣!您已使用 Java 編程語言和 Spire.PDF 庫(kù)成功將多個(gè) PDF 文件合并為一個(gè)文檔。總體而言,從文件或流加載 PDF 并將其合并為新的 PDF 是一種以安全、高效的方式管理多個(gè) PDF 文檔的強(qiáng)大技術(shù)。
到此這篇關(guān)于Java中將多個(gè)PDF文件合并為一個(gè)PDF的文章就介紹到這了,更多相關(guān)Java合并PDF文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring Boot 實(shí)現(xiàn)配置文件加解密原理
這篇文章主要介紹了Spring Boot 實(shí)現(xiàn)配置文件加解密原理,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06解決org.apache.ibatis.binding.BindingException:?Invalid?boun
這篇文章主要介紹了解決org.apache.ibatis.binding.BindingException:?Invalid?bound?statement?(not?found)問題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-05-05Java中ByteArrayInputStream和ByteArrayOutputStream用法詳解
這篇文章主要介紹了Java中ByteArrayInputStream和ByteArrayOutputStream用法詳解,?ByteArrayInputStream?的內(nèi)部額外的定義了一個(gè)計(jì)數(shù)器,它被用來跟蹤?read()?方法要讀取的下一個(gè)字節(jié)2022-06-06Mybatis中 mapper-locations和@MapperScan的作用
這篇文章主要介紹了Mybatis中 mapper-locations和@MapperScan的作用,mybatis.mapper-locations在SpringBoot配置文件中使用,作用是掃描Mapper接口對(duì)應(yīng)的XML文件,需要的朋友可以參考下2023-05-05java selenium Selenium IDE介紹及用法
本文主要介紹java selenium Selenium IDE,這里整理了相關(guān)資料和介紹如何安裝 Selenium IDE和使用方法,有需要的小伙伴可以參考下2016-08-08Java如何利用CompletableFuture描述任務(wù)之間的關(guān)系
Java如何根據(jù)線程的執(zhí)行結(jié)果執(zhí)行下一步動(dòng)作呢,F(xiàn)uture的另一個(gè)實(shí)現(xiàn)類CompletableFuture能夠優(yōu)雅的解決異步化問題,下面就跟隨小編一起了解一下吧2023-07-07Java實(shí)戰(zhàn)之吃貨聯(lián)盟訂餐系統(tǒng)
這篇文章主要介紹了Java實(shí)戰(zhàn)之吃貨聯(lián)盟訂餐系統(tǒng),文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java的小伙伴們有非常好的幫助,需要的朋友可以參考下2021-04-04Java中g(shù)etSuperclass()方法的使用與原理解讀
文章介紹了Java中的getSuperclass()方法,該方法用于獲取一個(gè)類的直接父類,通過理解其使用方式、工作原理以及實(shí)際應(yīng)用場(chǎng)景,可以更好地利用反射機(jī)制處理類的繼承關(guān)系,實(shí)現(xiàn)動(dòng)態(tài)類型檢查、類加載以及序列化等功能2025-01-01Spring JDBCTemplate原理及使用實(shí)例
這篇文章主要介紹了Spring JDBCTemplate原理及使用實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03