gifts2017

Документ с печатью: генерация печати

Опубликовал UMix У (Umix) в раздел Печать - Универсальные печатные формы

Создание измененного изображения печати для печатной формы табличного документа.

Зачем:

для генерации нового изображения печати из шаблона путем: вращения, изменения цвета, осветления/затемнения, смещения (задается пользователем) и  с последующим выводом нового изображения в печатную форму при формировании.

 

 

Примеры использования:

пример №1

 

пример №2 (на 1с8 обычная форма)

 

пусть есть макет с объектом Картинка (чаще всего печатная форма документа с печатью организации, например, Счет)

добавим код формирования и вывода табличного документа и изображения печати из оригинала

 

Таб = Новый ТабличныйДокумент;
    Макет = ПолучитьМакет("Макет");
    
    СтрокаМ = Макет.ПолучитьОбласть("Строка");
    
    фПрог = "c:\GvTemp\sPicture.exe";
    фШаблон = "c:\GvTemp\p1.png";
    WshShell=Новый COMОбъект("wscript.shell");

    Для Н = 1 По  5 Цикл 
        фРез = "c:\GvTemp\r + " + Н + ".png";
        
        //КомандаСистемы(фПрог + "" + фШаблон + "" + фРез + " 1 1 1"); 
        WshShell.Run(фПрог + "" + фШаблон + "" + фРез + " 1 1 1", 0, -1);

        физФРез = Новый Файл(фРез);        
        Если Не физФРез.Существует() Тогда 
            Продолжить;
        КонецЕсли;
        
        СтрокаМ.Рисунки.МП.Картинка = Новый Картинка(фРез);
        Таб.Вывести(СтрокаМ);
        
        УдалитьФайлы(физФРез.Путь, физФРез.Имя);
    КонецЦикла;    
    
    Таб.АвтоМасштаб = Истина;
    Таб.Показать();
 

 где изображение формируется Командой системы с параметрами, где

фПрог - полный путь к программе sPicture

фШаблон - полный путь к файлу шаблону (в качестве шаблона рекомендуется использовать .png изображение с прозрачным фоном и наличием пустого пространства от краев (необходимо для функции "Сдвигать") )

фРез - полный путь к файлу-результату обрабоки данных

1 1 1 - функции: Поворачивать, Менять цвет, Сдвигать, где 1 - использовать функцию, 0 - не использовать

 

 В результате :

 

 

пример №3 (на 1с8 управляемая форма, или 1с77, или просто командная строка)


принцип реализации метода см пример №2, проблем возникнуть не должно.


 

Замечания и дополнения приветствуются.

Скачать файлы

Наименование Файл Версия Размер
sPicture.zip 6
.zip 518,60Kb
13.04.15
6
.zip 518,60Kb Скачать

См. также

Подписаться Добавить вознаграждение
Комментарии
1. Игорь Дремов (Hitcher) 25.04.15 21:47
А что это за программа? Интернет о ней не знает, а AVAST определяет как Win32:GenMaliciousA-MJH [Trj] и помещает в карантин
2. UMix У (Umix) 26.04.15 20:23
не знаю, на что ругается Аваст.
внутри архива пример печати .png и сама программка sPicture.exe

sPicture - это маленькое приложение, созданное мной на C#.net, на всех устройствах в сети и на машине, на которой программирую установлен Kaspersky - проблем не возникало.
3. Игорь Дремов (Hitcher) 27.04.15 22:40
Все получилось, запустил из под 1С. То, что надо. Спасибки. Возьму ее за основу проекта
Возникли первые вопросы.
1. Сколько пустого места надо места оставлять для сдвига . Или сколько оставишь, на столько и будет сдвигать?
2. Для подписи такие повороты слишком круты. Не планируется ли ограничение углов поворота?
4. UMix У (Umix) 28.04.15 08:32
(3) Hitcher, спасибо,
- учту ваши пожелания, изначально - да планировалось выставлять угол поворота, но решил, что для вращения печати лучше использовать 360, а подпись вращать не будут, а только сдвигать и менять цвет.
- пустое пространство будет использовано все (т.е. верно - сколько оставишь), т.к. система ищет точки "вылеза" изображения за пределы bitmap
- еще планируется пару моментов