Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
66 / 57 / 13
Регистрация: 16.03.2017
Сообщений: 426
1

Как при чтении HTML файла отвязаться от картинок-файлов и все сохранять в одной переменной?

27.01.2019, 15:56. Показов 674. Ответов 4
Метки html (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте. Как при чтении HTML файла отвязаться от картинок-файлов и все сохранять в одной переменной?

Добавлено через 37 минут
попробовал сделать так, но выкидывает из программы и не написало ошибки:
C++ (Qt)
1
2
3
                QTextDocument htmlDocument;
                htmlDocument.setHtml(textHtmlResume);
                ui->ResumeHHTextEdit->setDocument(&htmlDocument);
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.01.2019, 15:56
Ответы с готовыми решениями:

Как сохранять все данные из одной функции в переменной?
Добрый день! Занялся реализацией ротатора баннеров. Написал генератор баннеров по размеру (т.е....

Ошибка инициализации переменной при чтении структурированного файла
Почему выдаёт ошибку: "Использована неинициализированная локальная переменная "rr"." При таком же...

Как при чтении файла проверить достигнут ли конец файла?
Как при чтении файла проверить достигнут ли конец файла? Dim Red As IO.BinaryReader Red = New...

"Нарушение прав доступа при чтении по адресу" при чтении структур из бинарного файла
Пытаюсь разобраться со структурами в бинарных файлах. Допустим, есть массив структур. Записываю...

4
60 / 56 / 21
Регистрация: 31.03.2014
Сообщений: 234
28.01.2019, 09:36 2
Скорее всего в при выходе из блока/функции умирает htmlDocument.
Попробуйте так:
C++ (Qt)
1
2
QTextDocument * htmlDocument = new QTextDocument (textHtmlResume);
ui->ResumeHHTextEdit->setDocument(htmlDocument);
0
66 / 57 / 13
Регистрация: 16.03.2017
Сообщений: 426
28.01.2019, 11:51  [ТС] 3
Заработало, но не так как нужно, выдало вместо отформатированного текста код HTML, и в нем также сохраняются ссылки на картинки, видимо это не тот путь.
HTML5
1
2
3
4
<p class=MsoNormal style='line-height:normal'><span style='font-size:12.0pt;
font-family:"Times New Roman","serif"'><img border=0 width=1000 height=561
id="Рисунок 1" src="file:///C:\tempDirHtmlResume\tempResumeHtmlFile.files\image005.jpg"
alt="Описание: стакан абсента"></span></p>
Добавлено через 15 минут
Говорят что картинку можно перевести в массив ascii символов и вшить в HTML вместо ссылок на картинки. Но как это сделать?
0
60 / 56 / 21
Регистрация: 31.03.2014
Сообщений: 234
28.01.2019, 13:19 4
Михаиллллллл, лучше используйте QTextBrowser;
Например:

C++ (Qt)
1
2
3
4
5
6
7
QStringList pathList;
pathList << "D://"; //грубо говоря, путь к файлу
 
QString file = "test.html" //имя файла
 
ui->textBrowser->setSearchPaths(pathList );
ui->textBrowser->setSource(file);
тогда страница будет отображаться правильно с изображениями.
0
66 / 57 / 13
Регистрация: 16.03.2017
Сообщений: 426
28.01.2019, 20:18  [ТС] 5
Но оно и так отображается, я хочу загружать документ в базу и выгружать при надобности.
Перевел картинку в текст:
C++ (Qt)
1
2
3
4
5
6
    QImage imageForResume("C:\\tempDirHtmlResume\\tempResumeHtmlFile.files\\image001.jpg");
    QByteArray byteArrayForImage;
    QBuffer buffer(&byteArrayForImage);
    imageForResume.save(&buffer, "PNG"); // writes the image in PNG format inside the buffer
    //QString textImage = QString::fromLatin1(byteArrayForImage.toBase64().data());
    QString textImage = byteArrayForImage.toBase64();
Но вот возникли трудности, некоторые части кода начинаю выполняться, когда другие еще не закончились.

Добавлено через 2 часа 57 минут
Все же код работает правильно.
Но как вставить textImage в HTML-документ QString HTMLResume;

Добавлено через 3 часа 41 минуту
Вот так работает
C++ (Qt)
1
2
3
4
5
6
7
    QImage imageForResume("C:\\tempDirHtmlResume\\tempResumeHtmlFile.files\\image001.jpg");
    QByteArray byteArrayForImage;
    QBuffer buffer(&byteArrayForImage);
    imageForResume.save(&buffer, "PNG"); // writes the image in PNG format inside the buffer
    QString textImage = byteArrayForImage.toBase64();
    HTMLResume.replace(QRegExp("src=\"tempResumeHtmlFile.files/image001.jpg\">"), " src=\"data:image/png;base64," + textImage + "\"/>"); //замена символов //add text Images
    ui->ResumeHHTextEdit->setHtml(HTMLResume);
0
28.01.2019, 20:18
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.01.2019, 20:18
Помогаю со студенческими работами здесь

Как сохранять элементы массивов (коллекций) при закрытии файла?
... при закрытии файла? Спасибо

Как сложить все значения одной переменной
Задание: &quot;Даны натуральные числа от 1 до 50.Найти сумму тех из них которые делятся на 5 или на 7&quot;...

Как пропустить строку при чтении файла?
#include &quot;pch.h&quot; #include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;string&gt; using namespace std;...

Как указать кодировку при чтении с файла
Суть программы. Имеется файл data.txt, в котором в такой последовательности записаны символы aaa...

Как определить разделить при чтении из файла
Дан текстовый файл, в котором информация перечислена через запятую: a,b,c,d,e,f без пробелов. Нужно...

Как при чтении файла указать кодировку
Всем доброго времени суток! Есть переменная Dim SB As New System.Text.StringBuilder в ней...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru