
PDF — наиболее широко используемый формат цифровых документов. Мы можем анализировать PDF-документы и программно извлекать из них текст и изображения. Это может быть полезно в нескольких случаях, таких как анализ текста, поиск информации, преобразование документов и т. д. В этой статье мы узнаем, как извлекать текст и изображения из документов PDF с помощью Java.
В этой статье должны быть раскрыты следующие темы:
- Java API для извлечения текста и изображений из PDF-документов
- Извлечение текста из PDF-документов с помощью Java
- Извлечение текста с определенных страниц PDF-документа с использованием Java
- Получить изображения из PDF-документов с помощью Java
- Извлечение изображений с определенных страниц документа PDF с использованием Java
- Извлечение и сохранение изображений в файлы с помощью Java
Java API для извлечения текста и изображений из PDF-документов
Для извлечения текста и изображений из документов PDF мы будем использовать GroupDocs.Parser for Java API. Он позволяет извлекать необработанный, форматированный и структурированный текст, метаданные и изображения из файлов поддерживаемых форматов. Пожалуйста, либо загрузите JAR API, либо добавьте следующую конфигурацию pom.xml в приложение Java на основе Maven.
<repository>
<id>GroupDocsJavaAPI</id>
<name>GroupDocs Java API</name>
<url>https://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-parser</artifactId>
<version>22.3</version>
</dependency>
Извлечение текста из PDF-документов с помощью Java
Мы можем разобрать любой PDF-документ и извлечь текст, выполнив следующие шаги:
- Во-первых, загрузите файл PDF с помощью класса Parser.
- Затем вызовите метод Parser.getText() для извлечения текста из загруженного документа.
- Затем получите результаты в объекте класса TextReader.
- Наконец, вызовите метод TextReader.readToEnd(), чтобы прочитать все символы от текущей позиции до конца средства чтения текста и вернуть их как одну строку.
В следующем примере кода показано, как извлечь текст из файла PDF с помощью Java.
// В этом примере кода показано, как анализировать PDF-файл и извлекать текст.
// Создайте экземпляр класса Parser
Parser parser = new Parser("D:\\Files\\Parser\\sample.pdf");
// Извлечь текст в ридер
try (TextReader reader = parser.getText()) {
// Распечатать текст из документа
// Если извлечение текста не поддерживается, средство чтения недействительно.
System.out.println(reader == null ? "Text extraction isn't supported" : reader.readToEnd());
}

Извлечение текста из PDF-документов с помощью Java
Извлечь текст с определенной страницы документа PDF с помощью Java
Вы можете проанализировать документ PDF и извлечь текст с определенной страницы, выполнив простые шаги, указанные ниже:
- Во-первых, загрузите файл PDF с помощью класса Parser.
- Затем получите информацию о документе с помощью метода Parser.getDocumentInfo().
- Затем проверьте, не равно ли значение IDocumentInfo.getPageCount() нулю.
- После этого вызовите метод Parser.getText() с индексом страницы, чтобы извлечь текст с этой конкретной страницы и получить результаты в объекте класса TextReader.
- Наконец, покажите результаты, вызвав метод TextReader.readToEnd() для чтения извлеченного текста.
В следующем примере кода показано, как извлечь текст с определенной страницы с помощью Java.
// В этом примере кода показано, как анализировать PDF-файл и извлекать текст с определенной страницы.
// Создайте экземпляр класса Parser
Parser parser = new Parser("D:\\Files\\Parser\\sample.pdf");
// Получить информацию о документе
IDocumentInfo documentInfo = parser.getDocumentInfo();
// Проверить, есть ли в документе страницы
if (documentInfo == null || documentInfo.getRawPageCount() == 0) {
System.out.println("Document hasn't pages.");
return;
}
// Извлечь текст в ридер
try (TextReader reader = parser.getText(1)) {
// Распечатать текст из документа
// Если извлечение текста не поддерживается, средство чтения недействительно.
System.out.println(reader.readToEnd());
}
API также позволяет проверить, поддерживает ли документ функцию расширения текста. Для этого мы можем использовать свойство Parser.getFeatures().isText(). Пожалуйста, прочитайте больше о поддерживаемых функциях.
Получить изображения из PDF-документов с помощью Java
Мы можем разобрать любой PDF-документ и извлечь изображения, выполнив следующие шаги:
- Во-первых, загрузите файл PDF с помощью класса Parser.
- Затем вызовите метод Parser.getImages() и получите коллекцию объектов PageImageArea из загруженного документа.
- Затем проверьте, не является ли коллекция нулевой.
- После этого перебираем все найденные изображения.
- Наконец, покажите детали изображения.
В следующем примере кода показано, как получить сведения об изображениях из файла PDF с помощью Java.
// В этом примере кода показано, как анализировать PDF-файл и получать изображения.
// Создайте экземпляр класса Parser
Parser parser = new Parser("D:\\Files\\Parser\\images.pdf");
// Извлечь изображения
Iterable<PageImageArea> images = parser.getImages();
// Проверьте, поддерживается ли извлечение изображений
if (images == null) {
System.out.println("Images extraction isn't supported");
return;
}
// Перебирать изображения
for (PageImageArea image : images) {
// Распечатайте индекс страницы, прямоугольник и тип изображения:
System.out.println("Page: " + image.getPage().getIndex());
System.out.println("Image Rectangle: " + image.getRectangle());
System.out.println("Image Filetype: " + image.getFileType());
System.out.println("----------------------------------------");
}

Получить изображения из PDF-документов с помощью Java
Извлечение изображений с определенной страницы документа PDF с использованием Java
Мы можем извлечь изображения с определенной страницы, выполнив простые шаги, указанные ниже:
- Во-первых, загрузите файл PDF с помощью класса Parser.
- Затем получите информацию о документе с помощью метода Parser.getDocumentInfo().
- Затем проверьте, не равно ли значение IDocumentInfo.getPageCount() нулю.
- После этого вызовите метод Parser.getImages() с индексом страницы, чтобы извлечь изображения с этой конкретной страницы.
- Наконец, переберите все найденные изображения и покажите детали.
В следующем примере кода показано, как извлечь изображения с определенной страницы с помощью Java.
// В этом примере кода показано, как анализировать PDF-файл и получать изображения с определенной страницы.
// Создайте экземпляр класса Parser
Parser parser = new Parser("D:\\Files\\Parser\\images.pdf");
// Получить информацию о документе
IDocumentInfo documentInfo = parser.getDocumentInfo();
// Проверить, есть ли в документе страницы
if (documentInfo.getPageCount() == 0) {
System.out.println("Document hasn't pages.");
return;
}
int pageIndex = 1;
// Перебирать изображения
// Мы игнорируем проверку нуля, так как мы проверили поддержку функции извлечения изображений ранее.
for (PageImageArea image : parser.getImages(pageIndex)) {
// Распечатайте индекс страницы, прямоугольник и тип изображения:
System.out.println("Page: " + image.getPage().getIndex());
System.out.println("Image Rectangle: " + image.getRectangle());
System.out.println("Image Filetype: " + image.getFileType());
System.out.println("----------------------------------------");
}
Извлечение и сохранение изображений в файлы с помощью Java
Мы также можем сохранить извлеченные изображения, выполнив следующие действия:
- Во-первых, загрузите файл PDF с помощью класса Parser.
- Затем вызовите метод Parser.getImages() и получите коллекцию объектов PageImageArea из загруженного документа.
- Затем создайте экземпляр класса ImageOptions и задайте формат изображения.
- После этого перебираем все найденные изображения.
- Наконец, сохраните с помощью метода save(). Он принимает путь к выходному файлу и ImageOptions в качестве аргументов.
В следующем примере кода показано, как извлекать и сохранять изображения в файлы с помощью Java.
// В этом примере кода показано, как извлекать изображения и изображения в каталоге.
// Создайте экземпляр класса Parser
Parser parser = new Parser("D:\\Files\\Parser\\images.pdf");
// Извлечь изображения из документа
Iterable<PageImageArea> images = parser.getImages();
// Проверьте, поддерживается ли извлечение изображений
if (images == null) {
System.out.println("Page images extraction isn't supported");
return;
}
// Создайте параметры для сохранения изображений в формате PNG
ImageOptions options = new ImageOptions(ImageFormat.Png);
int imageNumber = 0;
// Перебирать изображения
for (PageImageArea image : images)
{
// Сохраните изображение в файл PNG
image.save(String.format("D:\\Files\\Parser\\Images\\%d.png", imageNumber), options);
imageNumber++;
}

Извлечение и сохранение изображений в файлы с помощью Java
Получить бесплатную лицензию
Вы можете попробовать API без ограничений на пробную версию, запросив бесплатную временную лицензию.
Вывод
В этой статье мы узнали, как:
- извлекать весь текст из всего документа PDF или отдельных страниц документа с помощью Java;
- извлекать изображения из PDF-файла программно;
- сохранять извлеченные изображения на локальный диск.
Кроме того, вы можете узнать больше о GroupDocs.Parser for Java API, используя документацию. В случае возникновения каких-либо неясностей, пожалуйста, свяжитесь с нами на форуме.