bonjour,
je suis en train de travailler sur des fonctions d'impression tres basiques qui consistent à imprimer des lignes de textes simples.
seulement je me heurte a deux problemes.
le premier viens des tabulations, j'utilise le caractere \t mais ca m'imprime des carrés et non des tabulations.
voila ma fonction d'initialisation de l'impression:
j'ai ensuite ma fonction d'impression qui est :
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 void init_imprimante( void ) { //initialisation de l'imprimante et du contexte de peripherique CPrintDialog dlg(FALSE); dlg.GetDefaults(); dc.Attach (dlg.GetPrinterDC ()); //creation des polices de caracteres gothic12.CreateFont(-50, 0, 0, 0, FW_NORMAL, 1, 1, 0, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH | TMPF_TRUETYPE, "Letter Gothic"); times12.CreateFont(-45, 0, 0, 0, FW_NORMAL, 0, 0, 0, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH | TMPF_TRUETYPE, "Times New Roman"); courier16.CreateFont(-40, 0, 0, 0, FW_NORMAL, 0, 0, 0, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH | TMPF_TRUETYPE, "Courier New"); ZeroMemory(&di, sizeof (DOCINFO)); di.cbSize = sizeof(DOCINFO); di.lpszDocName = "Resultat test sur Titan"; dc.StartDoc (&di); dc.StartPage(); }
et je l'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 void imprime(char *ptr_chaine) //Procédure d'impression { if(global_imprimante == TRUE) { dc.TextOut(x_texte,y_texte,ptr_chaine); y_texte+=50; if (y_texte >= 3400) { dc.EndPage(); dc.StartPage(); dc.SelectObject (pOldFont); y_texte=100; } } }
puis pour lancer l'impression j'appelle:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 void imprime_fin_pas(void) { pOldFont=dc.SelectObject (&courier16); imprime("\t\t\t - OK "); }
et là je n'obtiens pas mes tabulations
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 void fin_imprimer(void) { dc.EndPage(); dc.EndDoc(); }
/**********************************************************/
ensuite j'ai un probleme de mise en page,
j'utilise une variable y_texte (initialisé a 100) pour la gestion verticale des lignes et une variable x_texte (initialisé a 20) pour l'abscisse.
x_texte ne varie jamais et est utilisé dans la fonction imprime lors du
mais voila si j'imprime une chaine longue alors j'ai un retour à la ligne à mis chemin et à chaque fois... pourquoi?
Code : Sélectionner tout - Visualiser dans une fenêtre à part dc.TextOut(x_texte,y_texte,ptr_chaine);
merci pour votre aide, j'ai essayé d'être le plus clair possible mais je sais pas si j'y suis arrivé...![]()
Partager