Управление верхними и нижними колонтитулами PDF с помощью Java
Артефакты верхнего и нижнего колонтитулов являются элементами пагинации, не являющимися содержимым, обычно используемыми для повторяющихся меток, идентификаторов страниц и оформления макета.
Создание артефакта верхнего колонтитула
Используйте этот вспомогательный элемент, когда вам нужен переиспользуемый артефакт верхнего колонтитула с постоянным стилем текста и выравниванием.
- Создайте HeaderArtifact.
- Установите его текст, настройки шрифта и цвет переднего плана.
- Настройте выравнивание по горизонтали и верните артефакт.
public static HeaderArtifact createHeaderArtifact(String text) {
HeaderArtifact artifact = new HeaderArtifact();
artifact.setText(text);
artifact.getTextState().setFontSize(14);
artifact.getTextState().setFont(FontRepository.findFont("Arial"));
artifact.getTextState().setForegroundColor(Color.getNavy());
artifact.setArtifactHorizontalAlignment(HorizontalAlignment.Center);
return artifact;
}
Создание артефакта нижнего колонтитула
Этот вспомогательный метод создаёт переиспользуемый артефакт нижнего колонтитула с тем же шаблоном стилизации, что и артефакт верхнего колонтитула.
- Создайте FooterArtifact.
- Установите его текст, состояние текста и цвет переднего плана.
- Настройте выравнивание и верните артефакт.
public static FooterArtifact createFooterArtifact(String text) {
FooterArtifact artifact = new FooterArtifact();
artifact.setText(text);
artifact.getTextState().setFontSize(14);
artifact.getTextState().setFont(FontRepository.findFont("Arial"));
artifact.getTextState().setForegroundColor(Color.getNavy());
artifact.setArtifactHorizontalAlignment(HorizontalAlignment.Center);
return artifact;
}
Добавление артефакта верхнего колонтитула
Используйте этот пример, когда страница должна отображать переиспользуемый артефакт верхнего колонтитула.
- Откройте исходный PDF в объекте Document.
- Создайте артефакт верхнего колонтитула с помощью вспомогательного метода.
- Добавьте артефакт на страницу и сохраните выходной файл.
public static void addHeaderArtifact(Path inputFile, Path outputFile) {
try (Document document = new Document(inputFile.toString())) {
HeaderArtifact header = createHeaderArtifact("Sample Header");
document.getPages().get_Item(1).getArtifacts().add(header);
document.save(outputFile.toString());
}
}
Добавление артефакта нижнего колонтитула
Используйте этот пример, когда страница должна отображать артефакт нижнего колонтитула с переиспользуемым форматированием.
- Откройте исходный PDF в объекте Document.
- Создайте артефакт нижнего колонтитула с помощью вспомогательного метода.
- Добавьте артефакт на страницу и сохраните выходной файл.
public static void addFooterArtifact(Path inputFile, Path outputFile) {
try (Document document = new Document(inputFile.toString())) {
FooterArtifact footer = createFooterArtifact("Sample Footer");
document.getPages().get_Item(1).getArtifacts().add(footer);
document.save(outputFile.toString());
}
}
Удаление артефактов верхнего и нижнего колонтитулов
Используйте этот подход, когда существующие артефакты верхнего и нижнего колонтитулов должны быть удалены со страницы.
- Откройте исходный PDF в объекте Document.
- Переберите коллекцию артефактов страницы в обратном порядке.
- Удалите артефакты пагинации, подтип которых — верхний колонтитул или нижний колонтитул, затем сохраните документ.
public static void deleteHeaderFooterArtifact(Path inputFile, Path outputFile) {
try (Document document = new Document(inputFile.toString())) {
for (int i = document.getPages().get_Item(1).getArtifacts().size(); i >= 1; i--) {
Artifact artifact = document.getPages().get_Item(1).getArtifacts().get_Item(i);
if (artifact.getType() == Artifact.ArtifactType.Pagination
&& (artifact.getSubtype() == Artifact.ArtifactSubtype.Header
|| artifact.getSubtype() == Artifact.ArtifactSubtype.Footer)) {
document.getPages().get_Item(1).getArtifacts().delete(artifact);
}
}
document.save(outputFile.toString());
}
}