Carl Smith
Carl Smith
Read 3 minutes

ИЗМЕНЕНИЕ РАЗМЕРА СТРАНИЦЫ PDF В JAVA

Изменение размера страницы PDF может иногда потребоваться при работе над конкретным проектом. В этой статье мы расскажем о том, как программно изменить размер страницы PDF на стандартный или пользовательский.

Установка (2 метода)
Для выполнения задания требуется бесплатная библиотека Java – Free Spire.PDF for Java, и ниже приведены два метода ее установки.

Метод 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>5.1.0</version> </dependency> </dependencies>

Изменение размера страницы PDF на стандартный размер бумаги
Free Spire.PDF for Java поддерживает множество стандартных форматов бумаги, таких как letter, legal, A0, A1, A2, A3, A4, B0, B1, B2, B3, B4 и многие другие. Ниже приведен полный пример кода изменения размера страницы PDF-файла на формат бумаги A1.

import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.PdfPageSize;
import com.spire.pdf.graphics.*;

import java.awt.geom.Point2D;

public class StandardPageSize {
public static void main(String []args){
//Загрузите исходный документ PDF
PdfDocument originPdf = new PdfDocument();
originPdf.loadFromFile("input.pdf");

//Создайте новый документ PDF
PdfDocument newPdf = new PdfDocument();

//Просматривайте страницы исходного PDF-файла
for(int i = 0; i< originPdf.getPages().getCount(); i++)
{
//Добавьте страницы формата A1 в новый PDF
PdfPageBase newPage = newPdf.getPages().add(PdfPageSize.A1, new PdfMargins((0)));
//Создайте экземпляр PdfTextLayout
PdfTextLayout layout = new PdfTextLayout();
//Установите макет текста как одну страницу (если не установить, содержимое не будет масштабироваться в соответствии с размером страницы)
layout.setLayout(PdfLayoutType.One_Page);
//Создание шаблонов на основе страниц исходного PDF-файла
PdfTemplate template = originPdf.getPages().get(i).createTemplate();
//Нарисовать шаблоны на страницах нового PDF-файла
template.draw(newPage, new Point2D.Float(0,0), layout);
}

//Сохранить итоговый документ
newPdf.saveToFile("ChangePageSizeToA1.pdf");
}
}
Image for post

Изменение размера страницы PDF на пользовательский размер бумаги
Помимо предопределенного стандартного размера бумаги, Free Spire.PDF for Java также позволяет изменять размер страницы PDF-файла на пользовательский размер бумаги. Полный код примера показан ниже.

import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.graphics.*;

import java.awt.*;
import java.awt.geom.Dimension2D;
import java.awt.geom.Point2D;

public class CustomPaperSize {
public static void main(String []args){
//Загрузите исходный документ PDF
PdfDocument originPdf = new PdfDocument();
originPdf.loadFromFile("input.pdf");

//Создайте новый документ PDF
PdfDocument newPdf = new PdfDocument();

//Создайте экземпляр PdfUnitConvertor
PdfUnitConvertor unitCvtr = new PdfUnitConvertor();
//Преобразование пользовательского размера в дюймах в пункты
float width = unitCvtr.convertUnits(6.5f, PdfGraphicsUnit.Inch, PdfGraphicsUnit.Point);
float height = unitCvtr.convertUnits(8.5f, PdfGraphicsUnit.Inch, PdfGraphicsUnit.Point);

//Создайте экземпляр Dimension2D из пользовательского размера, затем он будет использоваться в качестве размера страницы нового PDF-файла
Dimension2D size = new Dimension();
size.setSize(width, height);

//Просматривайте страницы исходного PDF-файла
for(int i = 0; i< originPdf.getPages().getCount(); i++)
{
//Добавьте страницы пользовательского размера (6,5*8,5 дюймов) в новый PDF-файл
PdfPageBase newPage = newPdf.getPages().add(size, new PdfMargins((0)));
//Создайте экземпляр PdfTextLayout
PdfTextLayout layout = new PdfTextLayout();
//Установите макет текста как одну страницу (если не установить, содержимое не будет масштабироваться в соответствии с размером страницы)
layout.setLayout(PdfLayoutType.One_Page);
//Создание шаблонов на основе страниц исходного PDF-файла
PdfTemplate template = originPdf.getPages().get(i).createTemplate();
//Нарисовать шаблоны на страницах нового PDF-файла
template.draw(newPage, new Point2D.Float(0,0), layout);
}

//Сохранить итоговый документ
newPdf.saveToFile("ChangePageSizeToCustomSize.pdf");
}
}
Image for post
1 view
Add
More