Серый PDF без потери текста и редактируемой формы
Векторный режим DOKIVO убрал цвет содержимого двух контрольных PDF, сохранил исходный текст и оставил текстовое поле и флажок редактируемыми. Здесь доступны исходники, настоящие результаты, измерения и ограничения проверки.
Когда это полезно
Если нужно сделать цветной PDF серым для отправки или печати и затем искать, копировать текст или заполнять форму, выберите «Оттенки серого · сохранить вектор и текст». На семи исходно векторных страницах мелкий чёрный текст остался векторным. На скане сохранился существующий слой OCR, а поля формы можно было изменить и сохранить снова. Новое распознавание OCR этот режим не выполняет.
Цвета полей и пометок сохраняются. Для полностью чёрно-белой картинки или очистки скана подходит отдельный растровый режим; у него другие последствия для чёткости и редактируемости.
Скачайте и проверьте те же документы
| Документ | Исходник | DOKIVO, вектор | DOKIVO, растр 144 DPI | Открытая команда Ghostscript |
|---|---|---|---|---|
| Кириллица и карты шрифтов 4 страницы A4 | Исходник 106 710 байт | DOKIVO, вектор 15 129 байт | Растр 144 DPI 137 212 байт | Ghostscript 17 928 байт |
| Текст, скан и форма 4 страницы A4 | Исходник 46 830 байт | DOKIVO, вектор 31 340 байт | Растр 144 DPI 142 282 байт | Ghostscript 27 410 байт |
Первый документ проверяет Latin, кириллицу, полные и частичные шрифты, составные буквы и похожие символы. Второй содержит векторную страницу, скан с уже существующим невидимым текстом, цветную страницу с формой и серую страницу со ссылками и закладками. Все тексты и изображения синтетические; пользовательских документов здесь нет.
Что получилось
| Проверка | DOKIVO, вектор | Собственный растр 144 DPI | Ghostscript 10.05.1 |
|---|---|---|---|
| Точный текст страницы в PDFium и PDF.js | 8/8 в каждом читателе | 7/8 в каждом читателе | 7/8; добавлен текст поля |
| Поиск исходных контрольных строк | 16/16 запросов, 8/8 страниц | 15/16 запросов, 7/8 страниц | 16/16 запросов, 8/8 страниц |
| Обычные страницы без нового растра поверх текста и линии | 7/7 | 0/7 | 7/7 |
| Чёрный текст 6 pt, точное совпадение при 576 DPI | 8/8 | 1/8, исходный скан | 8/8 |
| Чёрная линия, точное совпадение при 576 DPI | 7/8 | 1/8 | 7/8 |
| Содержимое страницы серое при 72 DPI, без полей и пометок | 8/8 | 8/8 | 8/8 |
| Редактируемое текстовое поле и флажок | 2/2 сохранены | 0/2 | 0/2 |
| Цели ссылок / закладки | 3/3 и 2/2 | 0/3 и 0/2 | 3/3 и 2/2 |
Два документа — небольшая зависимая выборка. Это 8 сценарных страниц, а не 8 независимых PDF. Успешный поиск означает прохождение всех допустимых исходных запросов на странице. Текст сравнивался полностью после NFC и свёртки пробелов, отдельно от значений интерактивных полей.
В результате Ghostscript основной текст не оказался доказанно повреждён: на странице с формой к нему добавилось расплющенное значение «Ёлка_027», поэтому строгий критерий полного совпадения дал 7/8. Все 16 контрольных поисков прошли. В собственном растровом результате на странице A04 составные символы действительно подменились, и один поиск не прошёл.
Тонкая линия на исходном скане B02 немного отличается у обоих векторных результатов: MAE 7,654 и пересечение масок 0,6. На остальных 7 страницах линия совпала точно. Это ограничение сохранено в данных.
Форма после перекраски остаётся формой
На третьей странице второго документа находятся текстовое поле и флажок. Векторный DOKIVO сохранил оба поля, их значения, доступность редактирования и внешний вид. В отдельной копии мы заменили текст на «ПРОВЕРКА_028», сняли флажок, сохранили PDF и прочитали новые значения независимым PDFMiner. Это программная проверка сохранения и повторного чтения; работа во всех настольных редакторах не заявляется.

На этом фрагменте показаны цветные поля формы

Текст заменён, флажок снят, PDF сохранён снова
Скачать сохранённую копию с изменёнными полями
В этой конкретной открытой команде Ghostscript и в собственном растровом режиме интерактивных полей больше нет. При этом Ghostscript сохранил 3 ссылки с прежними целями и 2 закладки; именованная цель стала прямой. Внешний адрес в образце намеренно синтетический (.invalid): проверялись записанные цели, а не открытие живого сайта. Полную потерю навигации эти данные не показывают.
Чёткость при увеличении
Ниже один и тот же участок чёрного текста 6 pt, отрисованный при 576 DPI. Векторный результат совпал с исходником побайтно; растровый 144 DPI отличается. Точные размеры и SHA каждого PDF и фрагмента находятся в манифесте.

Контрольный участок A02
Прокрутите фрагмент по горизонтали
Открыть полный фрагмент

Пиксели этого участка совпадают с исходником
Прокрутите фрагмент по горизонтали
Открыть полный фрагмент

Страница до этого превращена в изображение 144 DPI
Прокрутите фрагмент по горизонтали
Открыть полный фрагмент
Почему форма сохранилась
DOKIVO использует Ghostscript для перекраски содержимого страницы, затем переносит преобразованные потоки содержимого и их ресурсы в исходный граф PDF. Каталог документа, поля и пометки остаются исходными. Перед выдачей результата проверяются текст и геометрия; неподдерживаемая структура вызывает отказ, а не незаметный переход к картинке.
В отдельном контроле использовали один и тот же преобразованный файл до и после переноса в исходную структуру. В восстановленном результате вернулись форма, ссылки и закладки; его SHA-256 полностью совпал с настоящим векторным результатом второго документа. Текст в двух читателях, чёрные фрагменты и содержимое всех 3 контролируемых страниц до и после переноса совпали. Поля и пометки в файле-доноре удалялись намеренно: этот опыт проверяет механизм восстановления структуры и не моделирует внутреннее устройство сторонних сервисов.
При первом измерении PDFium продолжал рисовать форму даже с выключенными аннотациями. Измеритель исправлен явным выключением may_draw_forms для содержимого страницы. Повторно читались те же 12 PDF, их SHA не изменились. Все метрики, кроме четырёх заранее перечисленных показателей отрисовки содержимого, остались прежними; новых конвертаций не было. Исправление сделано после получения исходных результатов и отмечено в JSON.
Где преимущество заканчивается
- Первый векторный файл DOKIVO меньше результата Ghostscript на 2 799 байт, второй больше на 3 930 байт. Универсального выигрыша размера нет; во втором файле DOKIVO сохранил редактируемые поля.
- Скорость одного последовательного прогона не использована как доказательство производительности.
- Новый корпус не проходил через PDF24, Sejda и AvePDF. Открытая команда Ghostscript не представляет их текущие продукты. Прежняя отдельная проверка трёх сервисов от 23 октября относится к другим двум PDF.
- Слои, теги доступности, печатные профили, цифровые подписи и сложная геометрия страниц не входят в поддерживаемый контракт этого режима. Произвольные шрифты, прозрачности и формы этим набором не покрыты.
- Цвета полей и пометок сохраняются. Проверка содержимого без форм не означает, что весь видимый документ стал серым.
- Это проверка автора продукта, а не независимая сертификация. Публикация не доказывает предпочтение DOKIVO поисковой системой.
Как повторить проверку
- Скачайте исходник и готовые результаты из таблицы. Сравните размеры и SHA-256 с манифестом файлов.
- Загрузите тот же исходник в DOKIVO, выберите векторный режим и все страницы. Откройте скачанный результат в своей программе: найдите строку, скопируйте текст, увеличьте участок 6 pt. Для второго документа проверьте текстовое поле, флажок и сохранение изменённой копии.
- Сопоставьте результаты с таблицей измерений JSON и точными параметрами и методикой. Параметры растра: 144 DPI, контраст 1, удаление фона 0. Вектор: все страницы без новой OCR.
- Для открытого сравнения использован Ghostscript 10.05.1 со следующей командой. Замените только имена входа и выхода.
gs -dSAFER -dBATCH -dNOPAUSE -dQUIET -sDEVICE=pdfwrite -dCompatibilityLevel=1.7 -sColorConversionStrategy=Gray -dAutoRotatePages=/None -dPreserveAnnots=true -dDownsampleColorImages=false -dDownsampleGrayImages=false -dDownsampleMonoImages=false -sOutputFile=gs-gray.pdf -f source.pdf
Читатели: PDFium 152.0.7947.0 через pypdfium2 5.12.1, PDF.js 5.5.207; форма дополнительно PDFMiner 20260107. Чёрные фрагменты — 576 DPI, содержимое страницы — 72 DPI без полей и аннотаций, форма — 144 DPI вместе с полями. Нормализация: NFC и свёртка пробелов. Обработка и отрисовка выполнены в изолированном серверном контейнере; это не измерение локальной обработки браузером.
Версия сбора результатов: 406cec9d13c0f0bc20f28eb899be3a3012478f90. Исправленное чтение: ea861bad839bd2e02160b3a64446688f8ece0435. Полные отпечатки обработчика и файлов доступны в манифесте. Дата относится к этому испытанию, а не к проверке всех инструментов сайта.
Первичные материалы: код отрисовки pypdfium2 5.12.1 · документация pdfwrite Ghostscript 10.05.1. Спецификация или исходный код поясняют механизм; результат в таблице получен чтением конкретных PDF.
Проверьте свой документ
Для цветного PDF с текстом и заполняемой формой начните с векторного режима. После скачивания проверьте поиск, копирование, поля и вид в программе получателя. Для скана без текстового слоя сначала требуется OCR.