Какво беше тествано и какво не?
Тестван е същият непроменен код за компресиране, който използва PDF компресорът на този сайт. За измерването обаче той не беше изпълнен в браузъра, а беше извикан директно в Node.js. Така за всяко изпълнение могат да се запишат точно входните данни, настройките и запазеният резултат.
- Модул за компресиране: QPDF 12.2.0 като WebAssembly, версия на обвивката 0.3.0. Скриптът за изграждане на обвивката задава QPDF 12.2.0, а инсталираният модул също връща 12.2.0 при запитване.
- Среда: Node.js 24.18.1 под Windows 11, компилация 26200, x64.
- Обхват: три синтетични входни файла, девет изпълнения на компресирането и един тестов файл със заместител на подпис, който трябва да бъде отхвърлен.
- Последваща проверка: дванадесет запазени PDF файла с общо 24 страници, всеки с проверка на структурата и визуализиран изглед на страниците.
Това измерване не обхваща:
- времето за обработка; време не е измервано,
- поведението в отделни браузъри или на реални смартфони и таблети,
- реални снимки, сканирани изображения, големи файлове или документи на потребители,
- други програми за компресиране или онлайн услуги,
- средно намаление, което би могъл да очакваш за своя файл.
Тестови файлове, настройки и изтегляния
В теста са използвани единствено самостоятелно създадени PDF файлове. Няма клиентски документи, снимки от реалния свят или подписи на реални хора. Изображението във файла с изображение също е генерирано: то показва текстура с цветен градиент и не е нито снимка, нито сканирано изображение.
- Текстов файл, 3029 байта: две страници с текст, едно попълнено поле на формуляр, една връзка, завъртане на страница и маркер в дървото на структурата.
- Файл с изображение, 1 359 079 байта: същите елементи, плюс генерирано изображение с 640 × 800 пиксела. Текстовият файл без изображение е само 3029 байта, така че по-голямата част от размера на този файл се дължи на изображението.
- Вече оптимизиран текстов файл, 2721 байта: той служи за пример, при който няма възможност за допълнително намаление.
- Файл със заместител на подпис, 3139 байта: той съдържа само структурата на подпис, но не и истински цифров подпис. Чрез него се проверява дали компресорът отхвърля подписани файлове.
Еднакви изходни условия за всяко изпълнение
- Всяко изпълнение започва с непроменените оригинални байтове. Ако за дадено изпълнение са необходими няколко опита, всеки следващ опит също започва от оригинала, а не от предишния резултат.
- Всички резултати съдържат и двете страници в пълен вид. Не са премахвани страници, нищо не е пакетирано като ZIP, не е намаляван броят пиксели на изображенията и цели страници не са преобразувани в изображения. Само така броят байтове при различните режими може да се сравнява.
- Всеки резултат е запазен под отделно име на файл. За входния и изходния файл са записани броят байтове и контролната сума SHA-256. Контролната сума е отпечатък на файла: ако се промени дори само един байт, се променя и контролната сума.
- За всяко изпълнение са записани режимът, целевият размер, ако е зададен, и действително използваното качество на JPEG.
Какво правят технически трите режима
В протокола и таблиците режимите се наричат lossless, balanced и small. В инструмента ще ги намериш под следните имена: lossless е Оптимизация без загуба на качество, balanced е Балансирано, а small е По-малък файл. Оптимизация без загуба на качество оптимизира само структурата на файла, тоест обектите и компресираните потоци от данни. Балансирано допълнително прекодира подходящите изображения като JPEG с ниво на качество 80. Ако целевият размер не бъде постигнат, следва опит с 70. По-малък файл започва от ниво 65 и при непостигната цел преминава към 50, а след това към 40. Ако си задал целеви размер и още оригиналът или структурно оптимизираната версия отговаря на тази цел, не е необходим опит с JPEG със загуба на качество. Накрая се избира най-малката проверена версия. Ако никоя не е по-малка от оригинала, се запазва оригиналът. Това не гарантира определено намаление.
Според документацията на QPDF 12.2 QPDF не намалява разделителната способност на изображенията при тази обработка. Прекодирането в JPEG обаче може да създаде видими артефакти, а QPDF използва прекодираните данни на изображенията само ако са по-малки. Какво означава това за качеството на изображението, е обяснено в ръководството Компресирай PDF без загуба на качество.
Файлове и контролни суми за проверка
Следващата таблица съдържа връзки към всички тестови и резултатни файлове. След изтеглянето сравни контролната сума SHA-256 с инструмент за контролни суми по твой избор. Ако съвпада, разполагаш точно с измерения файл. Протоколът reproducibility-manifest.json на английски език съдържа точните извиквания и настройки на всички изпълнения.
Резултати: честно представяне на размера на файла
Измерванията от 13 октомври 2026 в диаграма
Диаграмата показва всичките девет изпълнения от нашето измерване с QPDF 12.2.0 (WASM) в Node.js под Windows 11. Филтрирай по тестов файл или метод и превключвай между точния брой байтове и оставащия размер в проценти.
Показани са 9 от 9 изпълнения
Текст · Без загуба на качество
с намален размер
- Оригинал
- 3029 Байт · 100 %
- Резултат
- 2721 Байт · 89,83 %
- Зададен лимит
- Няма зададен лимит
Изображение · Без загуба на качество
с намален размер
- Оригинал
- 1 359 079 Байт · 100 %
- Резултат
- 1 358 764 Байт · 99,98 %
- Зададен лимит
- Няма зададен лимит
Изображение · Балансирано
с намален размер
- Оригинал
- 1 359 079 Байт · 100 %
- Резултат
- 179 708 Байт · 13,22 %
- Зададен лимит
- Няма зададен лимит
Изображение · балансирано, повторение
същият размер, различна контролна сума
- Оригинал
- 1 359 079 Байт · 100 %
- Резултат
- 179 708 Байт · 13,22 %
- Зададен лимит
- Няма зададен лимит
Изображение · Силно
с намален размер
- Оригинал
- 1 359 079 Байт · 100 %
- Резултат
- 125 710 Байт · 9,25 %
- Зададен лимит
- Няма зададен лимит
Изображение · Силно
Целта е постигната
- Оригинал
- 1 359 079 Байт · 100 %
- Резултат
- 125 710 Байт · 9,25 %
- Зададен лимит
- 250 000 Байт
Изображение · Силно
Целта не е постигната, предоставен е целият PDF файл
- Оригинал
- 1 359 079 Байт · 100 %
- Резултат
- 74 707 Байт · 5,5 %
- Зададен лимит
- 128 Байт
Изображение · Силно
Целта вече е била изпълнена
- Оригинал
- 1 359 079 Байт · 100 %
- Резултат
- 1 358 764 Байт · 99,98 %
- Зададен лимит
- 1 359 079 Байт
Вече оптимизиран текст · Без загуба на качество
Запазване на оригинала без промени
- Оригинал
- 2721 Байт · 100 %
- Резултат
- 2721 Байт · 100 %
- Зададен лимит
- Няма зададен лимит
Без промяна — оригиналът е запазен
Историческо измерване: не дава информация за браузъри, телефони, текущата версия или други инструменти. Процентите показват оставащия размер, а не намалението. Въведеният лимит е числово условие, а не обещание. Таблицата по-долу съдържа всичките девет изпълнения независимо от филтрите.
От този тест не може да се предвиди колко ще се намали твоят PDF файл. Това зависи от съдържанието на файла ти. Още трите тестови файла показват диапазона: малкият текстов файл стана с 10,17 процента по-малък в режим lossless, а файлът с изображение — само с 0,02 процента в същия режим. Едва прекодирането в JPEG доведе до намаление от 86,78 процента при файла с изображение. Таблицата съдържа всичките девет изпълнения, включително тези без съществено намаление.
Намалението винаги се изчислява от действителния брой байтове: спестените байтове се делят на оригиналния размер. При изпълнението с balanced това са 1 179 371 от 1 359 079 байта, тоест 86,78 процента. За своя файл можеш да провериш изчислението с калкулатора за степента на компресиране.
Качеството на JPEG не е намаление в проценти
Стойностите 80, 65 или 40 са настройки на JPEG енкодера, а не проценти на намаление. Тук нивото на качество 80 доведе до намаление с 86,78 процента, а ниво 65 — с 90,75 процента. При друг файл същите нива могат да дадат съвсем различни резултати.
Защо е включен и случаят без намаление
Тест, който показва само най-голямото намаление, премълчава важен случай: какво се случва, когато няма възможност за допълнително намаление? При вече оптимизирания текстов файл с 2721 байта режимът lossless не създаде по-малка версия. Затова компресорът запази оригинала: изходен файл 2721 байта, намаление 0 байта, а входният и изходният файл имат една и съща контролна сума SHA-256. Така с действителния модул за компресиране е доказано, че в този случай не получаваш пренаписан файл без полза. Какво можеш да направиш тогава, е описано в ръководството PDF не става по-малък.
Целеви размер: постигнат, непостигнат или вече постигнат
- Цел 250 000 байта: още първият опит с ниво 65 даде 125 710 байта. Така целта беше постигната, а резултатът е дори идентичен байт по байт с изпълнението без цел.
- Цел 128 байта: за две страници с изображение това е нереалистично малък размер. Дори последното ниво 40 достигна само до 74 707 байта. Компресорът съобщава, че целта не е постигната, и въпреки това предоставя файл. При този тестов файл запазеният резултатен файл с 74 707 байта съдържа и двете страници, а описаните по-долу проверки на функциите бяха успешни. Данните на изображението бяха прекодирани със загуба на качество. Това изпълнение не доказва, че цялото съдържание ще се запази при всеки друг файл.
- Цел 1 359 079 байта, тоест точно оригиналният размер: целта беше отчетена като вече изпълнена. Извършена беше само структурната оптимизация без загуба на качество. Тя даде 1 358 764 байта — същия размер като изпълнението с lossless. Изображението не беше прекодирано като JPEG, тъй като записаните извиквания не съдържат настройка за JPEG.
Същият размер, различна контролна сума
Повторението на изпълнението с balanced отново даде точно 179 708 байта, но различна контролна сума SHA-256. Изпълнението с вече изпълнена цел също има същия размер като изпълнението с lossless, но въпреки това има собствена контролна сума. Възможна причина е, че при записването на PDF файл например може да се създаде нов идентификатор на документа. За разлика от тях изпълненията с small без цел и с цел 250 000 байта съвпаднаха байт по байт. Следователно контролната сума идентифицира конкретен запазен файл. Ако повториш дадено изпълнение, включително в браузъра, не е задължително да получиш идентичен байт по байт файл, дори размерът да остане същият.
Визуализацията и функциите са проверени отделно
По-малкият файл сам по себе си не показва дали текстът, формулярът и връзката са запазени. Дори добрият предварителен преглед не доказва това. Затова запазените файлове бяха проверени с две независими една от друга библиотеки: pdf-lib прочита запазената вътрешна структура, а PDF.js 6.4.299 визуализира страниците и извлича текста и анотациите. За целта PDF.js беше изпълнен в изолиран екземпляр на Chromium с версия 151.0.7922.34. Тази проверка на готовите файлове е отделна от компресирането, измерено в Node.js под Windows 11. Компресиране в браузъра или на мобилни устройства не е измервано, а проверката не дава информация за поведението на други PDF програми. Всяка проверка има собствен метод и важи само за тези тестови файлове.
Една подробност за полето на формуляра: стойността му не се появява надеждно при обичайното извличане на текст с PDF.js, затова беше прочетена чрез анотациите. Следователно, ако търсиш попълнена стойност на формуляр в компресиран PDF файл и не я намираш, това не означава автоматично, че тя липсва.
При balanced и small изображението беше прекодирано като JPEG със загуба на качество, с изключение на изпълнението с small с вече изпълнена цел. При това декодираните инструкции за съдържанието на текста и линиите останаха еднакви, но данните на изображението с текстурата се промениха. На визуализираните страници на резултатите от файла с изображение позицията и размерите на изображението, както и завъртането на страницата, останаха като в оригинала. Важно, ако разглеждаш файловете сам: още в оригинала генерираното изображение покрива няколко реда текст. Това припокриване е част от тестовия файл и не е повреда от компресирането. То се запазва в резултатите. От това не следва извод за четливостта на всеки ред или оценка за качество. Освен това генерирано изображение с текстура и цветен градиент дава малко информация за това как снимки, сканирани изображения или дребен текст в сканирани изображения ще реагират на същото ниво. По темата е ръководството Намали размера на сканиран PDF.
Заместителят на подпис показва само, че компресорът разпознава файл със структура на подпис и не го обработва. Според кода за компресиране се отхвърлят също криптирани и сертифицирани файлове. Този тест не проверява дали истински подпис е валиден и не заобикаля защита. Повече по темата има в ръководството Компресиране на PDF с подписи и формуляри.
Ограничения и собствена проверка
По-добър ли е инструментът от PDF24 или Adobe?
Тази страница не дава отговор на този въпрос. Не сме обработвали същите файлове с други програми или онлайн услуги. Затова сравнителна оценка за качество, скорост или цена не би била подкрепена с доказателства. Класациите с проценти или плъзгачи също не заменят подобно сравнение. За справедливо сравнение са необходими един и същ пълен входен файл, едни и същи страници, записани настройки, точен брой байтове и едни и същи проверки на функциите за всички резултати.
Как да провериш своя PDF файл
- Запази непроменено копие на оригинала си.
- Отвори PDF компресора и избери файла. Ако детайлите на изображенията са важни, започни с режима без загуба на качество.
- Запиши точния размер в байтове на оригинала и резултата, например от свойствата на файловете, и изчисли намалението с калкулатора за степента на компресиране.
- Започвай всеки следващ опит отново с оригиналния файл, а не с вече компресиран резултат. Запазвай всеки резултат под ново име на файл, за да не презапишеш нищо.
- Отвори запазения файл в програмата, която използва и получателят. Провери всички страници, потърси позната дума, провери стойностите в полетата на формулярите и връзките и разгледай изображенията и дребния текст в оригинален размер.
- Ако PDF файлът ти е цифрово подписан, шифрован или сертифициран, не го компресирай с този инструмент, а уточни процедурата с издателя му.