DOKIVO
ВойтиОплатить Pro

Серый 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 DPIGhostscript 10.05.1
Точный текст страницы в PDFium и PDF.js8/8 в каждом читателе7/8 в каждом читателе7/8; добавлен текст поля
Поиск исходных контрольных строк16/16 запросов, 8/8 страниц15/16 запросов, 7/8 страниц16/16 запросов, 8/8 страниц
Обычные страницы без нового растра поверх текста и линии7/70/77/7
Чёрный текст 6 pt, точное совпадение при 576 DPI8/81/8, исходный скан8/8
Чёрная линия, точное совпадение при 576 DPI7/81/87/8
Содержимое страницы серое при 72 DPI, без полей и пометок8/88/88/8
Редактируемое текстовое поле и флажок2/2 сохранены0/20/2
Цели ссылок / закладки3/3 и 2/20/3 и 0/23/3 и 2/2

Два документа — небольшая зависимая выборка. Это 8 сценарных страниц, а не 8 независимых PDF. Успешный поиск означает прохождение всех допустимых исходных запросов на странице. Текст сравнивался полностью после NFC и свёртки пробелов, отдельно от значений интерактивных полей.

В результате Ghostscript основной текст не оказался доказанно повреждён: на странице с формой к нему добавилось расплющенное значение «Ёлка_027», поэтому строгий критерий полного совпадения дал 7/8. Все 16 контрольных поисков прошли. В собственном растровом результате на странице A04 составные символы действительно подменились, и один поиск не прошёл.

Тонкая линия на исходном скане B02 немного отличается у обоих векторных результатов: MAE 7,654 и пересечение масок 0,6. На остальных 7 страницах линия совпала точно. Это ограничение сохранено в данных.

Форма после перекраски остаётся формой

На третьей странице второго документа находятся текстовое поле и флажок. Векторный DOKIVO сохранил оба поля, их значения, доступность редактирования и внешний вид. В отдельной копии мы заменили текст на «ПРОВЕРКА_028», сняли флажок, сохранили PDF и прочитали новые значения независимым PDFMiner. Это программная проверка сохранения и повторного чтения; работа во всех настольных редакторах не заявляется.

Исходная форма
Исходная форма
На этом фрагменте показаны цветные поля формы
DOKIVO после изменения полей
DOKIVO после изменения полей
Текст заменён, флажок снят, PDF сохранён снова

Скачать сохранённую копию с изменёнными полями

В этой конкретной открытой команде Ghostscript и в собственном растровом режиме интерактивных полей больше нет. При этом Ghostscript сохранил 3 ссылки с прежними целями и 2 закладки; именованная цель стала прямой. Внешний адрес в образце намеренно синтетический (.invalid): проверялись записанные цели, а не открытие живого сайта. Полную потерю навигации эти данные не показывают.

Чёткость при увеличении

Ниже один и тот же участок чёрного текста 6 pt, отрисованный при 576 DPI. Векторный результат совпал с исходником побайтно; растровый 144 DPI отличается. Точные размеры и SHA каждого PDF и фрагмента находятся в манифесте.

Исходный текст, 576 DPI
Исходный текст, 576 DPI
Контрольный участок A02
Прокрутите фрагмент по горизонтали
Открыть полный фрагмент
Векторный результат, 576 DPI
Векторный результат, 576 DPI
Пиксели этого участка совпадают с исходником
Прокрутите фрагмент по горизонтали
Открыть полный фрагмент
Растровый результат, 576 DPI
Растровый результат, 576 DPI
Страница до этого превращена в изображение 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 поисковой системой.

Как повторить проверку

  1. Скачайте исходник и готовые результаты из таблицы. Сравните размеры и SHA-256 с манифестом файлов.
  2. Загрузите тот же исходник в DOKIVO, выберите векторный режим и все страницы. Откройте скачанный результат в своей программе: найдите строку, скопируйте текст, увеличьте участок 6 pt. Для второго документа проверьте текстовое поле, флажок и сохранение изменённой копии.
  3. Сопоставьте результаты с таблицей измерений JSON и точными параметрами и методикой. Параметры растра: 144 DPI, контраст 1, удаление фона 0. Вектор: все страницы без новой OCR.
  4. Для открытого сравнения использован 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.

Сделать PDF серым