Я предлагаю инструмент командной строки, который можно легко объединить с циклами на встроенных языках сценариев в 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 МБ на электронную почту.
Эти и другие опции полностью документированы на их сайте.