à tous,
Je souhaite créer un rapport PDF depuis mon application. Pour cela j'utilise un QTExtDocument et un QTextCursor implémentés de la manière suivante :
Et j'ai créé quelques blocs me permettant d'ajouter un titre, un sous titre, une partie en HTML, ... comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 QTextDocument doc; QTextCursor cursor(&doc);
Que j'utilise comme suit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51 void ExportFile::addTitle(QTextCursor& cursor) { QTextBlockFormat format; format.setAlignment(Qt::AlignCenter); format.setBackground(QColor("lightGray")); //qDebug() << format.foreground(); //format.setForeground(QBrush(QColor(255, 0, 0))); QTextCharFormat textFormat; textFormat.setFont(QFont("Deja Vu", 14)); cursor.setBlockFormat(format); cursor.setCharFormat(textFormat); cursor.insertText(m_title); //cursor.movePosition( QTextCursor::Down ); } void ExportFile::addSubTitle(QTextCursor& cursor, QString subTitle) { QTextBlockFormat format; format.setAlignment(Qt::AlignLeft); format.setForeground(QBrush(QColor(255, 0, 0))); QTextCharFormat textFormat; textFormat.setFont(QFont("Deja Vu", 12)); cursor.setBlockFormat(format); cursor.setCharFormat(textFormat); cursor.insertText(subTitle); cursor.insertHtml("<br>"); //cursor.movePosition( QTextCursor::End ); } void ExportFile::addHtml(QTextCursor& cursor, QString html) { QTextBlockFormat format; format.setAlignment(Qt::AlignCenter); QTextCharFormat textFormat; textFormat.setFont(QFont("Deja Vu", 9)); cursor.setBlockFormat(format); cursor.setCharFormat(textFormat); cursor.insertHtml(html); //cursor.movePosition( QTextCursor::End ); }
Mon souci vient du fait que le QTextBlockFormat qui devrait s'appliquer à chaque "bloc" ne l'est pas et c'est le dernier appelé qui est pris en considération pour tous les "blocs".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 QTextDocument doc; QTextCursor cursor(&doc); // .... // .... m_title = "Fiche Ident STEP"; addTitle(cursor); addSubTitle(cursor, "SubTitle 1"); addHtml(cursor, body); // .... // ....
Je n'ai pas ce phénomène avec le QTextCharFormat qui lui est bien pris en compte lors de la création de chaque bloc.
Ai-je loupé quelque chose ?
D'avance merci pour votre aide.
++
J
Partager