Сжать PDF до 20 МБ
Двадцать мегабайт — потолок, на котором вопрос уже не в качестве, а в памяти вкладки. Бюджет огромный: 512 КБ на страницу при сорока листах, около 205 КБ при ста и 102 КБ при двухстах. Максимальное качество обычно проходит с первой попытки. Зато сам рендер дорог: страница А4 при 300 DPI — это примерно 2480 на 3508 пикселей, около 33 МБ в памяти, и подшивка в сотни листов скорее уронит вкладку, чем не уложится в потолок.
Коротко о цифрах
- Потолок
- 20 МБ = 20 971 520 байт
- Бюджет на страницу
- 512 КБ при 40 страницах, ≈205 КБ при 100, ≈102 КБ при 200
- Канвас страницы А4 при 300 DPI
- ≈2480 × 3508 пикселей, около 33 МБ памяти
- Как освобождается память
- канвас обнуляется и страница выгружается после каждой итерации
- Типичный исход
- цель берётся на первом проходе из семи возможных
Двадцать мегабайт по страницам
Сорок листов получают по полмегабайта каждый — это цветной скан, на котором различима даже фактура бумаги. Сто листов делят потолок до двухсот пяти килобайт на страницу: качество остаётся высоким. Двести листов дают по сто два килобайта, и даже здесь текст с печатями сохраняет рабочий вид.
Отсюда следствие: если файл не укладывается в двадцать мегабайт, дело почти никогда не в качестве сканирования. Обычно это либо сотни страниц, либо фотографии в полный лист, либо документ, который вообще не стоило растеризовать — его надо было оптимизировать по структуре.
Ограничение здесь — память, а не потолок
Каждая страница рисуется в канвас, и канвас держит четыре байта на пиксель. А4 при 300 DPI — это 2480 на 3508 точек, почти 8,7 миллиона пикселей, то есть около 33 МБ оперативной памяти на одну страницу. Буфер освобождается сразу после кодирования в JPEG, но пик приходится на момент отрисовки, и он одинаков для каждой страницы подряд.
На мобильных браузерах лимит памяти вкладки жёстче, чем на десктопе, и подшивка на несколько сотен листов способна перезагрузить страницу в середине обработки. Признак близкой границы простой: браузер начинает подтормаживать на первых же страницах. В этом случае разделите документ и обработайте части по отдельности.
Что делать с очень большим документом
- Разделите его на части по сто-полтораста страниц и сожмите каждую отдельно — так пик памяти не растёт.
- Обрабатывайте на компьютере, а не на телефоне: разница в доступной вкладке памяти здесь решающая.
- Закройте лишние вкладки перед запуском — они конкурируют за ту же память.
- Если документ текстовый, начните с оптимизации структуры: она не рисует страницы и потому не требует канваса вообще.
Частые вопросы
Почему вкладка перезагрузилась в середине обработки?
Кончилась память. Каждая страница рисуется в канвас размером почти восемь целых семь десятых миллиона пикселей, и на мобильных браузерах лимит вкладки достигается быстрее, чем на компьютере. Разделите документ на части.
Двадцать мегабайт вообще нужно догонять качеством?
Редко. При сорока листах бюджет составляет полмегабайта на страницу, при двухстах — около ста килобайт, поэтому максимальное качество чаще всего укладывается сразу и подбор заканчивается на первом же проходе.
Что делать с документом на пятьсот страниц?
Разделить на части по сто-полтораста листов и обработать по очереди. Пик памяти зависит от размера одной страницы, а вот суммарное время и риск исчерпать память вкладки растут вместе с числом страниц.
Помогает ли закрытие других вкладок?
Да, ощутимо. Вкладки одного браузера делят общий пул памяти, поэтому перед обработкой тяжёлого документа стоит закрыть всё лишнее, особенно страницы с видео и картами, которые удерживают много данных.