Я предлагаю инструмент командной строки, который можно легко объединить с циклами на встроенных языках сценариев в Windows, Linux, OS X и т. Д.
ImageMagick поддерживает PDF-файлы и имеет resize
опцию с его инструментом преобразования . Я никогда не использовал это лично, но вы можете попробовать поиграть с этим.
Вы можете также использовать compress
опцию (есть пример здесь ):
Повернуть PDF
$ convert -rotate 270 -density 300x300 -compress lzw in.pdf out.pdf
Это предполагает PDF-файл с поддержкой TIFF. Параметр плотности важен, потому что в противном случае ImageMagick преобразует изображение вниз (по некоторым причинам). Добавление опции сжатия помогает уменьшить общий размер PDF-файла без потери качества.
Для многостраничных PDF-файлов, вы можете использовать pdftk
, а затем использовать mogrify
из ImageMagick для преобразования каждой страницы на месте:
$ pdftk in.pdf burst
$ mogrify -rotate 270 -density 300x300 -compress lzw pg_*.pdf
$ pdftk pg*.pdf cat output out.pdf
$ rm pg*.pdf
Чтобы конвертировать PDF файлы с помощью ImageMagick, вам нужно установить GhostScript .
ImageMagick может конвертировать многостраничные PDF-файлы. Хотя mogrify
будет конвертировать на месте, я рекомендую вам использовать, convert
чтобы вы могли сохранить оригиналы в случае аварии.
Я провел некоторое тестирование вашего предоставленного образца PDF. Это работало довольно хорошо для меня:
convert -density 200 -compress jpeg -quality 20 test.pdf test2.pdf
Плотность по умолчанию в 72
DPI. Установив его выше, мы можем получить более высокое разрешение и, следовательно, приемлемое качество. Он выглядел хорошо 150
, и был немного меньше, но если вы хотите обслуживать ряд PDF-файлов, 200
должно работать.
Сжатие JPEG должны либо автоматически выбрать уровень или значение по умолчанию для 92
на шкале , 1
чтобы 100
с 100
быть лучшими. Установив его 20
, он выглядит почти так же хорошо, как и оригинал (немного нечеткий, а небольшой текст внизу немного сложен для чтения, но все равно изначально он был).
Эти варианты принести 1.7Mb образец вниз к 0.5Mb , сохраняя при этом его читаемым. Вы можете немного поэкспериментировать.
Если вы хотите меньший размер (как файла, так и изображения / PDF), вы можете использовать -resize #%
, например -resize 75%
. Однако в вашем примере PDF это делает мелкий шрифт внизу практически нечитаемым.
Если вам все еще не хватает места, особенно для многостраничных PDF-файлов, вы можете сжать их еще больше, добавив файлы в ZIP (или другой) архив. Это уменьшило размер файла до 0,43 МБ в этом тестовом PDF (снижение качества сжатия JPEG имеет гораздо более радикальный эффект). Вы также можете разбить файл PDF на страницы с помощью pdftk
, как предложил @glallen в своем редактировании, или разбить архив и рекомбинировать на другом конце.
2MB - также довольно маленький лимит вложений, вы можете посмотреть на других почтовых провайдеров. Из памяти GMail предоставляет более 10 МБ на электронную почту.
Эти и другие опции полностью документированы на их сайте .
JPEG
? Какresize
получилось? У вас есть (не чувствительный) файл сэмпла, с которым мы могли бы поиграть? Допустим ли понижающий отбор?density
... Клянусь, я могу читать и следовать инструкциям! Немного смущен теперь: S Спасибо, что нашли время помочь мне БобТаким образом,
convert
ImageMagick будет производить растеризованный PDF, и многие люди будут заинтересованы в сохранении векторной графики и текста без изменений, чтобы сжимались только встроенные изображения. Так что хорошей альтернативой сжатию является использованиеgs
изghostscript
примера использования пакета :в приведенном выше параметре команды:
-dPDFSETTINGS=/ebook
важно. Может иметь 3 значения:источник