Как документ RTF конвертировать в HTML
Добрый день.
Как документ RTF конвертировать в HTML?
Могу его открыть и прочитать так:
- QString file = QFileDialog::getOpenFileName(0, "Выберете резюме hh.ru", "", "*.rtf");
- if(!file.isEmpty())
- {
- QFile sFile(file);
- if(sFile.open(QFile::ReadOnly | QFile::Text)){
- QTextStream in(&sFile);
- //QTextDocument textDocument;
- //textDocument = in.readAll().toHtmlEscaped();
- QString text = in.readAll();
- sFile.close();
- ui->ResumeHHTextEdit->setHtml(text);
- qDebug()<<text;
- }
- }
Тут
Есть подходящая библиотека. Вот , наверно, нужный dll.
Itenso.Rtf.Converter.Html.dll
Но не могу его дабавить его к проекту как библиотеку, проект требует только формат .lib
Еще
тут
есть проект. Но не пойму, как еого использовать.
Помогите пожалуйста.
2
253
Do you like it? Share on social networks!
- Last comments
- AKApril 1, 2025, 11:41 a.m.Добрый день. В данный момент работаю над проектом, где необходимо выводить звук из программы в определенное аудиоустройство (колонки, наушники, виртуальный кабель и т.д). Пишу на Qt5.12.12 поско…
- VPMarch 9, 2025, 4:14 p.m.Здравствуйте! Я устанавливал Qt6 из исходников а также Qt Creator по отдельности. Все компоненты, связанные с разработкой для Android, установлены. Кроме одного... Когда пытаюсь скомпилиров…
- ИМNov. 22, 2024, 9:51 p.m.Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
- Now discuss on the forum
- МАApril 1, 2025, 4:21 p.m.0ff763fe-4e50-455d-a3a6-5699c243b1a5_17_44_22_1.xml
- fFeb. 15, 2025, 1:46 p.m.Подскажите, пожалуйста! Как данный класс можно дополнить, чтобы созданные объекты можно было перемещать мышкой по сцене?
- Не запускается компьютер (точнее работает блок , но сам монитор вообще жесть)В общем я ничего с интернета не скачивала в последнее время. На компе никаких левых пр…
- Вопрос решен. Узнать QModelIndex элемента на который мы перетаскиваем другой элемент, можно с помощью функции indexAt(event->position().toPoint()) представления QTreeViev вызываемой в переопр…
хотя как динамическая Itenso.Rtf.Converter.Html.dll подключается
Нашел тут код конвертации:
но это видимо синтаксис VS.
Помогите пожалуйста переписать под QT.
Наверно это будет примерно так:
извиняюсь, код на делфи, но подход наверно правильный.
Добрый день.
Я с ActiveX на Вы полностью до незнакомства. Но если поясните кое-какие моменты, то возможно у меня будет идея, которая вас натолкнёт на нужное русло. Поэтому вопрос такой.
А Вы нашли вообще способ сохранять файлы через QAxObject? Дело в том, что тот код на Дельфи-то конечно отражает алгоритм, но библиотеки-то разные?
Впрочем, если смотреть на то, что вы имеете, то возможно, для запроса конвертации нужно записать что-то подобное.
Но не знаю, у вас уже есть какие-нибудь примеры сохранение через QAxObject?
Так тоже не работает, но наверно что то похожее должно заработать.
Что то похожее я видел тут и тут .
Как я понял этот вариант должен работать через библиотеки Word. Запрос querySubObject должен вызвать нужную функцию.
Еще я видиле библиотеки на java и C#, которые могут также конывертировать. Не знаете ли вы, можно ли их использовать?
Бибилотеки Java и С# можно использовать, если они будут добавлены в самостоятельную программу, которая будет работать в консольном режиме. Тогда через QProcess можно будет вызывать данную программу и выполнять конвертирование.
Я бы попытался по возможности распарсить получаемый текст, если там удаётся извлечь хоть что-то, что походит на сколько-нибудь структурированные данные. Конечно, придётся с регулярками повозиться.
Похоже я нашел решение на с++
7925-Rtf2HtmlProj.zip
Тут автор описывает про магическое превращение через буфер обмена средствами Word.
Вот
Вот код автора:
Не могли бы вы мне помочь адаптировать это под QT
Call back функцию (MyStreamInCallback) можно так и копировать в проект на Qt, также функцию LoadRtfFile можно так и копировать.
Думаю, что здесь особо адаптировать-то нечего, просто добавить в проект на Qt все те функции, а код в _tmain вынести в какой-нибудь слот.
Попробовал, но QT выдает много ошибок, говорит что не знает : LPCTSTR, CFileDialog, CFile, EDITSTREAM и т.д.
Для того, чтобы это испраить, видимо нужны какие то файлы из MSVC.
Так же нашел библиотеку, скомпилированную на C# .
Там же и примеры на C#.
Вот документация по этой библиотеке.
Подключил эту библиотеку.
Пробую воспользоваться этой библиотекой, пока выходит так:
Помогите пожалуйста разобраться с этим
Для решения этой задачи нужно как-то использовать функцию
вот только она не статичная и не понятно как создать объект нужного класса
Ну не цепляются C# библиотеки в C++ коде, обратное возможно.
Скажите пожалуйста, что же делать с ошибками незнания: LPCTSTR, CFileDialog, CFile, EDITSTREAM и прочего
Это всё из MFC, нужно заменять на QFileDialog, QFile и т.д. Или подключать соответствующие библиотеки из WinAPI, что априори плохая мысль, если используется Qt. . Не работал с теми библиотеками, только с Qt.
Делать это строчка, за строчкой. А не сразу наскоком.
Нашел ссылку на древние типы данных , а тут нынешние их аналоги.
Но все равно каое что непоня:
что такое : LPCTSTR, CALLBACK (наверно QDialig),IDOK, EDITSTREAM, TCHAR
Код у меня получился (не доработанный) такой:
помогите пожалуйста до конца разобраться с ним.
И скажите пожалуйста , почему не стоит использовать WinAPI, при работе с QT?
Тут нашел
rtftohtml_win32.zip
. Похоже она скомпилированна на С++.
Подключил библиотеку как динамическую.
Теперь пытаюсь воспользоваться методом
Пока заготовка такая
Но выдает ошибку: no viable overloaded '='
Помогите пожалуйста воспользоваться этим методом.
Там в примерах в архиве есть пример определения сигнатуры функции.
То есть сигнатура только так может объявляться. Вам нужно передать имя файла, каталог, где он находится и структуру настроек. Иначе никак. Передача QString туда никак не подойдёт.
Думаю, что в документации там есть информация о параметрах в той структуре настроек.
В документации она не описанна, только в примере:
На этой строчке
Выдает ошибку : no matching function for call to 'GetProcAddress'
попробовал сделать так и программа зависла
Помогите пожалуйста разобраться с этой библиотекой
Только если на выходных гляну, у самого своих проектов до кучи, чтобы разбираться в рабочие дни с незнакомой библиотекой.
Зарание спасибо.
А еще на эту тему можно будет сделать статью. Это контент будет уникальным.
А вы случаем ту библиотеку не планируете подключать в приложение на Андроид?
И вообще использовать ActiveX на андроиде?
нет, не планирую
вот именно так работает конвертация:
конвертирует через ворд
Я вас поздравляю. Приятно наблюдать за прогрессом.
Пожалуй, я тогда не буду заниматься той библиотекой. Всё равно она какая-то мутная на первый взгляд.
и еще в конце нужно дописать для закрытия процесса (иначе будет в памяти висеть):