f_serg

Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору cmncorp Вывод на принтер на WinAPI не совсем тривиален. "Переводить" строки приходится самому. Я в свое время делал примерно так: Код: HDC pdc; HFONT font; TEXTMETRICW tm; ... pdc = GetPrinterDC(); font = SetupFont(pdc); SelectObject(pdc, font); GetTextMetrics(pdc, &tm); SetupPage(pdc, &tm); ... Y = 0; TextOut(pdc, x_offset, Y, struni, cnt); Y += char_height; | Функции SetupFont/SetupPage: Код: HFONT SetupFont(HDC hdc) { HFONT font; SetMapMode(hdc, MM_TEXT); if ((font = CreateFont(-MulDiv(10, GetDeviceCaps(hdc, LOGPIXELSY), 72), 0, 0, 0, FW_NORMAL, 0, 0, 0, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "Courier New")) == NULL) err("CreateFont() failed\n"); return font; } void SetupPage(HDC hdc, TEXTMETRIC *tm) { WORD h_res, chars_per_line; char_height = tm->tmHeight + tm->tmExternalLeading; char_width = tm->tmAveCharWidth; lines_per_page = GetDeviceCaps(hdc, VERTRES) / char_height - 1; h_res = GetDeviceCaps(hdc, HORZRES); chars_per_line = h_res / char_width - 1; x_offset = (h_res - chars_per_line * char_width) >> 1; } | Попробуй на основе этого. 
|