在办公过程中,我们有时会遇到需要将一个比较大的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");
    }
}

 

拆分后: