← Статьи

Вес — ничто, скорость — все. Почему PDF-чертеж листается рывками

Знакомая картина: генплан или план этажа в PDF весит скромные 5–6 мегабайт, а открываешь — ждешь, листаешь вниз — картинка догоняет тебя рывками, приблизил — секунды смотришь на белый экран, пока прорисуется. При этом сам чертеж в AutoCAD или ArchiCAD ведет себя нормально. Беда рождается именно в готовом PDF.

Мы решили разобраться не на словах, а замерами — и заодно проверить все народные приметы («тяжелый файл», «прозрачность виновата», «слишком много слоев»). Результаты оказались неожиданными.

Как мы мерили

Взяли типичный генплан — тот, что отдают ландшафтники: цветные зоны, деревья, россыпь линий и штриховок-газонов, всего около 1,15 миллиона объектов. И открыли его в трех разных программах:

Мерили две вещи, и их важно не путать:

Каждый замер записан на видео; время — до состояния, после которого изменения на листе неразличимы глазом.

Дальше — прием «убираем по одному»: раскладываем чертеж на составляющие (отдельно заливки, отдельно штриховки, отдельно линии, отдельно кривые) и смотрим, кто виноват.

Кто виноват: не вес, не прозрачность, не слои

Главный результат в одной таблице (время открытия, секунды):

Что в файлеОбъектовВесMuPDFТелефон
Все вместе~1,15 млн5,8 МБ3,8 с12,5 с
Только штриховки1,08 млн5,1 МБ2,7 с13,3 с, рывками
Только линии-контуры71 тыс.0,5 МБ0,18 с1,6 с
Только заливки3 тыс.0,1 МБ0,01 с0,4 с
Только кривые4 тыс.0,1 МБ0,02 с0,5 с

Настольный Acrobat устроен хитрее, и его цифры мы вынесли из таблицы отдельной строкой: каждую составляющую по отдельности он открывает за доли секунды, а целый лист — почти 7 секунд. На миллионе объектов он уходит в повторную перерисовку: целое у него дороже суммы частей.

Виновник виден сразу — штриховки. Точнее, не сами штриховки, а то, что при выводе в PDF каждая штриховка рассыпается на тысячи отдельных черточек, а на весь лист их набирается больше миллиона. Просмотрщик обязан при каждой перерисовке — то есть при каждом листании — пройти их все по одной. Их миллион, отсюда и рывки.

Теперь развеем приметы — мы проверили каждую отдельным замером:

Остается одно: скорость чертежа убивает число отдельных объектов. Все, что раскрошено на сотни тысяч и миллионы мелких кусочков, — вот настоящий груз.

Любопытная деталь для внимательных: если считать «на один объект», то дороже всего обходятся не штрихи, а кривые и заливки. Но их на чертеже тысячи, а штрихов миллион, каждый копеечный, — и вот эта копеечная масса и топит файл. Побеждает не цена одного объекта, а количество.

Почему это не лечится в AutoCAD

Логичный вопрос: раз виноваты штриховки, давайте наведем порядок в самом чертеже. На практике это тупик. У нас инженер две недели правил один тяжелый файл — выполнил все рекомендации по штриховкам, привел их к аккуратному масштабу без раздувания. Файл похудел с 30 МБ до 29,5 — и нормально просматривать его все равно никто не смог. Ручная чистка штриховок на сложном чертеже — это дни работы почти без результата, а в самом AutoCAD механизма «сделай мой PDF быстрым» просто нет.

Совет форумов «проектируйте правильно» — без плотных штриховок и текстур — звучит красиво, но работать так невозможно. Штриховки удобны. Заливки удобны. Что теперь, газон точками не показывать?

Что реально помогает

Мы пошли с другой стороны — лечим уже готовый PDF. Идея простая: все лишнее — текстуры, штриховки-газоны, цветные зоны — свернуть в компактный вид, а все нужное — линии, контуры, текст — оставить резким вектором. Текст ищется, линии острые на любом увеличении, а миллион черточек больше не мешает.

Что это дает на том же листе (открытие / листание):

MuPDFAcrobatТелефон
Было (все вектором)3,8 / 1,3 с6,7 / 4,3 с12,5 / 8,4 с
Стало (после лечения)0,5 / 0,2 с0,4 / 2,3 с2,1 / 3,2 с

Время — до визуальной готовности листа; замеры записаны на видео.

Открытие быстрее в 5–15 раз, листание в 2–6 раз — в зависимости от устройства. На телефоне разница особенно наглядна: тяжелый вектор листается рывками (просмотрщик не успевает перерисовывать миллион черточек), а вылеченный файл крутится и зумится плавно, как обычная картинка.

Коротко. Чертеж тормозит не от веса, не от прозрачности и не от числа слоев, а от количества отдельных объектов, на которые печать раскрошила штриховки. Руками в AutoCAD это лечится днями и почти без толку. В готовом PDF это лечится за минуты — без потери качества, текст и линии остаются резкими. Мы за два месяца вскрытий насчитали около 120 таких типовых болезней и научились убирать их из готового файла автоматически. Откуда берется вес — разобрали в статье про 113 098 картинок внутри PDF.

Проверьте на своем файле: загрузите неподъемный PDF на cutpdf.ru — до 20 МБ бесплатно, файлы удаляются автоматически. Промокод CADPDF дает бонус на обработку тяжелых альбомов. Пришлите самый страшный лист — и посмотрите, как он начнет листаться.