Я пытаюсь создать документ используя QtTextdocument:: setHtml
функция. Проблема заключается в том, что по ссылке ниже не все атрибуты доступны для использования в html.
У меня есть следующий HTML, который я хочу напечатать в PDF, используя (QtTextdocument)
<table width=100% frame='box'>
<tr align='left'>
<th>For</th>
<th>Myself</th>
</tr>
<tr align='left'>
<th>Attention</th>
<th>Mother</th>
</table>
HTML создает таблицу с простой рамкой. Проблема в том, что атрибут «frame» не находится в поддерживаемом подмножестве Html для Qt, как указано ссылкой Вот. Тег таблицы поддерживается, но не рамка атрибута.
пожалуйста, обратите внимание что я уже пытался использовать атрибут «border» и установить его в значение «1 | 0», но он также дал границы вокруг ячеек таблицы, что не является тем, что я хочу.
QTextDocument *document;
QPrinter printer;
Qstring html="<table width=100% frame='box'><tr align='left'><th>For</th>"
"<th>Myself</th>"+
"</tr>"+
"<tr align='left'>"+
"<th>Attention</th>"+
"<th>Mother</th>"+
"</table>";
document->setHtml(html);
printer.setOutputFormat(QPrinter::PdfFormat);
printer.setPaperSize(QPrinter::A4);
printer.setPageMargins(QMarginsF(15, 15, 15, 15));
printer.setOutputFileName("./Report.pdf");
document->print(&printer);
Когда я проверяю PDF, у таблицы нет внешнего кадра, который я хочу. Кто-нибудь знает способ обойти это? Все, что мне нужно, это черный ящик вокруг стола.
Frame
атрибут Table
HTML-тег не поддерживается Qt.
Вместо Border
поддерживается. Я пробовал с Border
Я могу видеть границу.
Ссылка ниже содержит список поддерживаемых атрибутов для Table
тег. Ищите «Поддерживаемые теги» в ссылке ниже.
http://doc.qt.io/qt-5/richtext-html-subset.html
Вы можете видеть это для Table
тег,
Поддерживает следующие атрибуты: border, bgcolor (имена цветов Qt или #RRGGBB), пространство ячеек, заполнение ячеек, ширина (абсолютная или относительная) и высота.
Я попробовал ниже изменить в вашем коде. Я вижу границы.
<table width=100% border = \"2\" >
Я решил это следующим образом. Идея заключается в простом нанесении черного холста под белый лист.
Я изменил HTML, чтобы быть следующим
<table width=100% style='background-color:#000;'>
<tr>
<td style='padding:1px '>
<table width= 100% style='background-color:#fff;'>
<tr align='left'>
<th>For</th>
<th>Myself</th>
</tr>
<tr align='left'>
<th>Attention</th>
<th>Mother</th>
</table>
</td>
</tr>
</table>
Теперь у меня есть черная граница 1px вокруг контента, и она очень хорошо отображается в PDF. НАСЛАЖДАТЬСЯ