|
Формирование ворд документа через оpenoffice |
☑ |
0
azeml
14.01.16
✎
12:22
|
Здравствуйте! Есть такая проблема, есть много документов, которые формируются через Word (Word.Application), но сейчас это все надо перевести на openoffice .Есть, что-то подобное (Word.Application).А конкретнее мне нужно открыть документ и подставить значение (Find.Execute) и сохранить его.На Excel есть , а на Word не могу.Заранее благодарен
|
|
1
Тюря
14.01.16
✎
12:29
|
openoffice может открыть вордовский 97-2003 документ без проблем
|
|
2
Тюря
14.01.16
✎
12:33
|
и .docx без проблем
или что-то я не понял в чем проблема.
|
|
3
Тюря
14.01.16
✎
12:35
|
Пример вывода в документ данных в openoffice
Replace.SearchString ="{Договор}";
Replace.ReplaceString = СокрЛП(Договор.НомерДоговора);
ТекстовыйПроцессор.ReplaceAll(Replace);
|
|
4
azeml
14.01.16
✎
12:37
|
(1) У меня есть документ в формате docx.
Надо открыть этот файл и сделать замену в нем.
Замена.Execute("Contoso", Ложь, Истина, Ложь, , , Истина, , Ложь, НаименованиеКонтрагента,2);
|
|
5
azeml
14.01.16
✎
12:41
|
Попытка
ОбъектОО = Новый COMОбъект("com.sun.star.ServiceManager");
Исключение
Предупреждение("Невозможно загрузить OpenOffice.org !!!" + Символы.ПС + ОписаниеОшибки(), 10, "Ошибка");
Возврат;
КонецПопытки;
ИмяФайла = КаталогВременныхФайлов()+"Документы.docx";
Макет = ПолучитьМакет("Макет");
Макет.Записать(ИмяФайла);
Кальше нужно открыть его для изменений в 1с. Как это сделать?
|
|
6
azeml
14.01.16
✎
12:52
|
(3) спасибо разобрался.
|
|
7
azeml
14.01.16
✎
12:53
|
Если кому-то нужно вот код как поиск и замену сделать из openoffice
ServiceManager = Новый COMОбъект("com.sun.star.ServiceManager");
Desktop = ServiceManager.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", ServiceManager);
Попытка
FileNameSh = СокрЛП(ПутьКФайлу);
URL = СтрЗаменить(FileNameSh," ","%20");
URL = СтрЗаменить(URL,"\","/");
URL ="file://localhost/" + URL;
OpenOffice = Desktop.LoadComponentFromURL(URL, "_blank", 0, Args);
Исключение
Сообщить("Ошибка при попытке создать объект ", СтатусСообщения.Внимание);
Возврат;
КонецПопытки;
Replace =OpenOffice.CreateReplaceDescriptor();
Replace.SearchString = "[заказ]";
Replace.ReplaceString = Заказ;
OpenOffice.ReplaceAll(Replace);
|
|
8
Фрэнки
14.01.16
✎
12:58
|
(7) Интересный код. Спасибо.
|
|