Михаиллл19. Januar 2019 05:08
Как документ 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
Еще
тут
есть проект. Но не пойму, как еого использовать.
Помогите пожалуйста.
Рекомендуємо хостинг TIMEWEB
Stabiles Hosting des sozialen Netzwerks EVILEG. Wir empfehlen VDS-Hosting für Django-Projekte.Magst du es? In sozialen Netzwerken teilen!
Kommentare
sf
- sdfsdfkp fgskpgokspdog
- 14. Oktober 2024 15:09
C++ - Тест 004. Указатели, Массивы и Циклы
- Ergebnis:90punkte,
- Bewertungspunkte8
МВ
- Максим Васильев
- 2. Oktober 2024 04:14
Qt - Тест 001. Сигналы и слоты
- Ergebnis:68punkte,
- Bewertungspunkte-1
ЛС
- Лев Семенов
- 30. September 2024 11:04
C++ - Тест 001. Первая программа и типы данных
- Ergebnis:53punkte,
- Bewertungspunkte-4
Letzte Kommentare
Fb3-Dateileser auf Qt Creator Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
ИМ
Django – Lektion 064. So schreiben Sie eine Python-Markdown-Erweiterung Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
Игорь Максимов5. Oktober 2024 07:51
QML - Lektion 016. SQLite-Datenbank und das Arbeiten damit in QML Qt Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
Qt Linux - Lektion 001. Autorun Qt-Anwendung unter Linux как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
АК
Qt WinAPI - Lektion 007. Arbeiten mit ICMP-Ping in Qt Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
Анатолий Кононенко5. Februar 2024 01:50
Jetzt im Forum diskutieren
добавить qlineseries в функции Пользователь может получить любые разъяснения по интересующим вопросам, касающимся обработки его персональных данных, обратившись к Оператору с помощью электронной почты https://topdecorpro.ru…
ИМ
Реализация навигации по разделам Спасибо Евгений!
Игорь Максимов3. Oktober 2024 04:05
Indian Food Restaurant In Columbus OH| Layla’s Kitchen Indian Restaurant If you're looking for a truly authentic https://www.laylaskitchenrestaurantohio.com/ , Layla’s Kitchen Indian Restaurant is your go-to destination. Located at 6152 Cleveland Ave, Colu…
КГ
Не запускается программа на Qt: точка входа в процедуру не найдена в библиотеке DLL Написал программу на C++ Qt в Qt Creator, сбилдил Release с помощью MinGW 64-bit, бинарнику напихал dll-ки с помощью windeployqt.exe. При попытке запуска моей сбилженной программы выдаёт три оши…
Кирилл Гусарев27. September 2024 09:09
при создании qml проекта Kits есть но недоступны для выбора Поставил Qt Creator 11.0.2. Qt 6.4.3 При создании проекта Qml не могу выбрать Kits, они все недоступны, хотя настроены и при создании обычного Qt Widget приложения их можно выбрать. В чем может …
хотя как динамическая 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 на андроиде?
нет, не планирую
вот именно так работает конвертация:
конвертирует через ворд
Я вас поздравляю. Приятно наблюдать за прогрессом.
Пожалуй, я тогда не буду заниматься той библиотекой. Всё равно она какая-то мутная на первый взгляд.
и еще в конце нужно дописать для закрытия процесса (иначе будет в памяти висеть):