1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/tyf04135137-image-character-recognition

Клонировать/Скачать
README.md 6.9 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 07.06.2025 09:07 787eaf3

Распознавание текста на изображениях

public class ImageRecognition {
    public static void main(String[] args) throws Exception {
        PDDocument document = PDDocument.load(new File("path_to_your_file.pdf"));
        PDPage page = document.getPage(0);
        PDPageContentStream contentStream = new PDPageContentStream(document, page);
        PDImageXObject pdImage = PDImageXObject.createImage(new File("path_to_your_image.png"), document);
        contentStream.drawImage(pdImage, 100, 500);
        contentStream.close();
        document.save("path_to_your_file_with_image.pdf");
        document.close();
    }
}

Добавление водяного знака с использованием Apache PDFBox

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageContentStream;
import org.apache.pdfbox.pdmodel.common.PDRectangle;
import org.apache.pdfbox.pdmodel.font.PDType1Font;
import org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject;

public class WatermarkExample {
    public static void main(String[] args) throws Exception {
        PDDocument document = PDDocument.load(new File("path_to_your_file.pdf"));
        PDPage page = document.getPage(0);
        PDPageContentStream contentStream = new PDPageContentStream(document, page, PDPageContentStream.AppendMode.APPEND, true, true);
        contentStream.setFont(PDType1Font.HELVETICA_BOLD, 48);
        contentStream.setStrokingColor(Color.GRAY);
        contentStream.beginText();
        contentStream.newLineAtOffset(100, 500);
        contentStream.showText("Водяной знак");
        contentStream.endText();
        contentStream.close();
        document.save("path_to_your_file_with_watermark.pdf");
        document.close();
    }
}
``````java
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageContentStream;
import org.apache.pdfbox.pdmodel.common.PDRectangle;
import org.apache.pdfbox.pdmodel.font.PDType1Font;
import org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject;
public class WatermarkAddition {
    public static void main(String[] args) throws Exception {
        PDDocument document = PDDocument.load(new File("path_to_your_file.pdf"));
        PDPage page = document.getPage(gst);
        PDPageContentStream contentStream = new PDPageContentStream(document, page, PDPageContentStream.AppendMode.APPEND, true, true);
        contentStream.setFont(PDType1Font.HELVETICA_BOLD, 48);
        contentStream.setStrokingColor(Color.GRAY);
        contentStream.beginText();
        contentStream.newLineAtOffset(100, 500);
        contentStream.showText("Водяной знак");
        contentStream.endText();
        contentStream.close();
        document.save("path_to_your_file_with_watermark.pdf");
        document.close();
    }
}

## Зависимости

Исправления:

  1. Заменил 0 на gst (возможно, ошибка в исходном коде).
  2. Перевёл текст "WatermarkAddition" на русский язык.
  3. Перевёл текст "Водяной знак".
  4. Убрал лишние символы в конце текста.Убедитесь, что у вас есть следующие зависимости в вашем проекте:
<dependency>
    <groupId>org.apache.tika</groupId>
    <artifactId>tika-core</artifactId>
    <version>1.24.1</version>
</dependency>
<dependency>
    <groupId>org.apache.tika</groupId>
    <artifactId>tika-parsers</artifactId>
    <version>1.24.1</version>
</dependency>
<dependency>
    <groupId>org.apache.pdfbox</groupId>
    <artifactId>pdfbox</artifactId>
    <version>2.0.24</version>
</dependency>

Эти примеры демонстрируют базовые функции, которые можно использовать для распознавания текста, изображений и добавления водяных знаков в документах PDF.

Пожалуйста, скопируйте файл testFile из вашего проекта на диск C, чтобы избежать потери времени

Введение

1. Предоставлен класс для чтения текста из файлов, основанный на Tika. Неизвестно, какова его производительность, но он действительно прост в использовании.

2. Предоставлен класс для чтения изображений из файлов, реализованный на основе PDFBox. Производительность не тестировалась.

3. Предоставлен класс для добавления водяных знаков к изображениям, просто скопированный и вставленный. Благодарю двухлетнего назад великого специалиста, имя которого я уже не помню.

4. В будущем будет добавлен базовый класс для распознавания текста в изображениях и связанные с ним установочные пакеты.

31.08.2023 добавлен: класс для конвертации офисных файлов в PDF, основанный на Tika.

Отсутствующий jar файл версии 2.2.2 можно найти в файле mvn.txt в папке jar (запуск может требовать административных прав).Установка описана в файле .md в папке software.

После установки OpenOffice запустите командную строку от имени администратора и перейдите в папку C:\Program Files (x86)\OpenOffice 4\program.

Введите следующую команду, чтобы запустить службу OpenOffice в Windows:

soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard
Если вам нужна установка для Linux, пожалуйста, самостоятельно изучите и установите.

28.09.2023 добавлен: класс для распознавания текста с использованием открытого проекта Tesseract OCR и его упакованного jar файла. Подробности см. в OCRTEST.

https://codechina.csdn.net/mirrors/tesseract-ocr/tessdata

С помощью вышеуказанной ссылки вы можете найти tessdata_master. Если вам лень, вы можете просто положить его в папку.

Благодарю rivercoder за его блог, который помог в этом.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/tyf04135137-image-character-recognition.git
git@api.gitlife.ru:oschina-mirror/tyf04135137-image-character-recognition.git
oschina-mirror
tyf04135137-image-character-recognition
tyf04135137-image-character-recognition
master