|
|
|
вызов профессионалам
|
|||
|---|---|---|---|
|
#18+
Есть желание организовать возможность открывать документ в OpenOffice, редактировать его и сохранять в БД, но все это делать нужно из C# - программы, более того сохранять нужно по опции сохранить в меню программы OpenOffice. Т.е. открыли из C#-проги документ в OpenOffice, отредактировали в редакторе, нажимаем сохранить в меню и сохраняем в БД. До сих пор организовал открытие документа под управление проги: using unoidl.com.sun.star.beans; using unoidl.com.sun.star.lang; using unoidl.com.sun.star.uno; using unoidl.com.sun.star.bridge; using unoidl.com.sun.star.frame; using unoidl.com.sun.star.document; private void bt_add_Click(object sender, EventArgs e) { XComponentContext xlocalContext = uno.util.Bootstrap.bootstrap(); XMultiServiceFactory xRemoteFactory = (XMultiServiceFactory) xlocalContext.getServiceManager(); XComponentLoader aLoader = (XComponentLoader)xRemoteFactory.createInstance( "com.sun.star.frame.Desktop"); XComponent xComponent = initDocument(aLoader, "private:factory/swriter", "_blank"); XFrame xframe = ((XDesktop)aLoader).getCurrentFrame(); xframe.addFrameActionListener(new MyFrameActionListener()); initDocument(((XComponentLoader)xframe), PathConverter(FileName), "_self"); } static XComponent initDocument( XComponentLoader aLoader, string file, string target ) { XComponent xComponent = aLoader.loadComponentFromURL( file, target, 0, new PropertyValue[0]); return xComponent; } private static string PathConverter(string file) { try { file = file.Replace(@"\", "/"); return "file:///"+file; } catch (System.Exception ex) { throw ex; } } есть класс: using System; using System.Collections.Generic; using System.Text; using unoidl.com.sun.star.document; using unoidl.com.sun.star.frame; using System.Windows.Forms; namespace document { class MyFrameActionListener : XFrameActionListener { public void frameAction(FrameActionEvent Action) { if (Action.Action == FrameAction.FRAME_UI_ACTIVATED) MessageBox.Show("FrameEvent FRAME_UI_ACTIVATED"); else if (Action.Action == FrameAction.FRAME_ACTIVATED) MessageBox.Show("FrameEvent FRAME_ACTIVATED"); else if (Action.Action == FrameAction.CONTEXT_CHANGED) MessageBox.Show("FrameEvent CONTEXT_CHANGED"); //If these occours, the file is complete loaded else if (Action.Action == FrameAction.COMPONENT_ATTACHED) MessageBox.Show("FrameEvent COMPONENT_ATTACHED"); else if (Action.Action == FrameAction.COMPONENT_REATTACHED) MessageBox.Show("FrameEvent COMPONENT_DEATTACHED"); else if (Action.Action == FrameAction.FRAME_DEACTIVATING) MessageBox.Show("FrameEvent FRAME_DEACTIVATING"); else if (Action.Action == FrameAction.COMPONENT_DETACHING) MessageBox.Show("FrameEvent COMPONENT_DETACHING"); } public void disposing(unoidl.com.sun.star.lang.EventObject Source) { MessageBox.Show("выход из OpenOffice"); } } } для полного счастья подрубил все CLI сборки из C:\Program Files\OpenOffice.org 2.1\program\assembly, догадаться не трудно, что по адресу C:\Program Files\OpenOffice.org 2.1\program лежит OpenOffice помогите добрым советом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2007, 12:59 |
|
||
|
вызов профессионалам
|
|||
|---|---|---|---|
|
#18+
Последнее время с удивительной частотой все делают "вызов профессионалам", раньше делали ники с женскими именами , чтобы получить быстро ответ, теперь вот этот способ НЛП. Удивительно. ИМХО. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2007, 13:54 |
|
||
|
вызов профессионалам
|
|||
|---|---|---|---|
|
#18+
Что Вы кросспостингом занимаетесь и мечетесь из одного топика в другой и из одного форума в другой ? Неужели нельзя все решить в одном месте? Что Вам конкретно неясно/непонятно: 1. Как Вашу хотелку организовать вообще? 2. Как сохранить документ в БД? 3. Как отследить момент сохранения документа? Вы можете четко, ясно и однозначно сформулировать, хотя бы для себя, что Вы конкретно не можете реализовать? P.S. Когда определитесь, особенно с п.1., п.2. ищите сдесь (BLOB, картинка etc.); п.3. - сдесь / сдесь _________________ "Helo, word!" - 17 errors 56 warnings ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2007, 14:56 |
|
||
|
вызов профессионалам
|
|||
|---|---|---|---|
|
#18+
о правилах хорошего тона на форуме надо подумать вам господа ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2007, 07:53 |
|
||
|
вызов профессионалам
|
|||
|---|---|---|---|
|
#18+
Ex_Soft долго старался, когда отвечал на вопрос? Молодец ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2007, 07:58 |
|
||
|
вызов профессионалам
|
|||
|---|---|---|---|
|
#18+
а за п.3 P.S.благодарю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2007, 08:03 |
|
||
|
вызов профессионалам
|
|||
|---|---|---|---|
|
#18+
sergheyо правилах хорошего тона на форуме надо подумать вам господа Тебе все правильно сказали, не огрызайся ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2007, 10:51 |
|
||
|
вызов профессионалам
|
|||
|---|---|---|---|
|
#18+
Согласен полностью) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2007, 13:20 |
|
||
|
вызов профессионалам
|
|||
|---|---|---|---|
|
#18+
вам делать нечего, хорош поливать грязью ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2007, 06:57 |
|
||
|
|

start [/forum/topic.php?desktop=1&fid=17&tid=1352852]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
28ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 212ms |
| total: | 323ms |

| 0 / 0 |
