|
Можно ли как-то встроить LibreOffice на управляемую форму в поле HTML-документа? | ☑ | ||
---|---|---|---|---|
0
_stay true_
04.08.16
✎
09:21
|
День добрый!
Задача: вывести в тонком клиенте на управляемую форму таблицу EXCEL для отображения. Перечитал кучу статей, тем и мануалов, по Мелкомягкому экселю нашел решение: в поле html-документа на форме выводим код: "<HTML><OBJECT id = ExcelLook classid=CLSID:00024500-0000-0000-C000-000000000046 width=""100%"" height=""100%"">" А после, в процедурке "подгрузки" на клиенте файла делаем следующее: ЭлементВнКомп = Элементы.Эксель.Документ.getElementById("ExcelLook"); ЭлементВнКомп.Src = ПутьКФайлу; Вопрос: может, кто проделывал что-то подобное с LibreOffice? Если да - поделитесь кусочком своей безграничной мудрости:) Заранее спасибо! |
|||
1
Cyberhawk
04.08.16
✎
09:23
|
Встрой лучше туда Windows
|
|||
2
_stay true_
04.08.16
✎
09:23
|
(1) Внук Петросяна, не меньше:)
|
|||
3
Kandellaster
04.08.16
✎
09:24
|
если у либры есть ActiveX то тогда можно влепить туда
|
|||
4
_stay true_
04.08.16
✎
09:25
|
(3) Вот в этом и вопрос: как))) Инфы нигде не нарыл, думал, может у кого опыт есть
|
|||
5
DrZombi
гуру
04.08.16
✎
09:26
|
(0) Элемент по "getElementById" может появиться не сразу. У меня бывало, что спустя пару секунд.
Смотря как быстро прогрузится страница |
|||
6
Kandellaster
04.08.16
✎
09:27
|
(4) тот же способ только CLSID надо узнать при условии что у либры таки есть активХ
|
|||
7
_stay true_
04.08.16
✎
09:32
|
(5) Засунул в обработчик ожидания с задержкой 5 секунд - пока всё работает.
У Либры есть ActiveX, https://help.libreoffice.org/Common/ActiveX_Control_to_Display_Documents_in_Internet_Explorer/ru Вот как его только прикрутить к 1С))) |
|||
8
sikuda
04.08.16
✎
09:43
|
Сам немного этим баловался, но не критично
http://joliclic.free.fr/html/object-tag/en/object-application.html http://catalog.mista.ru/public/235751/ |
|||
9
_stay true_
04.08.16
✎
09:49
|
(8) в href и дата vj;yj засунуть что-то вроде file//ПутьКФайлу?
<object type="application/vnd.ms-excel" data="data/test.xls" width="300" height="200"> alt : <a href="data/test.xls">test.xls</a> </object> ? |
|||
10
_stay true_
04.08.16
✎
10:19
|
Ап)))
|
|||
11
_stay true_
04.08.16
✎
10:58
|
В общем, забил я на эту хрень, для просто просмотра проще xls в html программно по комке перегонять. Есть какой пример взаимодействия с LibreOffice по ком? Подключение, открытие файла, сохранение в html?
|
|||
12
Garykom
гуру
04.08.16
✎
11:25
|
(11) У тя в поле html документа js работает?
|
|||
13
Garykom
гуру
04.08.16
✎
11:31
|
(12)+ Если работает и хорошо то https://github.com/SheetJS/js-xlsx и делай что хочешь с XLS/XLSX/ODT хочешь выводи, хочешь свой "процессор таблиц" пиши ))
|
|||
14
_stay true_
04.08.16
✎
16:57
|
Таки почти разобрался с этим делом, конвертацией XLS в HTML с помощью LibreOffice. Остался последний штришок... Вот процедура:
// Сравнивает 2 файла (txt doc doc odt) с помощью MS Office или OpenOffice Процедура СравнитьФайлы(ПутьКФайлу) Экспорт Попытка // Открыть OpenOffice ServiceManager = Новый COMОбъект("com.sun.star.ServiceManager"); Reflection = ServiceManager.createInstance("com.sun.star.reflection.CoreReflection"); Desktop = ServiceManager.createInstance("com.sun.star.frame.Desktop"); Dispatcher = ServiceManager.createInstance("com.sun.star.frame.DispatchHelper"); // Открыть документ OpenOffice Args = Новый COMSafeArray("VT_DISPATCH", 1); OOДокумент = Desktop.loadComponentFromURL(ПреобразоватьВURL(ПутьКФайлу), "_blank", 0, Args); frame = Desktop.getCurrentFrame(); НастройкиСохранения = Новый COMSafeArray("VT_VARIANT", 1); PropertyValue = ServiceManager.Bridge_GetStruct("com.sun.star.beans.PropertyValue"); PropertyValue.Name = "FilterName"; PropertyValue.Value = "calc_html_Export"; НастройкиСохранения.SetValue(0, PropertyValue); ПутьКHTML = ПреобразоватьВURL("D:\test.html"); OOДокумент.storeToURL(ПутьКHTML, НастройкиСохранения); // сохранили HTML файл OOДокумент.close(-1); OOДокумент = Неопределено; Исключение Инфо = ИнформацияОбОшибке(); ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ПодробноеПредставлениеОшибки(Инфо)); КонецПопытки; КонецПроцедуры &НаКлиенте // Функция преобразует Windows имя файла в URL OpenOffice Функция ПреобразоватьВURL(ИмяФайла) Возврат "file:///" + СтрЗаменить(ИмяФайла, "\", "/"); КонецФункции И вот на строчке // Сравнивает 2 файла (txt doc doc odt) с помощью MS Office или OpenOffice Процедура СравнитьФайлы(ПутьКФайлу) Экспорт Попытка // Открыть OpenOffice ServiceManager = Новый COMОбъект("com.sun.star.ServiceManager"); Reflection = ServiceManager.createInstance("com.sun.star.reflection.CoreReflection"); Desktop = ServiceManager.createInstance("com.sun.star.frame.Desktop"); Dispatcher = ServiceManager.createInstance("com.sun.star.frame.DispatchHelper"); // Открыть документ OpenOffice Args = Новый COMSafeArray("VT_DISPATCH", 1); OOДокумент = Desktop.loadComponentFromURL(ПреобразоватьВURL(ПутьКФайлу), "_blank", 0, Args); frame = Desktop.getCurrentFrame(); НастройкиСохранения = Новый COMSafeArray("VT_VARIANT", 1); PropertyValue = ServiceManager.Bridge_GetStruct("com.sun.star.beans.PropertyValue"); PropertyValue.Name = "FilterName"; PropertyValue.Value = "calc_html_Export"; НастройкиСохранения.SetValue(0, PropertyValue); ПутьКHTML = ПреобразоватьВURL("D:\test.html"); OOДокумент.storeToURL(ПутьКHTML, НастройкиСохранения); // сохранили PDF файл OOДокумент.close(-1); OOДокумент = Неопределено; Исключение Инфо = ИнформацияОбОшибке(); ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ПодробноеПредставлениеОшибки(Инфо)); КонецПопытки; КонецПроцедуры &НаКлиенте // Функция преобразует Windows имя файла в URL OpenOffice Функция ПреобразоватьВURL(ИмяФайла) Возврат "file:///" + СтрЗаменить(ИмяФайла, "\", "/"); КонецФункции И на строке OOДокумент.storeToURL(ПутьКHTML, НастройкиСохранения); // сохранили HTML файл Получаю такую ошибку: {ВнешняяОбработка.ТестЗапускаПриложений.Форма.Форма.Форма(40)}: Ошибка при вызове метода контекста (storeToURL) OOДокумент.storeToURL(ПутьКHTML, НастройкиСохранения); по причине: Произошла исключительная ситуация ([automation bridge] ): com.sun.star.io.IOException: SfxBaseModel::impl_store <file:///D:/test.html> failed: 0x81a Кто сталкивался - помогите)) |
|||
15
_stay true_
04.08.16
✎
17:04
|
Извиняюсь, случайно задублировал код((
|
|||
16
_stay true_
04.08.16
✎
17:13
|
Я так понял, неправильно значение фильтра указал. пробовал разные комбинации с html, но нигде не нашёл инфы. В PDF есть экспорт, в html - НЕТ((
|
|||
17
Cyberhawk
04.08.16
✎
19:15
|
(2) Прошу меня извинить, хотел разрядить обстановку в этой атмосфере безысходности и тщетности найти работющее решение
|
|||
18
Garykom
гуру
04.08.16
✎
19:24
|
Меня искренне радует желания проводить операции на гландах через разные проходы в т.ч. задний.
Точнее тренировки в этом, но почему не удовлетворяет обычный ТабДок? Или отдельная работа в Екселя/ЛибреОфиса/ГуглеОфиса? Зачем это засовывать в тонкого клиента внутрь 1С? |
|||
19
Йохохо
04.08.16
✎
19:31
|
(16) https://wiki.openoffice.org/wiki/Documentation/DevGuide/Spreadsheets/Filter_Options
HTML (StarCalc) ? |
|||
20
_stay true_
05.08.16
✎
13:22
|
(19) Не заработало(((
Проблема решена установкой плагина в GoogleChrome и двумя строчками кода. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |