libreoffice 5 c++ insert image

 
0
 
C++
ava
ss | 06.12.2016, 10:26
Как вставить новый компонент (картинку, текст ...) в libreoffice 5 ?
Взял за основу пример из sdk DocumentLoader. Пытаюсь добавить компонент из примеров https://wiki.openoffice.org/wiki/Writer/API/Overview


args1[0].Name = OUString::createFromAscii("Bold");
    args1[0].Value <<=(sal_Bool)true;
    rDispatchHelper->executeDispatch(rDispatchProvider,
            OUString::createFromAscii(".uno:Bold"),
            OUString::createFromAscii(""),
            0,
            args1);

    args1.realloc(3);
    args1[0].Name = OUString::createFromAscii("FontHeight.Height");
    args1[0].Value <<= (sal_Int32)14;
    args1[1].Name = OUString::createFromAscii("FontHeight.Prop");
    args1[1].Value <<= (sal_Int32)100;
    args1[2].Name = OUString::createFromAscii("FontHeight.Diff");
    args1[2].Value <<= (sal_Int32)0;
    rDispatchHelper->executeDispatch(rDispatchProvider,
            OUString::createFromAscii( ".uno:FontHeight"),
            OUString::createFromAscii(""),
            0,
            args1);



    rDispatchHelper получаю так

xInterface = Reference< XInterface >(
                resolver->resolve( sConnectionString ), UNO_QUERY );

rOfficeServiceManager_ = Reference< XMultiServiceFactory >(xInterface, UNO_QUERY);

Reference< XDispatchHelper > rDispatchHelper = Reference< XDispatchHelper >
                    ( rOfficeServiceManager_->createInstance(
                                  OUString( RTL_CONSTASCII_USTRINGPARAM(
                                  "com.sun.star.frame.DispatchHelper" ))), UNO_QUERY );



соединение с libreoffice  проходит нормально. Документ загружается нормально. Найти таблицу по имени и изменить текст в ячейке получается а вставить новый компонент ,напр. картинку не получается.
Kommentare (1)
ava
ss | 06.12.2016, 13:39 #
пробовал как в примере https://wiki.openoffice.org/wiki/Tables_in_a_Writer_Document


xInterface = Reference< XInterface >( resolver->resolve( sConnectionString ), UNO_QUERY );
Reference< XMultiServiceFactory > rOfficeServiceManager_;
rOfficeServiceManager_ = Reference< XMultiServiceFactory >(xInterface, UNO_QUERY);


//--------------------------------------------------------------------------------------
OUString creator = OUString::createFromAscii("com.sun.star.text.TextTable");
Reference<XTextTable>xTable(rOfficeServiceManager_->createInstance(creator), UNO_QUERY);
//--------------------------------------------------------------------------------------


xTable - не существует.

пробовал так

//xMultiComponentFactoryClient - описано в примерах к sdk
OUString creator = OUString::createFromAscii("com.sun.star.text.TextTable");
    Reference<XTextTable>res(xMultiComponentFactoryClient_->createInstanceWithContext(creator,xComponentContext_), UNO_QUERY);


так же не может создать компонент.
Registrieren Sie sich oder melden Sie sich an, um schreiben zu können.
Unternehmen des Tages
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Mitwirkende
  ss
advanced
Absenden