|
Добавление картинок в openoffice (не ставится вторая картинка) | ☑ | ||
|---|---|---|---|---|
|
0
sprinter83
14.04.20
✎
10:51
|
Добрый день.
Из 1С вывожу договор через openoffice, В договор нужно добавить 2 картинки (1 - печать, 2 - подпись) в шаблоне договора есть текст "%Подпись%", "%Печать%", ищу эти надписи и заменяю их картинками Ниже привёл код вывода. Получается так что первая картинка "Подпись" выводится, а вторая нет Причём второй параметр %Печать%", по которому должна искаться и выводится следующая картинка также затирается, но картинки нет Может быть кто-то сталкивался с подобным поведением, не могу найти причину. Заранее благодарен Процедура ОткрытьOpenOffice(OpenOffice, имяВременногоФайла, ДанныеДляПечати) Параметры = ДанныеДляПечати.Параметры; КартинкаПечать = ДанныеДляПечати.КартинкаПечать; КартинкаПодпись = ДанныеДляПечати.КартинкаПодпись; Args = Новый COMSafeArray("VT_DISPATCH", 1); Param=OpenOffice.Bridge_GetStruct("com.sun.star.beans.PropertyValue"); Param.Name = "AsTemplate"; Param.Value = True; Args.SetValue(0,Param); Desktop = OpenOffice.CreateInstance("com.sun.star.frame.Desktop"); ПутьКФайлуURL = convertToURL(имяВременногоФайла); Document = Desktop.LoadComponentFromURL(ПутьКФайлуURL, "_blank", 0, Args); Если КартинкаПодпись <> Неопределено Тогда ДобавитьКартинкуОпенОфис(Document, КартинкаПодпись, "%Подпись%"); КонецЕсли; Если КартинкаПечать <> Неопределено Тогда ДобавитьКартинкуОпенОфис(Document, КартинкаПечать, "%Печать%"); КонецЕсли; КонецПроцедуры Процедура ДобавитьКартинкуОпенОфис(Document, РисунокПечати, ИмяЗакладки) #Если ВебКлиент Тогда ИмяВременногоФайла = КаталогВременныхФайлов() + Строка(Новый УникальныйИдентификатор) + ".tmp"; #Иначе ИмяВременногоФайла = ПолучитьИмяВременногоФайла("tmp"); #КонецЕсли ДвоичныеДанные = ПолучитьИзВременногоХранилища(РисунокПечати); ДвоичныеДанные.Записать(ИмяВременногоФайла); TextGraphicObject = Document.createInstance("com.sun.star.text.TextGraphicObject"); FileURL = ИмяФайлаВURL(ИмяВременногоФайла); TextGraphicObject.GraphicURL = FileURL; TextGraphicObject.SurroundContour = True; SearchDescriptor = Document.CreateSearchDescriptor(); SearchDescriptor.SearchString = ИмяЗакладки; SearchDescriptor.SearchCaseSensitive = False; SearchDescriptor.SearchWords = False; Found = Document.FindFirst(SearchDescriptor); While Found <> Undefined Do Found.GetText().InsertTextContent(Found.getText(), TextGraphicObject, True); Found = Document.FindNext(Found.End, SearchDescriptor); EndDo; КонецПроцедуры |
| Форум | Правила | Описание | Секции | Поиск |