Печать
От: valden Украина http://ua.linkedin.com/in/dvalchuk
Дата: 14.11.03 13:04
Оценка:
Трабла вот в чём...
печатаю текст по странице А4 или А5 — соответственно...
Печатаю я печатаю ... — типа всё ок...
И тут решил попробовать на удалённом принтере...
получились грабли
Размер листа типа уменьшился раза в 4 ((
Эффект кароче тотже как будто я задал размер бумаги дето А8 -(если такой есть канешна )

void CPrintWin32::PrintTxt(char* str,long xx,long yy,unsigned long style,long sz,const char * fml)
{
    int fnWeight=100;
    DWORD m_bItalic=FALSE;
    if(style & style_bold)
        fnWeight=700;
    if(style & style_italic)
        m_bItalic=TRUE;
    long height = -MulDiv(sz, GetDeviceCaps(m_hPrintDC,LOGPIXELSY), 72);
            
    HFONT m_hFont = CreateFont(height,///height
        0,///weight
        0,///standart {naklon stroki}
        0,///standart {naklon osi bukv}
        fnWeight,///bold
        m_bItalic,///italic
        FALSE,///standart {pod4erk}
        FALSE,///standart {pere4erk}
        RUSSIAN_CHARSET,//DEFAULT_CHARSET ,
        OUT_DEFAULT_PRECIS,///standart 
        CLIP_DEFAULT_PRECIS,///standart 
        DRAFT_QUALITY,///standart 
        DEFAULT_PITCH | FF_MODERN,///standart
        LPCTSTR(fml));///name 
    if (!m_hFont)
    {
        return ;
    }
    
    RECT m_PageRect;
    m_PageRect.left =xx;
    m_PageRect.top  = yy;
    m_PageRect.right = GetDeviceCaps (m_hPrintDC, PHYSICALWIDTH) - 
        GetDeviceCaps (m_hPrintDC, PHYSICALOFFSETX);
    m_PageRect.bottom = GetDeviceCaps (m_hPrintDC, PHYSICALHEIGHT) - 
        GetDeviceCaps    (m_hPrintDC, PHYSICALOFFSETY);
    

    
    HFONT hOldFont = (HFONT)SelectObject(m_hPrintDC, m_hFont);
    
    DrawText(m_hPrintDC, 
        str, 
        strlen(str),
        &m_PageRect,
        DT_LEFT);
    
    
    SelectObject(m_hPrintDC, hOldFont);

    DeleteObject(m_hFont);
}


Это код функции вывода текста...
С уважением Denys Valchuk

IMHO чем больше мнений тем оптимальней выбор варианта... :)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.