Зачем:
для генерации нового изображения печати из шаблона путем: вращения, изменения цвета, осветления/затемнения, смещения (задается пользователем) и с последующим выводом нового изображения в печатную форму при формировании.
Примеры использования:
пример №1
пример №2 (на 1с8 обычная форма)
пусть есть макет с объектом Картинка (чаще всего печатная форма документа с печатью организации, например, Счет)
добавим код формирования и вывода табличного документа и изображения печати из оригинала
Таб = Новый ТабличныйДокумент;
Макет = ПолучитьМакет("Макет");
СтрокаМ = Макет.ПолучитьОбласть("Строка");
фПрог = "c:GvTempsPicture.exe";
фШаблон = "c:GvTempp1.png";
WshShell=Новый COMОбъект("wscript.shell");
Для Н = 1 По 5 Цикл
фРез = "c:GvTemp
+ " + Н + ".png";
//КомандаСистемы(фПрог + "" + фШаблон + "" + фРез + " 1 1 1");
WshShell.Run(фПрог + "" + фШаблон + "" + фРез + " 1 1 1", 0, -1);
физФРез = Новый Файл(фРез);
Если Не физФРез.Существует() Тогда
Продолжить;
КонецЕсли;
СтрокаМ.Рисунки.МП.Картинка = Новый Картинка(фРез);
Таб.Вывести(СтрокаМ);
УдалитьФайлы(физФРез.Путь, физФРез.Имя);
КонецЦикла;
Таб.АвтоМасштаб = Истина;
Таб.Показать();
где изображение формируется Командой системы с параметрами, где
фПрог — полный путь к программе sPicture
фШаблон — полный путь к файлу шаблону (в качестве шаблона рекомендуется использовать .png изображение с прозрачным фоном и наличием пустого пространства от краев (необходимо для функции «Сдвигать») )
фРез — полный путь к файлу-результату обрабоки данных
1 1 1 — функции: Поворачивать, Менять цвет, Сдвигать, где 1 — использовать функцию, 0 — не использовать
В результате :
пример №3 (на 1с8 управляемая форма, или 1с77, или просто командная строка)
принцип реализации метода см пример №2, проблем возникнуть не должно.
Замечания и дополнения приветствуются.
А что это за программа? Интернет о ней не знает, а AVAST определяет как Win32:GenMaliciousA-MJH [Trj] и помещает в карантин
не знаю, на что ругается Аваст.
внутри архива пример печати .png и сама программка sPicture.exe
sPicture — это маленькое приложение, созданное мной на C#.net, на всех устройствах в сети и на машине, на которой программирую установлен Kaspersky — проблем не возникало.
Все получилось, запустил из под 1С. То, что надо. Спасибки. Возьму ее за основу проекта
Возникли первые вопросы.
1. Сколько пустого места надо места оставлять для сдвига . Или сколько оставишь, на столько и будет сдвигать?
2. Для подписи такие повороты слишком круты. Не планируется ли ограничение углов поворота?
(3) Hitcher, спасибо,
— учту ваши пожелания, изначально — да планировалось выставлять угол поворота, но решил, что для вращения печати лучше использовать 360, а подпись вращать не будут, а только сдвигать и менять цвет.
— пустое пространство будет использовано все (т.е. верно — сколько оставишь), т.к. система ищет точки «вылеза» изображения за пределы bitmap
— еще планируется пару моментов