Russian Qt Forum

Qt => Общие вопросы => Тема начата: serkol от Сентябрь 22, 2010, 20:59



Название: Как экспортировать HTML в редактируемый файл (RTF или ODT или...)?
Отправлено: serkol от Сентябрь 22, 2010, 20:59
Моя прога готовит HTML текст (с таблицами). Нужно скинуть его в файл такого формата, чтобы пользователь легко мог отредактировать и распечатать этот файл.

Если сохранять в HTML файл, то далеко не всякий пользователь сможет его отредактировать - по умолчанию файл будет открываться в web browser.

В идеале я хотел бы перевести HTML в RTF, потому что RTF понимают и Windows и Mac OS. Кто-нибудь может посоветовать чем это сделать? RTF конвертер есть в kde (kde office), но он тянет за собой чуть ли не весь kde office - я что-то не разобрался как выкусить его из kde office чтобы он не тянул кучу не нужного мне кода... качество конвертирования я не проверял...

Второй вариант - сохранять в ODT (OpenOffice). В Qt есть QTextDocumentWriter, который может сохранить QTextDocument в формате ODF (получается файл .ODT). То есть я сначала помещаю мой HTML в QTextDocument, потом использую QTextDocumentWriter чтобы сохранить этот текст в файле в формате .ODT. В результате получается полная фигня. В таблицах ломается все что только можно поломать - рамки, фоны, размеры ячеек, выравнивание текста... Может это ломается при запихивании HTML в QTextDocument, может - когда QTextDocumentWriter конвертирует содержимое QTextDocument в формат ODF - не знаю, но добиться нормально результата я не смог...

Если кто-нибудь сталкивался с такой задачей - посоветуйте пожалуйста как вы ее решили.


Название: Re: Как экспортировать HTML в редактируемый файл (RTF или ODT или...)?
Отправлено: serkol от Сентябрь 23, 2010, 04:02
Как я писал, часть форматирования таблицы ломалась при занесении HTML текста в QTextDocument.  Чтобы устранить это, я создал таблицу прямо в QTextDocument программно. Она правильно отображается в QTextEdit - тут все хорошо. Но при конвертировании в ODF, QTextDocumentWriter ломает таблицу. Самое плохое - все столбцы становятся одинаковой ширины. Один столбец должен быть широким (примерно 75% от ширины таблицы) - в нем тексты, а другие должны быть узкими - в них цифры...


Название: Re: Как экспортировать HTML в редактируемый файл (RTF или ODT или...)?
Отправлено: lit-uriy от Сентябрь 23, 2010, 06:20
по-моему, с тех пор, как троли стали использовать WebKit они полностью забили на такие виджеты как QTextEdit.
Такие виджеты полноценно не поддерживают HTML. Как быть в твоём случае я не знаю


Название: Re: Как экспортировать HTML в редактируемый файл (RTF или ODT или...)?
Отправлено: serkol от Сентябрь 23, 2010, 07:24
по-моему, с тех пор, как троли стали использовать WebKit они полностью забили на такие виджеты как QTextEdit.
Такие виджеты полноценно не поддерживают HTML.

Я уже переписал один кусок программы, чтобы делать текст не в HTML, а программно в QTextDocument. Осталась проблема нормально сконвертировать QTextDocument в что-нибудь типа RTF или ODF, не ломая таблицы. Было бы у меня больше опыта, я попытался бы исправить QTextDocumentWriter, чтобы он перенес ширину столбцов в ODF.


Название: Re: Как экспортировать HTML в редактируемый файл (RTF или ODT или...)?
Отправлено: crossly от Сентябрь 23, 2010, 09:15
http://websvn.kde.org/trunk/koffice/filters/kword/rtf/export/ (http://websvn.kde.org/trunk/koffice/filters/kword/rtf/export/) там всего то ничего.... единственная проблема заключается в том что фильтры предназначены для импорта/экспорта в kword .... соответственно нужно переделать для QTextDocument... глубоко в этом не колупался... но на вскидку ... по моему там были проблемы с кириллицей... хотя может и исправили уже...


Название: Re: Как экспортировать HTML в редактируемый файл (RTF или ODT или...)?
Отправлено: iRQSX от Октябрь 02, 2010, 23:39
Однажды я просто переименовал .html с табличками в .rtf и он открылся в word'е нормально) Попробуйте может получится)


Название: Re: Как экспортировать HTML в редактируемый файл (RTF или ODT или...)?
Отправлено: navrocky от Октябрь 03, 2010, 00:45
Кстати да, и word и swriter открывают переименованный html в doc без проблем. Мы у себя так отчеты делали..