0
МешочекЗнаний
16.11.16
✎
11:00
|
День добрый.
Создал обработку по заполнению шаблона Writer, он открывается с заменёнными строками в шаблоне. Пользователь нажимает Файл-Печать и всё норм.
Можно как-то отправить заполненный шаблон на печать сразу без открытия?
<code>
ТЗ = Новый ТаблицаЗначений;
ТЗ.Колонки.Добавить("Параметр");
ТЗ.Колонки.Добавить("Значение");
Стр = ТЗ.Добавить();
Стр.Параметр = "<ФИОЗаказчика>";
Стр.Значение = "ФИО";
ТемпИмя = ПолучитьИмяВременногоФайла("odt");
ОбъектВЗначение = РеквизитФормыВЗначение("Объект");
Макет = ОбъектВЗначение.ПолучитьМакет("МакетСогласие");
Если Макет=Неопределено тогда
Сообщить("Нет шаблона");
Возврат (Неопределено);
КонецЕсли;
Макет.Записать(ТемпИмя);
// Открываем OpenOffic
ТемпИмяЮрл="file:///" + СтрЗаменить(ТемпИмя, "\", "/");
//Создаем объекты
Попытка
ServiceManager = Новый COMОбъект("com.sun.star.ServiceManager");
Desktop = ServiceManager.createInstance("com.sun.star.frame.Desktop");
Исключение
Инф=ИнформацияОбОшибке();
Возврат(неопределено)
КонецПопытки;
Args = Новый COMSafeArray("VT_DISPATCH", 1);
//Начало. Добавляем эти строки, если хотим открыть как темплейт (каждое открытие, создается новый файлик с именами
//"БезИмени1, БезИмени2...)
Param=ServiceManager.Bridge_GetStruct("com.sun.star.beans.PropertyValue");
Param.Name = "AsTemplate";
Param.Value = True;
Args.SetValue(0,Param);
//Все готово, открываем док
ООДок = Desktop.LoadComponentFromURL(ТемпИмяЮрл, "_blank", 0, Args);
Replace = ООДок.CreateReplaceDescriptor();
Для Каждого Строка Из ТЗ Цикл
Replace.SearchString = Строка.Параметр;
Replace.ReplaceString = Строка.Значение;
ООДок.ReplaceAll(Replace);
КонецЦикла;
</code>
|
|