Как найти и выделить текст в PDF на Java

Если вы хотите подчеркнуть некоторые важные слова или фразы в PDF-документе, вы можете выделить их ярким цветом, чтобы читатели не упустили их из виду. В этой статье мы расскажем, как найти и выделить определенный текст в PDF на Java с помощью Spire.PDF for Java.
1. Поиск и выделение текста на определенной странице в Java
2. Поиск и выделение текста во всем PDF-документе на Java
Установите необходимую библиотеку
Spire.PDF for Java — это профессиональная Java-библиотека для чтения, создания и работы с PDF-файлами в Java-приложениях.
Если вы создали проект
Maven, вы можете легко импортировать jar в свое приложение с помощью следующих
конфигураций. Для проектов, не использующих Maven, загрузите
Spire.Pdf.jar и добавьте его в качестве зависимости в ваше приложение.
Поиск и выделение текста на определенной странице в Java
В Spire.PDF for Java вы можете использовать класс PdfTextFinder для поиска определенного текста на странице. Перед выполнением операции поиска можно задать параметры поиска, такие как WholeWord и IgnoreCase, с помощью метода PdfTextFinder.getOptions.setTextFindParameter(). После того как текст найден, можно применить подсветку, чтобы визуально выделить текст.
Следующий фрагмент кода показывает, как найти и выделить текст на определенной странице PDF-документа на языке Java.
import com.spire.ms.System.Collections.Generic.List;
import com.spire.pdf.FileFormat;
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.texts.PdfTextFinder;
import com.spire.pdf.texts.PdfTextFragment;
import com.spire.pdf.texts.TextFindParameter;
import java.awt.*;
import java.util.EnumSet;
public class FindAndHighlightTextInDocument {
public static void main(String[] args) {
// Create a PdfDocument object
PdfDocument doc = new PdfDocument();
// Load a PDF file
doc.loadFromFile("C:\Users\Administrator\Desktop\Input.pdf");
// Iterate through the pages in the PDF file
for (Object pageObj : doc.getPages()) {
// Get a specific page
PdfPageBase page = (PdfPageBase) pageObj;
// Create a PdfTextFinder object based on the page
PdfTextFinder finder = new PdfTextFinder(page);
// Specify the find options
finder.getOptions().setTextFindParameter(EnumSet.of(TextFindParameter.WholeWord));
finder.getOptions().setTextFindParameter(EnumSet.of(TextFindParameter.IgnoreCase));
// Find the instances of the specified text
List results = finder.find("Target Text");
// Iterate through the find results
for (PdfTextFragment textFragment: results)
{
// Highlight text
textFragment.highLight(Color.LIGHT_GRAY);
}
}
// Save to a different PDF file
doc.saveToFile("output/HighlightTextInDocument.pdf", FileFormat.PDF);
// Dispose resources
doc.dispose();
}
}
Поиск и выделение текста во всем PDF-документе на Java
Первый пример кода демонстрирует, как выделить текст на определенной странице. Чтобы выделить текст во всем документе, вы можете пройтись по каждой странице документа, выполнить операцию поиска и применить выделение к идентифицированному тексту.
В этом примере показано, как найти и выделить текст в PDF-документе на языке Java.
import com.spire.ms.System.Collections.Generic.List;
import com.spire.pdf.FileFormat;
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.texts.PdfTextFinder;
import com.spire.pdf.texts.PdfTextFragment;
import com.spire.pdf.texts.TextFindParameter;
import java.awt.*;
import java.util.EnumSet;
public class FindAndHighlightTextInDocument {
public static void main(String[] args) {
// Create a PdfDocument object
PdfDocument doc = new PdfDocument();
// Load a PDF file
doc.loadFromFile("C:\Users\Administrator\Desktop\Input.pdf");
// Iterate through the pages in the PDF file
for (Object pageObj : doc.getPages()) {
// Get a specific page
PdfPageBase page = (PdfPageBase) pageObj;
// Create a PdfTextFinder object based on the page
PdfTextFinder finder = new PdfTextFinder(page);
// Specify the find options
finder.getOptions().setTextFindParameter(EnumSet.of(TextFindParameter.WholeWord));
finder.getOptions().setTextFindParameter(EnumSet.of(TextFindParameter.IgnoreCase));
// Find the instances of the specified text
List results = finder.find("Target Text");
// Iterate through the find results
for (PdfTextFragment textFragment: results)
{
// Highlight text
textFragment.highLight(Color.LIGHT_GRAY);
}
}
// Save to a different PDF file
doc.saveToFile("output/HighlightTextInDocument.pdf", FileFormat.PDF);
// Dispose resources
doc.dispose();
}
}
Заключение
В этой статье мы узнали, как использовать Spire.PDF для Java для поиска и выделения текста в PDF. Кроме того, эта библиотека поддерживает другие функции обработки PDF, такие как: