Как разметить текст в PDF-документе на Java
В современную цифровую эпоху PDF-файлы стали незаменимым инструментом для обмена и распространения документов. Независимо от того, являетесь ли вы разработчиком, желающим автоматизировать создание документов, или профессионалом, которому необходимо аннотировать и выделять текст, возможность разметки PDF-документов имеет решающее значение. В этой статье мы расскажем вам о процессе разметки текста в PDF-файлах с помощью Java и Spire.PDF for Java.
Библиотека Java для штамповки PDF-документов
Spire.PDF for Java — это профессиональная Java-библиотека для чтения, создания и работы с PDF-файлами в Java-приложениях.
Если вы создали проект
Maven, вы можете легко импортировать jar в свое приложение с помощью следующих
конфигураций. Для проектов, не использующих Maven, загрузите Spire.Pdf.jar и добавьте его в качестве
зависимости в ваше приложение.
Разметка текста в PDF на Java
Spire.PDF for Java предлагает класс PdfTextMarkupAnnotation для создания аннотаций разметки в PDF. Ниже описаны шаги:
- Создайте объект PdfDocument.
- Загрузите существующий PDF-файл.
- Доступ к определенной странице.
- Поиск определенной строки текста в PDF.
- Получите границы найденных фрагментов текста.
- Создание PdfTextMarkupAnnotation на основе каждой границы.
- Сохранить документ в другой PDF-файл.
Следующий код демонстрирует, как автоматизировать процесс добавления аннотаций к PDF-документу. Он загружает существующий PDF-документ, ищет определенный текст, создает аннотации на основе этого текста и сохраняет обновленный документ.
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.annotations.PdfTextMarkupAnnotation;
import com.spire.pdf.graphics.PdfRGBColor;
import com.spire.pdf.texts.PdfTextFinder;
import com.spire.pdf.texts.PdfTextFragment;
import com.spire.pdf.texts.TextFindParameter;
import java.awt.*;
import java.awt.geom.Rectangle2D;
import java.util.EnumSet;
import java.util.List;
public class AddMarkupAnnotation {
public static void main(String[] args) {
// Создание объекта PdfDocument
PdfDocument doc = new PdfDocument();
// Загрузка PDF файла
doc.loadFromFile("C:\\Users\\Administrator\\Desktop\\sample.pdf");
// Получение конкретной страницы
PdfPageBase page = doc.getPages().get(0);
// Создание объекта PdfTextFinder на основе страницы
PdfTextFinder finder = new PdfTextFinder(page);
// Установка параметров поиска
EnumSet parameterSet = EnumSet.of(TextFindParameter.IgnoreCase);
finder.getOptions().setTextFindParameter(parameterSet);
// Поиск экземпляров указанного текста
List fragments = finder.find("Но в любом случае список функций и опций будет постепенно " +
«увеличиваться, развитие прошивки не останавливается, и приоритеты расписаны на год вперед.»);
// Получение первого экземпляра
PdfTextFragment textFragment = fragments.get(0);
// Указание текста аннотации
String text = «Это аннотация к разметке.»;
// Итерация по границам текста
for (int i = 0; i < textFragment.getBounds().length; i++) {
// Получение конкретной границы
Rectangle2D rect = textFragment.getBounds()[i];
// Создание текстовой аннотации разметки
PdfTextMarkupAnnotation annotation = new PdfTextMarkupAnnotation(rect);
// Установка текста аннотации
annotation.setText(text);
// Установка автора
annotation.setAuthor("Administrator");
// Установка цвета разметки
annotation.setTextMarkupColor(new PdfRGBColor(Color.green));
// Добавление аннотации в коллекцию аннотаций
page.getAnnotations().add(annotation);
}
// Сохранение результата в файл
doc.saveToFile("MarkupText.pdf");
// Освобождение ресурсов
doc.dispose();
}
}
Выводы
В этой статье вы узнали, как разметить текст в PDF с помощью Spire.PDF for Java. Будучи продвинутой библиотекой, она позволяет разработчикам выполнять широкий спектр операций с PDF-документами, таких как: