6 / 6 / 1
Регистрация: 02.06.2014
Сообщений: 110
1

Размер текста в QWebView

07.08.2016, 16:07. Показов 590. Ответов 3
Метки нет (Все метки)

Здравствуйте! Не нашел похожей темы на форму, поэтому вопрос:
Есть файл с HTML содержимым. Загружаю и храню в QString. Затем по кнопке хочу напечатать.
C++ (Qt)
1
2
3
4
5
6
QPrintDialog dialog(printer, this);
if (dialog.exec() != QDialog::Accepted)
     return;
QWebView view;
view.setHtml(currentForPrint);
view.print(printer);
HTML сгенерирован из LibreOffice Writer. Печатаю оттуда и оттуда в PDF (через программу PDFCreator)
Сразу становится видна разница в размере текста (на картинке ниже - текст немного изменен, но это не суть).
В документе у текстов стоит размер текста в тегах
HTML5
1
<font  style="font-size: 10pt">
Печатать HTML через QTextDocument еще хуже получается, притом что еще и не все теги и CSS свойства поддерживаются.
Почему такое может быть? QWebView вроде никак не настраивается. Зумить - это похоже на костыли как-то. Что сделать?
Миниатюры
Размер текста в QWebView  
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.08.2016, 16:07
Ответы с готовыми решениями:

Выделение текста под курсором в QWebView
У меня есть QWebView объект, я устанавливаю туда html-ну. при клике правой кнопкой мыши я показываю...

Cannot convert 'QWebView' to 'QWebView*' in assignment
#include &quot;mainwindow.h&quot; #include &quot;ui_mainwindow.h&quot; QWebView browser; ...

Подогнать размер TextBox под размер текста
Всем привет! Есть проблема. У меня получается только фиксированный размер TextBox, мне нужно чтобы...

Размер текста
import java.util.ArrayList; import android.app.ListActivity; import android.database.Cursor;...

3
6 / 6 / 1
Регистрация: 02.06.2014
Сообщений: 110
08.08.2016, 18:37  [ТС] 2
Пошарил по зарубежному интернету, и вроде как это баг несовпадения единиц измерения монитора и принтера (я так понял). Исходя из этого вопрос - в Qt существует вообще адекватный способ вывода на печать HTML содержимого? QTextDocument уже разочаровал.
0
595 / 400 / 151
Регистрация: 01.10.2015
Сообщений: 1,175
08.08.2016, 23:16 3
Цитата Сообщение от soaup Посмотреть сообщение
и вроде как это баг несовпадения единиц измерения монитора и принтера (я так понял)
Это не баг, вполне естественно, что DPI монитора отличается от DPI принтера. Отсюда следует, что пиксель не есть абсолютная величина, размер "точки" определяется разрешающей способностью устройства отображения.

QTextDocument уже разочаровал.
Не очень понятна ваша "зацикленность" на HTML-разметке. Что вам дает этот подход? Вы генерируете документы, которые могут быть сохранены для последующего просмотра/печати через браузер? Или для вас HTML является просто способом хранения шаблонов различных документов?

По поводу QTextDocument:

вы можете создать собственный шаблон, унаследовавшись от QAbstractTextDocumentLayout, а в наследнике можно отрисовать все, что угодно, при этом не "заморачиваясь" на поддерживаемое в Qt подмножество селекторов и атрибутов CSS, тем более, что QPrinter предоставляет метод для получения разрешения принтера и области печати, и вы можете динамически рассчитать все отступы и смещения. Но этот подход годится только для ограниченного количества документов, вы (судя по предоставляемым скринам) делаете АРМ для регистратуры, и разного рода бланков будет много.

И вероятно, я не ошибусь, предположив, что вы "плотно" работаете с какой-нибудь SQL БД в качестве источника данных. Тогда проще работать с каким-либо генератором отчетов, имеющим языковую привязку к "плюсам", а еще лучше — непосредственно к Qt, по типу того же Lime Report`а.
1
6 / 6 / 1
Регистрация: 02.06.2014
Сообщений: 110
09.08.2016, 09:13  [ТС] 4
Или для вас HTML является просто способом хранения шаблонов различных документов?
Именно так. Эталонный документ форматируется в LibreOffice. Потом сохраняется в HTML. Сохраняется с косяками, но ничего такого чего нельзя было бы поправить. И когда HTML шаблон можно будет распечатать через браузер и результат будет удовлетворять, то предполагается вставлять в программу.
И вероятно, я не ошибусь, предположив, что вы "плотно" работаете с какой-нибудь SQL БД в качестве источника данных.
Ну нет, в моем случае нет необходимости.

Есть способ привести DPI монитора к DPI принтера? Lime Report пока не посмотрел, но как долго я буду переносить туда свои шаблоны? Если у меня там и таблицы и многоуровневые списки есть.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.08.2016, 09:13

размер текста
Вот нарисовал некий текст: SetBkColor(hdc,0); SetTextColor(hdc,color);...

Размер текста из array
Подскажите как задать размер тексту из ресурсов array =data public class TitleAdapter extends...

GroupBox размер текста
Может кто встречал такую проблему: при изменение (программном) размера шрифта в свойствах...

Размер текста на кнопке
Как можно разместить текст на всю кнопку? Размер кнопок у меня маленький поэтому нужно чтобы шрифт...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru