Java 合並、拆分PDF文檔


處理PDF文檔時,我們可以通過合並的方式,來任意組幾個不同的PDF文件或者通過拆分將一個文件分解成多個子文件,這樣的好處是對文檔的存儲、管理很方便。下面將通過Java程序代碼介紹具體的PDF合並、拆分的方法。

工具

:2.0.0版本的比之前的1.1.0版本在功能上做了很大提升,支持所有收費版的功能,對於通過Java編程來處理PDF文檔非常實用。

jar文件導入:

步驟 1在Java程序中新建一個文件夾可命名為Lib。下載安裝包后,解壓,將解壓后的文件夾下的子文件夾lib中的Spire.Pdf.jar和Spire.Common.jar兩個文件復制到新建的文件夾下,如下圖:

步驟2建好文件夾后,引用兩個文件:選中這兩個jar文件,點擊鼠標右鍵,選擇“Build Path” – “Add to Build Path”。

【示例1】合並PDF文檔

import com.spire.pdf.*;
import java.io.*;

public class Merge2 {
    public static void main(String[] args) throws Exception {
        
        String outputFile = "output/mergeFilesByStream.pdf";
        FileInputStream stream1 = new FileInputStream(new File("sample1.pdf"));
        FileInputStream stream2 = new FileInputStream(new File("sample2.pdf"));
        FileInputStream stream3 = new FileInputStream(new File("sample3.pdf"));
        //加載PDF示例文檔
        InputStream[] streams = new FileInputStream[]{stream1, stream2, stream3};

        //合並PDF文檔
        PdfDocumentBase doc = PdfDocument.mergeFiles(streams);

        //保存文檔
        doc.save(outputFile);
        doc.close();
    }
}

合並前:

合並后:

【示例2】拆分PDF文檔

這里分2種情況來進行。

測試文檔:

1. 按每一頁單獨拆分

import com.spire.pdf.*;

public class SplitPDF1 {
    public static void main(String[] args)
    {
    //加載需要拆分的PDF文檔
    PdfDocument doc = new PdfDocument();
    doc.loadFromFile("test.pdf");

    //調用方法split()將PDF文檔按每一頁拆分為單獨的文檔
    doc.split("output/splitDocument-{0}.pdf", 0);
    doc.close();
    }
}

拆分結果:

2. 按指定頁數范圍拆分

import com.spire.pdf.*;
import com.spire.pdf.graphics.PdfMargins;

import java.awt.geom.Point2D;

public class SplitPDF2 {
    public static void main(String[] args)
    {

        //加載需要拆分的PDF文檔
        PdfDocument doc = new PdfDocument();
        doc.loadFromFile("test.pdf");

        //新建第1個PDF文檔1
        PdfDocument newpdf1 = new PdfDocument();
        PdfPageBase page;

        //將原PDF文檔的第1、2頁拆分,並保存到newpdf1
        for(int i = 0;i<2;i++)
        {
            page = newpdf1.getPages().add(doc.getPages().get(i).getSize(), new PdfMargins(0));
            doc.getPages().get(i).createTemplate().draw(page, new Point2D.Float(0,0));
        }
        newpdf1.saveToFile("split/result1.pdf");

        //新建第2個PDF文檔
        PdfDocument newpdf2 = new PdfDocument();

        //將原PDF文檔的第3、4頁拆分,並保存到newpdf2
        for(int i = 2;i<4;i++)
        {
            page = newpdf2.getPages().add(doc.getPages().get(i).getSize(), new PdfMargins(0));
            doc.getPages().get(i).createTemplate().draw(page, new Point2D.Float(0,0));
        }
        newpdf2.saveToFile("split/result2.pdf");
    }
}

拆分結果:

(本文完)

轉載請注明出處!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM