LINUX.ORG.RU

[Qt][C++][ODT] библиотека для заполнения .odt документов

 , ,


0

1

Попросили подсказать, но сам я не в теме.

Суть задачи таккая:
Есть приложение на C++ + Qt, которое работает с MySQL базой.
Приложение предназначено для работы со всякой архивной инфой и выдачи справок.
Есть нечто вроде шаблона, в формате ODT (OOo Writer) с текстом справки.

Туда надо подставить данные из базы (ФИО, адрес, т.п., !!!возможно фотографию!!!).
Существуют ли какие-нибудь библиотеки для решения этой задачи?
Может быть есть какой-то модуль для Qt или просто C++ либа.

Конечно можно решить «в лоб», т.е. открыть как архив и парсить текстовые файлы, но может быть есть более удобное решение.

★★★★★

Последнее исправление: ls-h (всего исправлений: 1)

На ум ничего лучшего не приходит кроме как вызывать утилиту soffice из командной строки и заставлять её выполнять скрипт сгенерированый приложением.

И есть более разумный вариант, создать документ в OOO Base и полключить к базе данных без сторонних приложений.

SV0L0CH
()

Офис обязателен? Просто для генерации документов по шаблону LaTeX - самое оно.

SSN
()

С версии 4.5, вроде как, там встроен обработчик odt-файлов. QTextDocument, емнип, для этого используется.

VoofT
()
Ответ на: комментарий от MikeDM

http://www.qtinfo.ru/stayingresponsive

QByteArray data = file.readAll();
QTextCodec *codec = Qt::codecForHtml(data);
QString str = codec->toUnicode(data);
if (Qt::mightBeRichText(str))
{
    QTextDocument d;
    d.setHtml(str);
    QTextDocumentWriter  writer(fileName + ".odt", "odf");
    return writer.write(&d);
}

Насколько код рабочий не знаю, не экспериментировал.

Torvus
()
Ответ на: комментарий от Torvus

> Кто ищет, тот найдет: http://odftoolkit.org/projects/odfdom/pages/Home

The current reference implementation is written in Java.


Нахуй-нахуй джаву... Надо бы что-то более нативное и свободное.
P.S. Сам ищу такую штуку.

Мне кажется лучше уж в тролтек-рабство податься:
http://doc.trolltech.com/main-snapshot/qtextdocumentwriter.html

robux
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.