Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> C# и OpenOffice 
:(
    Опции темы
serghey
Дата 25.4.2007, 11:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 25.4.2007

Репутация: нет
Всего: нет



есть большая проблема:
хочу подрубить openoffice к приложению:
для этого сделал:
класс:

Код

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)
            //вставка 
            if (Action.Action == FrameAction.COMPONENT_DETACHING)
            {
                
                
            }
        }
        
        
        public void disposing(unoidl.com.sun.star.lang.EventObject Source)
        {

            byte[] document;
            FileStream fs = new FileStream(@"D:\test7.odt", FileMode.Open, FileAccess.Read);
            document = new byte[fs.Length];
            fs.Read(document, 0, document.Length);
            
            string source = @"Data source=sergm\sergm;" +
                    "Initial Catalog=document; Integrated security=SSPI";
            SqlConnection sqlcon = new SqlConnection(source);
            sqlcon.Open();
            SqlCommand sqlcom = new SqlCommand("i_template", sqlcon);
            sqlcom.CommandType = CommandType.StoredProcedure;
            sqlcom.Parameters.Add("@doc", SqlDbType.VarBinary).Value = fs;
            sqlcom.ExecuteNonQuery();

            sqlcon.Close();
            sqlcon.Dispose();
            
        }
для обработки событий фрейма.
программа:
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;
            }
        }
private void bt_add_Click(object sender, EventArgs e)
        {//организация формы-контейнера для содержания в ней окна приложения OO
            Form frm_doc = new Form();
            frm_doc.Width = 500;
            frm_doc.Height = 500;
            frm_doc.IsMdiContainer=true;
            frm_doc.Show();

            
            
            if (File.Exists(@"D:\test7.odt"))
                File.Delete(@"D:\test7.odt");

            File.Copy(@"D:\null.odt", @"D:\test7.odt");
            XComponentContext xlocalContext;
            xlocalContext = uno.util.Bootstrap.bootstrap();

            XMultiServiceFactory xRemoteFactory;
            xRemoteFactory = (XMultiServiceFactory)
                             xlocalContext.getServiceManager();

            XComponentLoader aLoader;
            aLoader = (XComponentLoader)xRemoteFactory.createInstance(
                                            "com.sun.star.frame.Desktop");

            XComponent xComponent;
            xComponent = initDocument(aLoader, "private:factory/swriter", "_blank");

            XFrame xframe = ((XDesktop)aLoader).getCurrentFrame();
            xframe.addFrameActionListener(new MyFrameActionListener());
            initDocument(((XComponentLoader)xframe),
                         PathConverter(@"D:\test7.odt"),
                         "_self");
            
             
        }


проблема состоит в том, что после считывания файла из БД на диск я не могу открыть файл
выдает сообщение о том что файл поврежден, после восстановления он открывается причем полностью, но сей факт неудобен, подскажите люди добрые, кто чем может

Это сообщение отредактировал(а) mr.DUDA - 25.4.2007, 18:02
PM MAIL   Вверх
Exception
Дата 25.4.2007, 17:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 29
Всего: 186



Модератор: Используйте кнопку "Код"!

Отредактируйте, пожалуйста, ваше сообщение!
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0449 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.