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:
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();
}
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
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;
		}
	 }
}
et je l'utilise comme suit:

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 ");
}
puis pour lancer l'impression j'appelle:


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
void fin_imprimer(void)
{
	dc.EndPage();
	dc.EndDoc();
}
et là je n'obtiens pas mes tabulations


/**********************************************************/

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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
dc.TextOut(x_texte,y_texte,ptr_chaine);
mais voila si j'imprime une chaine longue alors j'ai un retour à la ligne à mis chemin et à chaque fois... pourquoi?

merci pour votre aide, j'ai essayé d'être le plus clair possible mais je sais pas si j'y suis arrivé...