Проблема: есть документ в нем табличный документ, установлен только OpenOffice. При этом цель сохранить документ в doc формате. Возникло две проблемы первая, при построчном чтении текст переносится без форматирования(можно ли как-то альтернативно сделать перенос текста), и вторая не происходит сохранения вылетает при установке фильтра для сохранения в формате MS Word. Может кто подскажет как решить:
альтернатинвый способ наложения фильтра для формата тоже не работает:
scr=Новый COMОбъект("MSScriptControl.ScriptControl");
scr.language="javascript";
scr.eval("Massiv=new Array()");
Massiv=scr.eval("Massiv"); //создали массив на ява
ServiceManager=Новый COMОбъект("com.sun.star.ServiceManager");
Scr.AddObject("ServiceManager",ServiceManager);
Desktop=ServiceManager.createInstance("com.sun.star.frame.Desktop"); //сом объект
Попытка
Document=Desktop.LoadComponentFromURL("private:factory/swriter","_blank",0, Massiv ); //новый документ
Исключение
Сообщить("Ошибка создания нового документа");
КонецПопытки;
Для НомерСтроки = 1 По ПечатнаяФорма.ВысотаТаблицы Цикл
//установка позиции в конец документа
Xrange = Document.getText().getEnd();
// вставка строки
Document.getText().insertString(Xrange, ПечатнаяФорма.ПолучитьОбласть(НомерСтроки, 1, НомерСтроки, ПечатнаяФорма.ШиринаТаблицы).ТекущаяОбласть.Текст, false);
КонецЦикла;
ИмяФайлаСообщения = Путь + ИмяФайла +"."+ТипФайла;
Попытка
SaveParam = scr.Eval("ServiceManager.Bridge_GetStruct('com.sun.star.beans.PropertyValue')");
SaveParam.Name = "FilterName";
SaveParam.Value = "Ms Word 97";
scr.CodeObject.SetItem(0, SaveParam);
Document.storeToURL(ПреобразоватьВURL(ИмяФайлаСообщения), Massiv);
Document.dispose();
Сообщить("Файл " + ИмяФайлаСообщения + " успешно сохранен");
Исключение
Сообщить("Ошибка сохранения документа");
Сообщить(ОписаниеОшибки());
КонецПопытки;
Показатьальтернатинвый способ наложения фильтра для формата тоже не работает:
scr.eval("Massiv[0]=ServiceManager.Bridge_GetStruct('com.sun.star.beans.PropertyValue')");
scr.eval("Massiv[0].Name='FilterName'");
scr.eval("Massiv[0].Value='Ms Word 97'");
Document.storeToURL(ПреобразоватьВURL(ИмяФайлаСообщения), Massiv);
По теме из базы знаний
- Выгрузка в OpenOffice Calc. Платформа 7.7. Формирование прайса и формы заказа
- 1С 8: Работаем с файлами MS Excel, используя OpenOffice/LibreOffice
- Перенос остатков в базу данных, чтение документа MS Excel с установкой com соединения с Open Office, если он установлен у Вас вместо MS Office
- Пример работы с файлами odt в клиент-серверной модели работы
- Загрузка данных из Excel через COM Microsoft Excel, Open Office или Libre Office (управляемые формы)
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
При использовании второго метода наложения фильтра вылетает ошибка:
Ошибка при вызове метода контекста (storeToURL): Произошла исключительная ситуация ([automation bridge] ): com.sun.star.task.ErrorCodeIOException:
Ошибка при вызове метода контекста (storeToURL): Произошла исключительная ситуация ([automation bridge] ): com.sun.star.task.ErrorCodeIOException:
scr.eval("Massiv[0]=ServiceManager.Bridge_GetStruct('com.sun.star.beans.PropertyValue')");
scr.eval("Massiv[0].Name='FilterName'");
scr.eval("Massiv[0].Value='Ms Word 97'");
Document.storeToURL(ПреобразоватьВURL(ИмяФайлаСообщения), Massiv);
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот