Files
SnapOtter/apps/docs/ru/tools/pdf/ocr-pdf.md
T
SnapOtterandGitHub 991c981529 fix: make OCR portable and reliable across AMD64 and ARM64 (#519)
* fix: make OCR portable and reliable

* fix: harden OCR installation portability

* fix: pin OCR partials across downloads

* fix: make OCR execution reliably asynchronous

* fix: harden OCR portability and docs routes

* fix: preserve decoder and docs safeguards
2026-07-15 03:34:24 +08:00

6.8 KiB
Raw Blame History

description, i18n_output_hash, i18n_source_hash, i18n_provenance
description i18n_output_hash i18n_source_hash i18n_provenance
Извлекайте текст из отсканированных PDF-файлов локально с помощью встроенного Tesseract или дополнительной высокоточной среды выполнения RapidOCR. 2fdf67eb542c a19ba25a1ca8 human

PDF OCR

Извлекайте текст из отсканированных документов PDF постранично, не отправляя PDF во внешнюю службу. Встроенный уровень fast использует Tesseract. Дополнительные уровни balanced и best используют RapidOCR с закрепленными моделями PP-OCR ONNX.

::: info Совместимость OCR для корейского языка Быстрый OCR поддерживает auto, en, de, es, fr, zh и ja, но не корейский язык (ko). Для корейского требуется пакет точного OCR и уровень balanced или best. Пакет работает в официальных контейнерах Linux amd64 и arm64, включая узлы NVIDIA, где OCR по-прежнему выполняется на CPU. На неподдерживаемой системе возвращается явная ошибка совместимости без скрытого перехода на fast. Корейский с fast или устаревшим псевдонимом tesseract отклоняется до постановки в очередь с FEATURE_INCOMPATIBLE и fast-korean-unsupported. :::

API Endpoint

POST /api/v1/tools/pdf/ocr-pdf

Принимает данные multipart form с PDF-файлом и необязательным JSON-полем settings.

Parameters

Параметр Тип Обязательный По умолчанию Описание
file file Да - Файл PDF (многочастный), закодированный до 512 MiB; по-прежнему действует более низкий лимит загрузки оператора
quality string Нет Динамический Уровень качества OCR: fast, balanced или best.
language string Нет "auto" Язык документа: auto, en, de, fr, es, zh, ja, ko
pages string Нет "all" Выбор страниц, например "all", "1-3", "1,3,5"
enhance boolean Нет Зависит от уровня Улучшите локальный контраст перед распознаванием. Fast применяет его напрямую; Сбалансированный и Лучший сохраняют вариант только в том случае, если калиброванная оценка улучшает результат. По умолчанию true для best и false для fast/balanced.
engine string Нет - Устаревший псевдоним совместимости. Вместо этого используйте quality. tesseract сопоставляется с fast; устаревшее значение paddleocr сопоставляется с balanced, но не загружает PaddlePaddle

Если quality и engine не заданы, SnapOtter выбирает лучший доступный уровень в порядке best, balanced, fast. Для корейского языка fast никогда не выбирается: используется best, затем balanced, либо возвращается ошибка установки или совместимости точной среды выполнения.

Example Request

curl -X POST http://localhost:1349/api/v1/tools/pdf/ocr-pdf \
  -H "Authorization: Bearer si_your-api-key" \
  -F "file=@scanned.pdf" \
  -F 'settings={"quality": "best", "language": "en", "pages": "1-5", "enhance": true}'

Example Response

Возвращает 202 Accepted. Отслеживайте прогресс через SSE по адресу /api/v1/jobs/{jobId}/progress.

{
  "jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "async": true
}

Notes

  • Принимаемый входной формат: .pdf.
  • fast встроен и добавляет к официальному образу около 25 MiB. Для balanced и best требуется дополнительный точный пакет OCR (около 208-234 MiB для загрузки и 409-488 MiB, установленный, в зависимости от цели).
  • Пакет точный поддерживает Linux amd64 и arm64 и использует ONNX Runtime на CPU, в том числе на хостах NVIDIA.
  • Явно запрошенный уровень никогда не понижается автоматически. Если balanced или best недоступны, API возвращает 501 с FEATURE_NOT_INSTALLED или FEATURE_INCOMPATIBLE.
  • Страницы PDF растрируются с высоким разрешением перед OCR. best запускает высокоточные средние модели PP-OCRv6 и оценивает варианты ориентации и улучшения, улучшая распознавание за счет скорости.
  • Языковая настройка auto обеспечивает распознавание в рамках поддерживаемого набора сценариев; явная подсказка может улучшить результаты для известного языка документа.
  • Вы можете указать конкретные страницы с помощью диапазонов ("1-3"), списков через запятую ("1,3,5") или "all" для всех страниц.
  • Запрос может обрабатывать не более 50 страниц. Растрированные рабочие данные ограничены 512 MiB, а совокупный ответ OCR UTF-8 ограничен 1 000 000 байт; задания превышения лимита завершаются неудачей, а не возвращают частичный текст.
  • Для PDF, которые уже содержат выделяемый текст, рассмотрите использование более быстрого инструмента PDF to Text.