Jane z
Разделение PDF-файла с помощью Java
В повседневной работе, когда мы манипулируем большим файлом PDF, мы можем разделить его на несколько небольших файлов, чтобы упростить чтение или редактирование. Сегодня я собираюсь представить два способа разделения файла PDF с помощью Free Spire.PDF for Java.
- Разделите каждую страницу PDF-файла в отдельный файл.
- Разделите определенные диапазоны страниц PDF-файла на несколько файлов.
Конфигурация среды
Метод 1: Загрузите Free Spire.PDF for Java и разархивируйте его. Затем добавьте файл Spire.Pdf.jar в свой проект в качестве зависимости.
Метод 2: Установите пакет jar через репозиторий Maven, и код для настройки файла pom.xml выглядит следующим образом:
<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>4.3.0</version>
</dependency>
</dependencies>
Исходный PDF-файл (5 страниц):
![Image for post](https://cdn-images.hashtap.com/fit-in/20x0/filters:quality(50)/img/9C/Nuh/RI51/qDaTFghaRu1Q9/a5UwSl3Wq3/SRXhg0tXMwzh30up.jpg)
【Пример 1】 Разделите каждую страницу PDF-файла в отдельный файл:
Разделите исходный PDF-файл на 5 небольших документов
import com.spire.pdf.*;
public class SplitPDF {
public static void main(String[] args)
{
//Загрузите файл PDF
PdfDocument doc = new PdfDocument();
doc.loadFromFile("C:\\Users\\Administrator\\Desktop\\input.pdf");
//Разделите каждую страницу PDF-файла в отдельный файл
doc.split("out/splitDocument-{0}.pdf", 0);
doc.close();
}
}
![Image for post](https://cdn-images.hashtap.com/fit-in/20x0/filters:quality(50)/img/Tx/9E0/jwFY/UiMIfzn7TosY4/2IIyJqEjHC/SuKRMC9tZ0HiFe8O.jpg)
【Пример 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("C:\\Users\\Administrator\\Desktop\\input.pdf");
//Создать новый PDF-файл
PdfDocument newDoc1 = new PdfDocument();
PdfPageBase page;
//Добавьте 2 страницы в новый 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();
//Добавьте 3 страницы в новый 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");
}
}
![Image for post](https://cdn-images.hashtap.com/fit-in/20x0/filters:quality(50)/img/7h/GJ8/Wuvp/ju2Hr5dEQgq5t/qV8oyC7sgA/b631bxEykTGeTOXB.png)