|
Поиск в open office без открытия его | ☑ | ||
---|---|---|---|---|
0
Meskon
18.03.14
✎
16:20
|
Добрый день. Столкнулся с проблемой. Нужно найти текст в опен офисе. Делаю так:
Приложение = Новый COMОбъект("com.sun.star.ServiceManager"); Desktop = Приложение.createInstance("com.sun.star.frame.Desktop"); Scr = Новый COMОбъект("MSScriptControl.ScriptControl"); Scr.Language="javascript"; Scr.Eval("Args=new Array()"); Args = Scr.Eval("Args"); Scr.AddObject("ServiceManager", Приложение); URL = СтрЗаменить(ИмяФайлаШаблона," ","%20"); URL = СтрЗаменить(URL,"\","/"); URL ="file://localhost/" + URL; Документ = Desktop.LoadComponentFromURL(URL, "_blank", 0, Args); Поиск = Документ.createSearchDescriptor(); Поиск.searchString="Вася"; oFound = Документ.findFirst(Поиск); На строчке Документ = Desktop.LoadComponentFromURL(URL, "_blank", 0, Args); открывается документ. Можно как то поискать не показывая при этом документ? |
|||
1
fvadim
18.03.14
✎
16:29
|
попробуй в args запихать MakePropertyValue("Hidden", Истина)
|
|||
2
Meskon
18.03.14
✎
17:37
|
Туплю. Как это сделать?
|
|||
3
fvadim
18.03.14
✎
17:54
|
наврал, не глядя скопировал
как-то так Args = Scr.Eval("Args"); scr.AddObject("OpenOffice", ServiceManager); scr.eval("args[0]=OpenOffice.Bridge_GetStruct('com.sun.star.beans.PropertyValue')"); scr.eval("args[0].Name='Hidden'"); scr.eval("args[0].Value=true"); v8: OpenOffice + 1C |
|||
4
Meskon
18.03.14
✎
20:50
|
Сделал так:
Desktop = Приложение.createInstance("com.sun.star.frame.Desktop"); Scr = Новый COMОбъект("MSScriptControl.ScriptControl"); Scr.Language="javascript"; Scr.Eval("Args=new Array()"); Args = Scr.Eval("Args"); scr.AddObject("OpenOffice", Приложение); scr.eval("args[0]=OpenOffice.Bridge_GetStruct('com.sun.star.beans.PropertyValue')"); scr.eval("args[0].Name='Hidden'"); scr.eval("args[0].Value=true"); URL = СтрЗаменить(ИмяФайлаШаблона," ","%20"); URL = СтрЗаменить(URL,"\","/"); URL ="file://localhost/" + URL; Документ = Desktop.LoadComponentFromURL(URL, "_blank", 0, Args); Поиск = Документ.createSearchDescriptor(); Вылазит ошибка на строке scr.eval("args[0]=OpenOffice.Bridge_GetStruct('com.sun.star.beans.PropertyValue')"); Произошла исключительная ситуация (Ошибка выполнения Microsoft JScript): 'args' - определение отсутствует В чем может быть проблема? |
|||
5
mikeA
18.03.14
✎
21:41
|
||||
6
Meskon
19.03.14
✎
09:39
|
Спасибо, помогло. Вот конечный вариант:
Desktop = Приложение.createInstance("com.sun.star.frame.Desktop"); propHidden= Приложение.Bridge_GetStruct("com.sun.star.beans.PropertyValue"); // Устанавливаем параметр скрытый режим propHidden.Name="Hidden"; propHidden.Value=True; // Добавляем эту структуру в массив Массив= Новый Массив; Массив.Добавить(propHidden); // Инициализируем этим массивом безопасный массив для COM Attributes= Новый COMSafeArray(Массив, "VT_VARIANT", 1); URL = СтрЗаменить(ИмяФайлаШаблона," ","%20"); URL = СтрЗаменить(URL,"\","/"); URL ="file://localhost/" + URL; // Открываем файл не открывая окна приложения Документ = Desktop.LoadComponentFromURL(URL, "_blank", 0, Attributes); Поиск = Документ.createSearchDescriptor(); Поиск.searchString="Вася"; oFound = Документ.findFirst(Поиск); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |