Сканер и папка с PDF — ещё не архив: найти нужный счёт за 2023 год среди сотни файлов с именами вида scan_0042.pdf невозможно. Paperwork берёт на себя цепочку «сканирование — OCR — теги — полнотекстовый поиск» и хранит всё локально, без облака и подписок. Это настольное приложение для одного человека или семьи, а не серверный документооборот.

Что умеет и чего не умеет Paperwork

Paperwork — GTK-приложение проекта OpenPaperwork. Сканирует через SANE (Libinsane), распознаёт текст Tesseract через PyOCR, индексирует содержимое Whoosh и сохраняет каждый документ как PDF с текстовым слоем. Интерфейс напоминает стопку листов: слева список документов, справа страница, сверху поиск и метки.

Важно понимать границы. Здесь нет веб-интерфейса, многопользовательской работы, правил автоматической сортировки почты и API для интеграций. Если архив нужен команде из пяти человек, смотрите в сторону Paperless-ngx. Paperwork выигрывает в другом: установка из репозитория, работа без сервера, простой бэкап каталога и предсказуемое хранение файлов.

Установка и подготовка OCR

В Debian, Ubuntu и производных пакет называется paperwork-gtk; в старых выпусках встречалось имя paperwork. Вместе с ним ставим SANE и языковые пакеты Tesseract. Кириллица без tesseract-ocr-rus не распознается вообще, а не «плохо».

sudo apt update
sudo apt install paperwork-gtk paperwork-shell sane-utils tesseract-ocr tesseract-ocr-rus tesseract-ocr-eng
tesseract --list-langs

Последняя команда должна показать rus и eng. Если пакета paperwork-gtk в репозитории нет, остаётся Flatpak. Его идентификатор — work.openpaper.Paperwork; в контейнере доступны локальные сканеры, а сетевой сканер через Flatpak, как правило, не подключить — тогда нужна установка из репозитория дистрибутива.

flatpak install flathub work.openpaper.Paperwork
flatpak run work.openpaper.Paperwork

После установки запустите paperwork-gtk из терминала, если из меню приложение не стартует: сообщение об ошибке будет видно в выводе.

Проверка сканера до первого документа

Paperwork не умеет «починить» SANE, поэтому сканер проверяем отдельно. Команда scanimage -L перечисляет устройства. Пустой список почти всегда означает права доступа или отсутствие драйвера, а не поломку.

scanimage -L
scanimage -A
scanimage --format=jpeg --resolution=300 --mode=Gray -o test.jpg
scanimage --format=jpeg --resolution=300 --mode=Color --source="ADF Duplex" --batch=page-%03d.jpg

Точное имя источника для автоподатчика берётся из scanimage -A: у разных моделей это ADF, ADF Duplex или Automatic Document Feeder. Пользователь должен входить в группу scanner (в некоторых дистрибутивах — lp); после sudo usermod -aG scanner "$USER" нужен повторный вход. Для текста достаточно 300 dpi и оттенков серого, цвет нужен только печатям, фотографиям и цветным схемам.

Пакетный режим с --batch удобен для пачки счетов: проверьте, что нумерация начинается с ожидаемого номера, и просмотрите первые страницы до импорта. Если автоподатчик захватывает два листа сразу, уменьшите стопку и проверьте ролики — программно такая проблема не лечится.

Первый запуск и рабочий каталог

При старте Paperwork предлагает выбрать рабочий каталог. По умолчанию это ~/.local/share/paperwork; настройки лежат в ~/.config/paperwork.conf. В рабочем каталоге находятся PDF, изображения страниц и поисковый индекс в подкаталоге index. Именно рабочий каталог, а не базу приложения, нужно включать в резервное копирование.

В настройках укажите языки OCR в порядке приоритета, например rus+eng. Если документ двуязычный, Tesseract обычно справляется с такой комбинацией лучше, чем с одним языком. Порядок важен: первый язык считается основным и влияет на словарь.

Дальше цикл простой: «Scan» или «Import» → проверка ориентации страниц → OCR выполняется автоматически → метки → поиск. Paperwork предлагает метки по содержимому, но автоматика ошибается; первые полсотни документов лучше размечать вручную, иначе мусорные метки размножатся.

Качество OCR и повторное распознавание

Точность зависит от исходника сильнее, чем от настроек. Ровный лист, 300 dpi, без цветных теней и с полями даёт заметно лучший текст, чем перекошенная фотография с телефона. PDF, полученный изначально в цифровом виде, распознавать не нужно — текстовый слой там уже есть.

Проверить, что текст действительно записался, можно через pdftotext:

pdftotext -layout document.pdf - | head -n 20
pdfinfo document.pdf | grep -E 'Pages|Page size'

Если слой пустой, в Paperwork выберите страницу и запустите OCR заново, предварительно убедившись, что установлен нужный языковой пакет. Иногда помогает повысить разрешение до 400 dpi для мелкого шрифта или, наоборот, снизить до 200 dpi для плотной газетной вёрстки. Для рукописей Tesseract не предназначен: не тратьте время на подбор режимов.

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

Архив Paperwork — это обычные файлы, поэтому бэкап не требует специальных утилит. Копируйте рабочий каталог вместе с конфигом, пока приложение закрыто, иначе индекс может оказаться в промежуточном состоянии; сам индекс при восстановлении пересоберётся.

rsync -a --delete ~/.local/share/paperwork/ /mnt/backup/paperwork/
cp ~/.config/paperwork.conf /mnt/backup/paperwork.conf
tar --zstd -cf /mnt/backup/paperwork-$(date +%F).tar.zst -C ~/.local/share paperwork
sha256sum /mnt/backup/paperwork-$(date +%F).tar.zst

Проверка копии обязательна: раз в квартал разверните архив на другом компьютере или во временном каталоге и откройте пару документов. Для переноса на новую машину достаточно скопировать каталог, запустить Paperwork и указать на него как на рабочий. Индекс перестроится, метки и PDF останутся на месте.

Держите хотя бы две копии: на внешнем диске и на другом носителе, который хранится отдельно. Архив с документами не меняется каждый час, поэтому хватит еженедельного запуска по расписанию и ручной копии перед крупной разборкой бумаг.

Диагностика типичных проблем

  • Сканер не найден: проверьте lsusb, sane-find-scanner, группу scanner и перезагрузку после изменения групп.
  • Пустой OCR: tesseract --list-langs, язык в настройках, разрешение скана.
  • Приложение падает: запустите paperwork-gtk в терминале и прочитайте traceback; для Flatpak — flatpak run work.openpaper.Paperwork.
  • Поиск не находит старые документы: переименуйте каталог index и перезапустите приложение, не удаляя сами PDF.
  • Мало места: df -h и du -sh ~/.local/share/paperwork; старые сканы в 600 dpi занимают неоправданно много.

Итог

Paperwork — компактный локальный архив для тех, кто хочет получить поиск по бумаге без сервера и облака. Связка «SANE + Tesseract + Paperwork» ставится за вечер, а дисциплина важнее настроек: 300 dpi, правильный язык, ручные метки и регулярная проверка резервной копии. Если архив перерастает одного пользователя, переносите PDF в Paperless-ngx, но начинать проще с Paperwork.

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 0 / 5. Количество оценок: 0

Оценок пока нет. Поставьте оценку первым.

Поделиться: Telegram ВКонтакте