Версия для печати темы (https://pro1c.org.ua/index.php?s=171ed57874e9d371a471543ef44f676b&showtopic=67639)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 7.7 _ Как сохранить печатную форму в формат jpg?

Автор: kostya77 23.09.24, 14:28

Добрый день Подскажите, как сохранить печатную форму в формат jpg.

Автор: Pepe 23.09.24, 15:18

kostya77 @ Сегодня, 15:28 * ,
Pdf не підходить?

Автор: denis84 23.09.24, 15:25

kostya77 @ Сегодня, 15:28 * ,
це можна зробити з допомогою компонент SpreadSheet.dll та Formex.dll. Колись давно таке робив.

Автор: kostya77 23.09.24, 15:33

denis84 @ Сегодня, 16:25 * ,
можна приклад?

Автор: volodya1122 23.09.24, 15:58

kostya77 @ Сегодня, 16:33 * ,


Ось так в мене формується в ПДФ. (в малюнок не пробував. В описі компоненти Йоксель(SpreadSheet.dll) є можливість зберегти як малюнок)

ЗагрузитьВнешнююКомпоненту ("SpreadSheet.dll");
....
Таб.ВывестиСекцию("......");  // виводим всі секції як звичайно

ТабЭлемент=СоздатьОбъект("ТабличныйДокумент");
ТабЭлемент.ЗагрузитьИзТаблицы(Таб);

Имя="Док"+Строка(НомерДок)+"_"+Формат(ДатаДок,"ДДДММГГ")
        Имя=СтрЗаменить(Имя,".","-");
        Имя=СтрЗаменить(Имя,"/","-");
        Имя=СтрЗаменить(Имя,"\","-");
        Имя=СтрЗаменить(Имя," ","");
        Имя=СтрЗаменить(Имя,"    ","");
        Каталог="D:\SendMail\";
        ИмяФайла=Каталог+Имя+".PDF";
        Если ФС.СуществуетФайл(ИмяФайла)=1 Тогда
            Ответ=Вопрос("Файл существует!
            |Переписать?","Да+Нет");
            Если Ответ="Нет" Тогда
                Возврат;
            КонецЕсли;
        КонецЕсли;        
        Конвертер = СоздатьОбъект ("Йоксель.ГрафическийКонвертер.PDF");
        Конвертер.ВысотаСтраницы = 16840;   //А4
        Конвертер.ШиринаСтраницы = 11907;   //А4
        Конвертер.КоличествоБитНаПиксел = 24;
        Конвертер.Документ = ТабЭлемент;
        Конвертер.ПолеСлева = 600;
        Конвертер.ПолеСверху = 600;
        Конвертер.ПолеСправа = 600;
        Конвертер.ПолеСнизу = 600;
        Данные = Конвертер.СтандартныеМетаданные;
        
        Конвертер.ЗаписатьВФайл (ИмяФайла);

Автор: kostya77 23.09.24, 18:44

volodya1122 @ Сегодня, 16:58 * ,
pdf в мене теж формує. Потрібен jpg

Автор: denis84 24.09.24, 7:09

kostya77 @ Вчера, 19:44 * ,

щось таке в мене є

Функция ВыбратьПуть(ФорматФайла)
    Если ФС.ВыбратьФайл(1, ИмяФайла, Каталог, "Выберите папку для сохранения отчета.", "(*."+ФорматФайла+")| *."+ФорматФайла+"", ""+ФорматФайла+"" ) = 0 Тогда
        Возврат "";
    КонецЕсли;
    Каталог_Плюс_ИмяФайла = ""+Каталог + ИмяФайла+"";
    ИмяФайла = СтрЗаменить(ВРЕГ(ИмяФайла), "."+ВРЕГ(ФорматФайла), "");
    Возврат(Каталог_Плюс_ИмяФайла);
КонецФункции

Процедура ЗагрузитьДЛЛ()
            
    Попытка
        КонвертерPDF = СоздатьОбъект ("Йоксель.ГрафическийКонвертер.PDF");
    Исключение
        Если ЗагрузитьВнешнююКомпоненту ("SpreadSheet.dll") = 0 Тогда
            Предупреждение ("Не удалось загрузить компоненту SpreadSheet.dll");
            Форма.Закрыть(0);
        КонецЕсли;
        Попытка
            КонвертерPDF = СоздатьОбъект ("Йоксель.ГрафическийКонвертер.PDF");
        Исключение
            Сообщить("Ошибка Йоксель!");
            Сообщить(ОписаниеОшибки());
            Форма.Закрыть();
        КонецПопытки;
        
    КонецПопытки;
    
    
    Попытка
        МойФормекс = СоздатьОбъект("Сервис");        
    Исключение
        Если ЗагрузитьВнешнююКомпоненту ("Formex.dll") = 0 Тогда
            Предупреждение ("Не удалось загрузить компоненту Formex.dll");
            Форма.Закрыть(0);
        КонецЕсли;
        Попытка
            МойФормекс = СоздатьОбъект("Сервис");        
        Исключение
            Сообщить("Ошибка Формекс!");
            Сообщить("Ошибка: " + ОписаниеОшибки());
            Форма.Закрыть(0);
        КонецПопытки;
    КонецПопытки;


КонецПроцедуры

Процедура Сохранить_Как_Изображение()

    ЗагрузитьДЛЛ();

    ФорматыИзображений = СоздатьОбъект("СписокЗначений");
    ФорматыИзображений.ДобавитьЗначение("JPG", "Формат JPG");
    ФорматыИзображений.ДобавитьЗначение("BMP", "Формат BMP");
    ФорматыИзображений.ДобавитьЗначение("PNG", "Формат PNG");
    
    ФорматИзображения = 0;    
    Если МойФормекс.ВыбратьЗначение(ФорматыИзображений, ФорматИзображения, , 2) = 0 Тогда
        Возврат;
    КонецЕсли;
    
    ПутьКФайлу = ВыбратьПуть(ФорматИзображения);    
    Если ПустоеЗначение(ПутьКФайлу) = 1 Тогда
        Возврат;
    КонецЕсли;
    
    Если ПустоеЗначение(Таб) = 1 Тогда
        Возврат;
    КонецЕсли;
    
    Попытка        
        ТабДок = СоздатьОбъект("ТабличныйДокумент");
        ТабДок.ЗагрузитьИзТаблицы(Таб);
        ТабДок.ЗаписатьКакИзображение(ПутьКФайлу, ФорматИзображения);
        
        //** качество вроде тоже, а размер файла больше....
        //Конвертер = СоздатьОбъект ("Йоксель.ГрафическийКонвертер");
        //Конвертер.УстановитьДокумент (ТабДок);
        //Конвертер.КоличествоБитНаПиксел = 24;
        //
        //Картинка = Конвертер.ПолучитьИзображение ();        
        //Картинка.Записать (ПутьКФайлу, 1);

        
        Сообщить("Печатная форма сохранена: " + ПутьКФайлу );
        
        Если Вопрос("Открыть сохраненный документ?", "Да+Нет") = "Нет" Тогда
            Возврат;
        КонецЕсли;
        
        Попытка                    
            ЗапуститьПриложение(ПутьКФайлу);            
        Исключение
            Сообщить("Не удалось открыть файл: " + ПутьКФайлу);
        КонецПопытки;                
    Исключение
        Сообщить("Не удалось сохранить в "+ФорматИзображения+" файл.");
        Сообщить("Ошибка: " + ОписаниеОшибки());
    КонецПопытки;
    
КонецПроцедуры

Автор: kostya77 24.09.24, 7:31

denis84 @ Сегодня, 8:09 * ,
Спасибо. Буду пробовать

Автор: denis84 24.09.24, 8:01

kostya77 @ Сегодня, 8:31 * ,
це в мене було в обробці, то "форматизображения" визивався на кнопці

Автор: kostya77 24.09.24, 11:03

denis84 @ Сегодня, 9:01 * ,
Змінна Таб - в якому форматі? pdf?

Автор: denis84 24.09.24, 12:20

kostya77 @ Сегодня, 12:03 * ,
Таб - це таблиця (печатна форма0

Автор: kostya77 24.09.24, 12:50

denis84 @ Сегодня, 13:20 * ,
ок. дякую

kostya77 @ Сегодня, 13:29 * ,
Де можна скачати Formex.dll?

Автор: denis84 24.09.24, 15:23

kostya77 @ Сегодня, 13:50 * ,
по гуглить можливо на наших українських сайтах є.

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua