1. 程式人生 > 實用技巧 >Java 拆分 PDF 文件

Java 拆分 PDF 文件

在辦公過程中,我們有時會遇到需要將一個比較大的PDF文件拆分成多個文件的情況, 今天這篇文章就將介紹兩種使用Free Spire.PDF for Java來拆分PDF文件的方法。

方法一:將一個PDF文件均分為多個PDF(每個PDF包含1頁)

方法二: 將一個PDF文件拆分為2個或多個PDF(每個PDF可包含不同的頁數)

Jar包匯入

方法一:下載Free Spire.PDF for Java包並解壓縮,然後將lib資料夾下的Spire.Pdf.jar包作為依賴項匯入到Java應用程式中

方法二:直接通過Maven倉庫安裝JAR包,配置pom.xml檔案的程式碼如下:

<repositories>
    <repository>
        <id>com.e-iceblue</id>
        <url>http://
repo.e-iceblue.cn/repository/maven-public/</url> </repository> </repositories> <dependencies> <dependency> <groupId>e-iceblue</groupId> <artifactId>spire.pdf.free</artifactId> <version>2.6.3</version> </dependency> </dependencies>

原PDF文件如下(包含5頁):

【示例1】將原PDF文件均分為5個PDF文件,每個文件包含1頁:

import com.spire.pdf.*;

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

        //載入PDF文件
        PdfDocument doc = new PdfDocument();
        doc.loadFromFile("sample.pdf");

        //拆分為多個PDF文件
        doc.split("output/splitDocument-{0}.pdf", 0);
        doc.close();
    }
}

拆分後:

【示例2】將原PDF文件的第1-2頁拆分一個PDF文件,第3-5頁拆分為另一個PDF文件:

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

import java.awt.geom.Point2D;

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

        //載入PDF文件
        PdfDocument doc = new PdfDocument();
        doc.loadFromFile("sample.pdf");

        //新建一個PDF文件
        PdfDocument newDoc1 = new PdfDocument();

        PdfPageBase page;

        //將原PDF文件的第1、2頁新增至新建的PDF
        for(int i = 0;i<2;i++)
        {
            page = newDoc1.getPages().add(doc.getPages().get(i).getSize(), new PdfMargins(0));
            doc.getPages().get(i).createTemplate().draw(page, new Point2D.Float(0,0));
        }

        //儲存文件
        newDoc1.saveToFile("split/Doc1.pdf");

        //新建另一個PDF文件
        PdfDocument newDoc2 = new PdfDocument();

        //將原PDF文件的第3至5頁新增至新建的PDF
        for(int i = 2;i<5;i++)
        {
            page = newDoc2.getPages().add(doc.getPages().get(i).getSize(), new PdfMargins(0));
            doc.getPages().get(i).createTemplate().draw(page, new Point2D.Float(0,0));
        }

        //儲存文件
        newDoc2.saveToFile("split/Doc2.pdf");
    }
}

拆分後: