Библиотека Java PDF для добавления номеров страниц Spire.PDF
for Java — это надежная библиотека, предназначенная для работы с
PDF-документами в Java-приложениях. Она предлагает такие удобные классы, как
PdfPageNumberField и PdfPageCountField, которые позволяют пользователям
получать номер текущей страницы и общее
количество страниц. Для создания формата «Страница X из Y» можно использовать
объект PdfCompositeField для объединения нескольких автоматических полей в одно
поле.
После создания объекта PdfCompositeField вы можете задать его положение
на странице с помощью свойства Location, а затем добавить его на страницу с
помощью метода Draw(). Позиционирование номера страницы определяется
определенными координатами, поэтому рекомендуется
ознакомиться с системой координат.
Добавление номеров страниц в левый угол нижнего колонтитула PDF-файла Этот пример показывает, как добавить номер страницы слева от подножия
страницы документа PDF и горизонтальную линию в нижней части страницы.
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.automaticfields.PdfCompositeField;
import com.spire.pdf.automaticfields.PdfPageCountField;
import com.spire.pdf.automaticfields.PdfPageNumberField;
import com.spire.pdf.graphics.*;
import com.spire.pdf.license.LicenseProvider;
import java.awt.*;
import java.awt.geom.Dimension2D;
import java.awt.geom.Point2D;
public class AddPageNumberToLeftCorner {
public static void main(String[] args) {
// Примените ваш лицензионный ключ
LicenseProvider.setLicenseKey("Лицензионный ключ");
// Создайте объект PdfDocument
PdfDocument doc = new PdfDocument();
// Загрузите PDF файл
doc.loadFromFile("C:\\Users\\Administrator\\Desktop\\Terms of service.pdf");
// Создайте шрифт, кисть и перо, которые определяют внешний вид добавляемых номеров страниц
PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Times New Roman", Font.PLAIN, 12), true);
PdfBrush brush = PdfBrushes.getBlack();
PdfPen pen = new PdfPen(brush, 1.0);
// Создайте объект PdfPageNumberField и объект PdfPageCountField
PdfPageNumberField pageNumberField = new PdfPageNumberField();
PdfPageCountField pageCountField = new PdfPageCountField();
// Создайте объект PdfCompositeField для объединения поля количества страниц и поля номера страницы в одно поле
PdfCompositeField compositeField = new PdfCompositeField(font, brush, «Страница {0} из {1}», pageNumberField, pageCountField);
// Получите размер страницы
Dimension2D pageSize = doc.getPages().get(0).getSize();
// Установите местоположение составного поля
compositeField.setLocation(new Point2D.Float(72, (float) pageSize.getHeight() - 45));
// Перебирайте страницы в документе
for (int i = 0; i < doc.getPages().getCount(); i++) {
// Получите конкретную страницу
PdfPageBase page = doc.getPages().get(i);
// Нарисуйте линию в указанном месте
page.getCanvas().drawLine(pen, 72, pageSize.getHeight() - 50, pageSize.getWidth() - 72, pageSize.getHeight() - 50);
// Нарисуйте составное поле на странице
compositeField.draw(page.getCanvas(), 0.0, 0.0);
}
// Сохраните в другой PDF файл
doc.saveToFile("Output/AddPageNumbersToLeftCorner.pdf");
// Освободите ресурсы
doc.dispose();
}
}
Добавить номера страниц в центр колонтитула PDF Этот пример показывает,
как добавить номер страницы в центр нижней части страницы документа PDF и
добавить горизонтальную линию в нижнюю часть страницы.
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.automaticfields.PdfCompositeField;
import com.spire.pdf.automaticfields.PdfPageCountField;
import com.spire.pdf.automaticfields.PdfPageNumberField;
import com.spire.pdf.graphics.PdfBrush;
import com.spire.pdf.graphics.PdfBrushes;
import com.spire.pdf.graphics.PdfPen;
import com.spire.pdf.graphics.PdfTrueTypeFont;
import com.spire.pdf.license.LicenseProvider;
import java.awt.*;
import java.awt.geom.Dimension2D;
import java.awt.geom.Point2D;
public class AddPageNumberToCenter {
public static void main(String[] args) {
// Примените ваш лицензионный ключ
LicenseProvider.setLicenseKey("Лицензионный ключ");
// Создайте объект PdfDocument
PdfDocument doc = new PdfDocument();
// Загрузите PDF файл
doc.loadFromFile("C:\\Users\\Administrator\\Desktop\\Terms of service.pdf");
// Создайте шрифт, кисть и перо, которые определяют внешний вид добавляемых номеров страниц
PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Times New Roman", Font.PLAIN, 12), true);
PdfBrush brush = PdfBrushes.getBlack();
PdfPen pen = new PdfPen(brush, 1.0);
// Создайте объект PdfPageNumberField и объект PdfPageCountField
PdfPageNumberField pageNumberField = new PdfPageNumberField();
PdfPageCountField pageCountField = new PdfPageCountField();
// Создайте объект PdfCompositeField для объединения поля количества страниц и поля номера страницы в одно поле
PdfCompositeField compositeField = new PdfCompositeField(font, brush, «Страница {0} из {1}», pageNumberField, pageCountField);
// Перебирайте страницы в документе
for (int i = 0; i < doc.getPages().getCount(); i++) {
// Получите конкретную страницу
PdfPageBase page = doc.getPages().get(i);
// Получите размер страницы
Dimension2D pageSize = doc.getPages().get(i).getSize();
// Нарисуйте линию в указанном месте
page.getCanvas().drawLine(pen, 72, pageSize.getHeight() - 50, pageSize.getWidth() - 72, pageSize.getHeight() - 50);
// Измерьте размер «Страница X из Y»
Dimension2D pageNumberSize = font.measureString(String.format("Страница %d из %d", i + 1, doc.getPages().getCount()));
// Установите местоположение составного поля
compositeField.setLocation(new Point2D.Float((float)(pageSize.getWidth() - pageNumberSize.getWidth()) / 2, (float)pageSize.getHeight() - 45));
// Нарисуйте составное поле на странице
compositeField.draw(page.getCanvas());
}
// Сохраните в другой PDF файл
doc.saveToFile("Output/AddPageNumbersToCenter.pdf");
// Освободите ресурсы
doc.dispose();
}
}
Добавить номера страниц в правый угол колонтитула PDF Этот пример показывает, как добавить номер страницы справа от подножия
страницы документа PDF и горизонтальную линию в нижней части страницы.
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.automaticfields.PdfCompositeField;
import com.spire.pdf.automaticfields.PdfPageCountField;
import com.spire.pdf.automaticfields.PdfPageNumberField;
import com.spire.pdf.graphics.PdfBrush;
import com.spire.pdf.graphics.PdfBrushes;
import com.spire.pdf.graphics.PdfPen;
import com.spire.pdf.graphics.PdfTrueTypeFont;
import java.awt.*;
import java.awt.geom.Dimension2D;
import java.awt.geom.Point2D;
public class AddPageNumberToRightCorner {
public static void main(String[] args) {
// Создайте объект PdfDocument
PdfDocument doc = new PdfDocument();
// Загрузите PDF файл
doc.loadFromFile("C:\\Users\\Administrator\\Desktop\\Terms of service.pdf");
// Создайте шрифт, кисть и перо, которые определяют внешний вид добавляемых номеров страниц
PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Times New Roman", Font.PLAIN, 12), true);
PdfBrush brush = PdfBrushes.getBlack();
PdfPen pen = new PdfPen(brush, 1.0);
// Создайте объект PdfPageNumberField и объект PdfPageCountField
PdfPageNumberField pageNumberField = new PdfPageNumberField();
PdfPageCountField pageCountField = new PdfPageCountField();
// Создайте объект PdfCompositeField для объединения поля количества страниц и поля номера страницы в одно поле
PdfCompositeField compositeField = new PdfCompositeField(font, brush, «Страница {0} из {1}», pageNumberField, pageCountField);
// Перебирайте страницы в документе
for (int i = 0; i < doc.getPages().getCount(); i++) {
// Получите конкретную страницу
PdfPageBase page = doc.getPages().get(i);
// Получите размер страницы
Dimension2D pageSize = doc.getPages().get(i).getSize();
// Нарисуйте линию в указанном месте
page.getCanvas().drawLine(pen, 72, pageSize.getHeight() - 50, pageSize.getWidth() - 72, pageSize.getHeight() - 50);
// Измерьте размер «Страница X из Y»
Dimension2D pageNumberSize = font.measureString(String.format("Страница %d из %d", i + 1, doc.getPages().getCount()));
// Установите местоположение составного поля
compositeField.setLocation(new Point2D.Float((float)(pageSize.getWidth() - pageNumberSize.getWidth() - 72), (float)(pageSize.getHeight() - 45)));
// Нарисуйте составное поле на странице
compositeField.draw(page.getCanvas());
}
// Сохраните в другой PDF файл
doc.saveToFile("Output/AddPageNumbersToRightCorner.pdf");
// Освободите ресурсы
doc.dispose();
}
}
Заключение В этой статье вы
узнаете, как использовать Spire для добавления страниц в PDF — документ. PDF
для Java. Кроме того, библиотека поддерживает другие функции обработки PDF,
такие как:
Преобразование
PDF в Word в Java
Печать
PDF-документов в Java