Сильне стиснення
Звичайне стиснення лишається в браузері. Ця сторінка завантажує PDF і зменшує фото приблизно до 150 DPI. Текст лишається текстом.
Цей файл буде завантажено і видалено через 30 хвилин.
Сильному стисненню потрібен денний пропуск за $6 або рік за $60. Безкоштовний файл — це PDF у Word, не ця сторінка.
Що залишає це зменшення
Сильне стиснення запускає Ghostscript на сервері. Argv такий: gs, -sDEVICE=pdfwrite, -dCompatibilityLevel=1.4, -dPDFSETTINGS=/ebook, -dCompressPages=false, -dNOPAUSE, -dQUIET і -dBATCH. Ніщо із запиту не підставляється в цей argv. Пресет /ebook усереднює кольорові зображення до 150 DPI і сірі зображення до 150 DPI. Перерахунок починається вище за 1.5 цілі, тож кольорове або сіре фото вище за 225 DPI перераховується. Монозображення використовують Subsample до 300 DPI. Колір і сіре кодуються через DCTEncode, це JPEG. Моно використовує CCITT. Пресет ставить ColorConversionStrategy у sRGB. -dCompressPages=false стоїть після пресета, тому потоки сторінок не стискаються flate, а текст, який можна виділити, лишається таким. PDF із самого тексту може зрости. Файл, який пише ця команда, починається з %PDF-1.4. Ім'я завантаження завжди compressed.pdf. Початковий файл на комп'ютері не замінюється. Стиснути PDF лишається в браузері і не викликає gs.
PDF і compressed.pdf потрапляють у MongoDB GridFS, bucket uploads, з інструментом heavy-compress. Джерело використовує role source і зберігає початкове ім'я, або upload.pdf, якщо вивантаження без імені. Результат використовує role result і ім'я compressed.pdf, з типом application/pdf. Ghostscript пише input.pdf і output.pdf у тимчасовий каталог. Цей каталог прибирається, коли робота закінчується або падає, зокрема якщо немає gs. Утримання видаляє об'єкти GridFS, час вивантаження яких не молодший за RETENTION_MINUTES. Відсутні, нульові або недодатні значення дають 30. Рядок deletions зберігає id файла, ім'я, інструмент, role, час вивантаження і час видалення, не байти. Рядок jobs лишається. Він записує kind heavy-compress, tier pass, число сторінок, пошту оплати, id джерела, id результату. У цього рядка jobs немає поля status.
На цій сторінці немає безкоштовного файла. Пошта й активна покупка потрібні до запуску Ghostscript. Стеля — 20 сторінок навіть за активного пропуску, і стелю перевіряють до старту gs. Денний пропуск коштує $6, списується один раз, триває 24 години і не поновлюється. Рік коштує $60 і триває 365 днів. Пошта має збігтися з покупкою, у якої status дорівнює active, від початку і до миті перед кінцем. Безкоштовний серверний файл — PDF у Word, один файл, до 20 сторінок, на власній сторінці. Ghostscript отримує SIGKILL через 60 секунд. Ця форма бере один файл. Пропуск не додає пакета.
Порожня форма завершується фразою "Choose a PDF." Байти без %PDF- у перших 1024 символах завершуються фразою "Choose a PDF." Файл, число сторінок якого не читається, завершується фразою "Choose a PDF." Немає сторінок — фраза "This PDF has no pages." Більше ніж 20 сторінок — фраза "This tool compresses up to 20 pages." Немає пропуску або він неактивний — фраза "Heavy compress needs a $6 day pass or the $60 year. The free file is PDF to Word, not this page." Якщо немає gs, спрацьовує таймер 60 секунд, gs завершується ненульовим кодом, або вивід порожній чи без %PDF-, сторінка каже "Heavy compress is not available on this server." Це англійська константа кожною мовою. Відсутня база відхиляє вивантаження до класифікації байтів. Інструменти браузера на інших сторінках цієї бази не використовують.
Запитання
Чи кожне фото стає меншим?
Ні. Кольорові та сірі зображення вище за 225 DPI усереднюються до 150 DPI. Картинка вже нижче порога може пройти як є, бо PassThroughJPEGImages лишається увімкненим у спільних налаштуваннях Ghostscript. Монозображення проріджуються до 300 DPI. Текст, який можна виділити, не растеризується. Нестиснені потоки сторінок означають, що PDF із самого тексту може зрости. Короткий рядок над формою каже, що фото йдуть приблизно до 150 DPI і що текст лишається текстом.
Чи перше вивантаження безкоштовне?
Ні. Ця сторінка ніколи не є безкоштовним серверним файлом. Безкоштовний файл — одне перетворення PDF у Word, до 20 сторінок, коли в цього PDF є текст, який можна виділити. Форма просить пошту оплати активного пропуску до запуску gs. Відвідувач бачить "Heavy compress needs a $6 day pass or the $60 year. The free file is PDF to Word, not this page."
Що лишається після видалення?
GridFS прибирає PDF і compressed.pdf за годинником утримання, 30 хвилин, якщо RETENTION_MINUTES не є додатним числом. Рядок deletions тримає id і час, не байти. Рядок jobs тримає число сторінок, уведену пошту, id файлів і мережевий хеш. Тимчасовий каталог уже зник. Утримання не видаляє рядок jobs.
Що змінює пропуск тут?
Активний пропуск потрібен до першого файла. Денний пропуск коштує $6, списується один раз, триває 24 години і не поновлюється. Рік коштує $60 на 365 днів. Скасування зупиняє наступне річне списання. Уже оплачений рік працює до дати кінця і не повертається. Стеля в 20 сторінок лишається для обох. Пропуск не змінює колірну ціль 150 DPI, моноціль 300 DPI і форму одного файла.