Имеем:
Комплексная автоматизация, редакция 1.1 (1.1.90.1)
1С:Предприятие 8.3 (8.3.8.2322)

Есть табличный документ, он сохраняется в pdf программно, при помощи Записать().
Но размер конечного файла варьируется от 18Мб и выше. Дальше этот pdf нужно отправить по почте, опять же из интерфейса 1С, и как результат можно получить ошибку от почтового сервера (gmail) о превышении размера вложенного файла (25мб).

В табличном документе есть картинки, минимум две на страницу, суммарный размер картинок не превышает 5Мб.

Есть ли возможность сжать как-то pdf?
---
Думаю, что дело все же в картинках. Подозреваю, что при сохранении в pdf они перепаковываются из jpg в более ресурсоемкий формат.
Чтобы убедиться в этом - попробуй сохранить без картинок. И если таки да - пережимай картинки в более низкое качество.
---
по хорошему необходимо заставить pdf принтер при сохранении файла:
1. текст записывать текстом а не картинкой (проверяется в "акробате про" можно отредактировать текст)
2. в пдф записывать только используемые шрифты иначе в пдф записывается информация обо всех установленных шрифтах системы
сам раньше когда работал в газете юзал nova pdf (платный) , который как раз мог не меняя качества уменьшать размер pdf за счет того что не писал в него лишнюю инфу
***********************************
можно еще попробовать сохранить в ворд или xls и потом xls SaveAs в pdf из 1с
не мое нашел в просторах гугл ответов

```1c
    ДанныеМакета = Справочники.ДоговорыСКонтрагентами.МакетДоговора.Получить();
    ИмяФайла = "D:\file.docx";
    ИмяФайлаПДФ = "D:\file.pdf";
    ДанныеМакета.Записать(ИмяФайла);

    MSWord = Новый COMОбъект("Word.Application");
    MSWord.Visible = Ложь;
    MSWord.Documents.Open(ИмяФайла);
    Документ = MSWord.Application.Documents(1);
    Документ.Activate();
    ТекстМакета = Документ.Content.Text;
    //Получим массив параметров
    МассивПараметров = РазбитьСтроку(ТекстМакета, "[", "]");
    ТаблицаЗначенийПараметров = Новый ТаблицаЗначений;
    ТаблицаЗначенийПараметров.Колонки.Добавить("НазваниеПараметра");
    ТаблицаЗначенийПараметров.Колонки.Добавить("ПреобразованноеЗначение");
    Для Каждого ТекПараметр Из МассивПараметров Цикл
    Попытка
    СсылкаНаОбъект = Вычислить(ТекПараметр);
    СтрПреобразование = ТаблицаЗначенийПараметров.Добавить();
    СтрПреобразование.НазваниеПараметра = ТекПараметр;
    СтрПреобразование.ПреобразованноеЗначение = СсылкаНаОбъект;
    Исключение
    Сообщить("Невозможно интерпретировать параметр ["+ ТекПараметр+ "]");
    КонецПопытки;
    КонецЦикла;
    //Заменим названия параметров на значения
    Замена = Документ.Content.Find;
    Для Каждого ТекСтрока Из ТаблицаЗначенийПараметров Цикл
    Попытка
    Замена.Execute("["+ ТекСтрока.НазваниеПараметра +"]", , , , , , , , , ТекСтрока.ПреобразованноеЗначение, 2);
    Исключение
    Сообщить("Невозможно преобразовать параметр ["+ ТекСтрока.НазваниеПараметра +"]");
    КонецПопытки;
    КонецЦикла;

    //Сохраним в word
    Документ.Save();
    //Сохраним в pdf
    Документ.SaveAs(ИмяФайлаПДФ, 17);

    MSWord.Application.Quit();
```
---
Я уже думал на счет промежуточного сохранения, когда встала проблема с первой страницей, но это как то очень нагружено получается.
---
Можно в zip заррхивировать, а полученный архив отправить. Подробнее здесь: https://its.1c.ru/db/metod8dev/content/2323/hdoc
---
В виду нынешних атак, на многих серверах запрет архивов. А админы запрещают открывать такие вложения.
---
В табличном документе есть картинки, минимум две на страницу, суммарный размер картинок не превышает 5Мб
5мб для картинок очень много
платформенный способ записать в pdf всегда увеличивает файл записывает туда кучу не нужной информации

попробуйте через com-объект
Acrobat = Новый COMОбъект("AcroPDF.PDF.1");
---
ЕМНИП, для использования этого объекта нужен установленный Acrobat и не Reader.
---
ЕМНИП, для использования этого объекта нужен установленный Acrobat и не Reader. Этточно: http://compconfig.ru/tips/sjatie-pdf.html

Лично я бы для попробовал установить какой-нибудь виртуальный PDF-принтер, сформировал файл через него и посмотрел - есть ли выигрыш в размере?

Если есть, то думал бы, как организовать такую печать (по факту - сохранение) программно.

А если выигрыша нету, то и дергаться нечего.

Ну, для очистки совести погонял бы готовый PDF через пару-тройку онлайн-сервисов по сжатию и посмотрел бы на результат.
---
Попробовал Bullzip (7)
---
Думаю, что дело все же в картинках. Подозреваю, что при сохранении в pdf они перепаковываются из jpg в более ресурсоемкий формат.
Чтобы убедиться в этом - попробуй сохранить без картинок. И если таки да - пережимай картинки в более низкое качество.
---
Картинки в png, по большей части (нужна прозрачность).
Попробовал использовать Bullzip (anig99), который пришлось установить для правильной работы ПроверитьВывод(), размер 4Мб, но качество очень плохое. Дык еще и платная если хотим снять галку "Сжимать изображения".
---
Спасибо, подтолкнул на мысль.
В документе 5 страниц, на 4 страницах по картинке в колонтитулах. Изначально png, и весили 11Кб. Сохранил в jpg, вес уменьшился, а результат не изменился.
На первой странице картинка во весь рост, весила 1Мб в jpg, ужал, результат нулевой.
На двух страницах по две картинки png (обязательно с прозрачностью) - 11Кб и по две jpg (каждый раз разные).
Начал просто удалять картинки с выведенного документа и пришел к выводу, что проблема в тех двух жипегах, которые всегда разные. Сжал их и теперь у меня документ весит не 28Мб, а 2,25Мб.

Вернул всё сжатое назад и теперь вес документа 3.3Мб.

И еще плюс, теперь выводится на экран быстрее.
---
А не поделитесь советом или кодом, как сжали и в какой формат?
Тоже ведем войну с платформой 1С, сохраняем всего одно фото размером 600кб, получаем PDF размером 5.5мб
---
Получилось решить? Сейчас озадачен этой же проблемой....
---
Подскажите пожалуйста, удалось ли решить вопрос программно?
---
(14)
(13)
 Нет, видно не совсем понятно выразился выше - я сжал картинки средствами ОС (Microsoft Office Picture Manager) перед тем как их запихать ТабличныйДокумент.