How to Split a PDF File in Java Application
Published: 2020-09-02 06:57:35

In daily work, when we are manipulating a large PDF file, we can split it into multiple small files to make the reading or editing easier. Today I'm going to introduce two ways to split a PDF file by using Free Spire.PDF for Java.

**1.** Split every page of the PDF into a separate file.
**2.** Split specific page ranges of the PDF into multiple files.

**Installation**
**Method 1:** Download the [Free Spire.PDF for Java](https://www.e-iceblue.com/Download/pdf-for-java-free.html) and unzip it.Then add the Spire.Pdf.jar file to your project as dependency.

**Method 2:** You can also add the jar dependency to maven project by adding the following configurations to the pom.xml.

```java
<repositories>
        <repository>
            <id>com.e-iceblue</id>
            <name>e-iceblue</name>
            <url>http://repo.e-iceblue.com/nexus/content/groups/public/</url>
        </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>e-iceblue</groupId>
        <artifactId>spire.pdf.free</artifactId>
        <version>2.6.3</version>
    </dependency>
</dependencies>
```


The original PDF file (including 5 pages):
![](https://dev-to-uploads.s3.amazonaws.com/i/p4z35bt7waz143vxdeb2.png)


**【Example 1】Split every page of the PDF into a separate file:
Split the original PDF file into 5 small documents**

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

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

        //Load the PDF file
        PdfDocument doc = new PdfDocument();
        doc.loadFromFile("input1.pdf");

        //Split every page of the PDF into a separate file
        doc.split("output/splitDocument-{0}.pdf", 0);
        doc.close();
    }
}

```

![](https://dev-to-uploads.s3.amazonaws.com/i/rffcakbukcoeawx3eevx.jpg)

**【Example 2】Split specific page ranges of the PDF into multiple files:
Split pages 1-2 into a PDF file, and split pages 3-5 into another PDF file.**

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

import java.awt.geom.Point2D;

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

        //Load the PDF file
        PdfDocument doc = new PdfDocument();
        doc.loadFromFile("input1.pdf");

        //Create a new PDF file
        PdfDocument newDoc1 = new PdfDocument();

        PdfPageBase page;

        //Add 2 pages to the new PDF, and draw the content of page 1-2 of the original PDF to the newly added pages
        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));
        }

        //Save the result file
        newDoc1.saveToFile("split/Doc1.pdf");

        //Create a new PDF file
        PdfDocument newDoc2 = new PdfDocument();

        //Add 3 pages to the new PDF, and draw the content of page 3-5 of the original PDF to the newly added pages
        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));
        }

        //Save the result file
        newDoc2.saveToFile("split/Doc2.pdf");
    }
}

```

![](https://dev-to-uploads.s3.amazonaws.com/i/s00n50ueqp8xp0c1dgk3.png)