Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / C++ Новый топик    Ответить
 Открытие нового файла на запись через интерфейс uno libreoffice  [new]
YuriyRusinov
Member

Откуда: Санкт-Петербург
Сообщений: 719
Здравствуйте !

У меня возникла необходимость открывать файлы odt через механизм Qt5 и uno libreoffice, отыскивать в них таблицы, добавлять-удалять строки и записывать результирующие файлы. Я успешно выделяю таблицы и манипулирую со строками, но не могу записать результирующий файл, так как код
    osl::File osfTest( "file:///home/user/projects/test_uno/examples/test.odt" );
    osl::FileBase::RC resTest = osfTest.open( (sal_uInt32)0 );
    if (resTest != osl::FileBase::E_None) {
        return;
    }

при этом файл изначально не существует, приводит к ошибке, что файл не найден. Вопрос, как открыть новый файл на запись, используя механизм uno sdk, в частности osl::File ?

Спасибо.
25 апр 20, 22:43    [22122857]     Ответить | Цитировать Сообщить модератору
 Re: Открытие нового файла на запись через интерфейс uno libreoffice  [new]
YuriyRusinov
Member

Откуда: Санкт-Петербург
Сообщений: 719
Сам и отвечаю, потому что я неправ в том, что пытаюсь сохранить файл через потоки вывода, в Libreoffice UNO есть класс XStorable, который осуществляет запись файла

Reference< XStorable > _xStore ( _xComponent, UNO_QUERY );
_xStore->storeAsURL( sDocUrl, props );

где _xComponent -- компонента, которую мы получаем при загрузке файла, sDocUrl -- требуемый url сохраняемого файла, props -- возможные флаги для сохранения, которые могут быть пустыми.
28 май 20, 11:53    [22141122]     Ответить | Цитировать Сообщить модератору
Все форумы / C++ Ответить