Эта страница переведена машинным способом. Заметили ошибку?Помогите её улучшить.
Skip to content

PDF OCR

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

Совместимость 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

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

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

Example Request

bash
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.

json
{
  "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.