МихаилллJan. 19, 2019, 4:08 a.m.
Как документ 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
Еще
тут
есть проект. Но не пойму, как еого использовать.
Помогите пожалуйста.
We recommend hosting TIMEWEB
Stable hosting, on which the social network EVILEG is located. For projects on Django we recommend VDS hosting.Do you like it? Share on social networks!
l
- legwerewh
- March 5, 2024, 5:04 p.m.
C++ - Test 005. Structures and Classes
- Result:91points,
- Rating points8
Last comments
Qt Linux - Lesson 001. Autorun Qt application under Linux как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
АК
Qt WinAPI - Lesson 007. Working with ICMP Ping in Qt Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
Анатолий КононенкоFeb. 5, 2024, 1:50 a.m.
EVADec. 25, 2023, 10:30 a.m.
Boost - static linking in CMake project under Windows Сделал всё по-как у вас, но выдаёт ошибку [build] LINK : fatal error LNK1104: не удается открыть файл "libboost_locale-vc142-mt-gd-x64-1_74.lib" Хоть убей, не могу понять в чём дел…
Qt/C++ - Lesson 056. Connecting the Boost library in Qt for MinGW and MSVC compilers Для решения твой проблемы добавь в файл .pro строчку "LIBS += -lws2_32" она решит проблему , лично мне помогло.
Now discuss on the forum
Как получить в массив значения из связанной модели? Спасибо, разобрался:))
AC
QML Обнулить значения SpinBox Доброго времени суток, не могу разобраться с обнулением значение SpinBox находящего в делегате. import QtQuickimport QtQuick.ControlsWindow { width: 640 height: 480 visible: tr…
Alexandru CodreanuJan. 19, 2024, 11:57 a.m.
BlinCTDec. 27, 2023, 8:57 a.m.
ДмитрийJan. 10, 2024, 4:18 a.m.
Evgenii LegotckoiDec. 12, 2023, 6:48 a.m.
хотя как динамическая Itenso.Rtf.Converter.Html.dll подключается
Нашел тут код конвертации:
но это видимо синтаксис VS.
Помогите пожалуйста переписать под QT.
Наверно это будет примерно так:
извиняюсь, код на делфи, но подход наверно правильный.
Добрый день.
Я с ActiveX на Вы полностью до незнакомства. Но если поясните кое-какие моменты, то возможно у меня будет идея, которая вас натолкнёт на нужное русло. Поэтому вопрос такой.
А Вы нашли вообще способ сохранять файлы через QAxObject? Дело в том, что тот код на Дельфи-то конечно отражает алгоритм, но библиотеки-то разные?
Впрочем, если смотреть на то, что вы имеете, то возможно, для запроса конвертации нужно записать что-то подобное.
Но не знаю, у вас уже есть какие-нибудь примеры сохранение через QAxObject?
Так тоже не работает, но наверно что то похожее должно заработать.
Что то похожее я видел тут и тут .
Как я понял этот вариант должен работать через библиотеки Word. Запрос querySubObject должен вызвать нужную функцию.
Еще я видиле библиотеки на java и C#, которые могут также конывертировать. Не знаете ли вы, можно ли их использовать?
Бибилотеки Java и С# можно использовать, если они будут добавлены в самостоятельную программу, которая будет работать в консольном режиме. Тогда через QProcess можно будет вызывать данную программу и выполнять конвертирование.
Я бы попытался по возможности распарсить получаемый текст, если там удаётся извлечь хоть что-то, что походит на сколько-нибудь структурированные данные. Конечно, придётся с регулярками повозиться.
Похоже я нашел решение на с++
Тут автор описывает про магическое превращение через буфер обмена средствами Word.
Вот
7925-Rtf2HtmlProj.zip
Вот код автора:
Не могли бы вы мне помочь адаптировать это под 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 на андроиде?
нет, не планирую
вот именно так работает конвертация:
конвертирует через ворд
Я вас поздравляю. Приятно наблюдать за прогрессом.
Пожалуй, я тогда не буду заниматься той библиотекой. Всё равно она какая-то мутная на первый взгляд.
и еще в конце нужно дописать для закрытия процесса (иначе будет в памяти висеть):