Russian Qt Forum
Ноябрь 24, 2024, 02:05 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как экспортировать HTML в редактируемый файл (RTF или ODT или...)?  (Прочитано 8526 раз)
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 - не знаю, но добиться нормально результата я не смог...

Если кто-нибудь сталкивался с такой задачей - посоветуйте пожалуйста как вы ее решили.
Записан
serkol
Гость
« Ответ #1 : Сентябрь 23, 2010, 04:02 »

Как я писал, часть форматирования таблицы ломалась при занесении HTML текста в QTextDocument.  Чтобы устранить это, я создал таблицу прямо в QTextDocument программно. Она правильно отображается в QTextEdit - тут все хорошо. Но при конвертировании в ODF, QTextDocumentWriter ломает таблицу. Самое плохое - все столбцы становятся одинаковой ширины. Один столбец должен быть широким (примерно 75% от ширины таблицы) - в нем тексты, а другие должны быть узкими - в них цифры...
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #2 : Сентябрь 23, 2010, 06:20 »

по-моему, с тех пор, как троли стали использовать WebKit они полностью забили на такие виджеты как QTextEdit.
Такие виджеты полноценно не поддерживают HTML. Как быть в твоём случае я не знаю
Записан

Юра.
serkol
Гость
« Ответ #3 : Сентябрь 23, 2010, 07:24 »

по-моему, с тех пор, как троли стали использовать WebKit они полностью забили на такие виджеты как QTextEdit.
Такие виджеты полноценно не поддерживают HTML.

Я уже переписал один кусок программы, чтобы делать текст не в HTML, а программно в QTextDocument. Осталась проблема нормально сконвертировать QTextDocument в что-нибудь типа RTF или ODF, не ломая таблицы. Было бы у меня больше опыта, я попытался бы исправить QTextDocumentWriter, чтобы он перенес ширину столбцов в ODF.
Записан
crossly
Гость
« Ответ #4 : Сентябрь 23, 2010, 09:15 »

http://websvn.kde.org/trunk/koffice/filters/kword/rtf/export/ там всего то ничего.... единственная проблема заключается в том что фильтры предназначены для импорта/экспорта в kword .... соответственно нужно переделать для QTextDocument... глубоко в этом не колупался... но на вскидку ... по моему там были проблемы с кириллицей... хотя может и исправили уже...
Записан
iRQSX
Гость
« Ответ #5 : Октябрь 02, 2010, 23:39 »

Однажды я просто переименовал .html с табличками в .rtf и он открылся в word'е нормально) Попробуйте может получится)
Записан
navrocky
Гипер активный житель
*****
Offline Offline

Сообщений: 817


Погроммист


Просмотр профиля
« Ответ #6 : Октябрь 03, 2010, 00:45 »

Кстати да, и word и swriter открывают переименованный html в doc без проблем. Мы у себя так отчеты делали..
Записан

Гугль в помощь
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.072 секунд. Запросов: 23.