2009-04-07 3 views
0

C# .net 및 GDI 인쇄 코드를 사용하여 열전 사 프린터 LIPI LWT 150으로 인쇄하고 있습니다. 그러나 글꼴 크기를 변경할 수 없습니다. . Arial 9pt 및 5pt를 사용하고 있지만 기본 크기로 나옵니다. 아무도 이것에 대해 어떤 생각을 갖고 있습니까?C# .net을 사용하여 열 인쇄 (lipi lwt 150)에서 글꼴 크기를 변경하는 방법

이 같은 C# 코드를 사용하고 있습니다 : 그것은 임의의 글꼴을 지원하지만, 두 붙박이 고정 폭 글꼴을하지 않는 것처럼 보이는 printer specification을 바탕으로

public frmSale() 
     { 
      InitializeComponent(); 
      printingDoc.PrintPage += new PrintPageEventHandler(Form_PrintPage); 
     } 

//initalizing print document 
private void PrintSettings() 
{ 

    printingDoc.DefaultPageSettings.Margins = new Margins(3, 3, 3, 3); 
    PaperSize pSize = new PaperSize(); 
    pSize.Width = 275; 
    printingDoc.DefaultPageSettings.PaperSize = pSize; 

    // Claculating the PageWidth and the PageHeight 
    PageHeight = printingDoc.DefaultPageSettings.PaperSize.Height; 
    PageWidth = printingDoc.DefaultPageSettings.PaperSize.Width; 
    // Claculating the page margins 
    LeftMargin = printingDoc.DefaultPageSettings.Margins.Left; 
    TopMargin = printingDoc.DefaultPageSettings.Margins.Top; 
    RightMargin = printingDoc.DefaultPageSettings.Margins.Right; 
    BottomMargin = printingDoc.DefaultPageSettings.Margins.Bottom; 
    printAreaWidth = PageWidth - RightMargin - LeftMargin; 

} 

private void Form_PrintPage(object o, PrintPageEventArgs e) 
//Here we Begin All the printing Process... 
{ 

     PrintSettings(); 
     CurrentY = (float)printingDoc.DefaultPageSettings.Margins.Top;//0; 
     PrintEstHeader(e.Graphics); 
     DrawEstGridData(e); 

} 

//Printing Function 
private void PrintEstData(Graphics g, string stringData, StringAlignment alignment, Font fnt, Color clr, bool newLine)//,int starting,int maxWidth) 
{ 
    StringFormat stringFormat = new StringFormat(); 
    stringFormat.Trimming = StringTrimming.Word; 
    stringFormat.FormatFlags = StringFormatFlags.NoWrap | 
     StringFormatFlags.LineLimit | StringFormatFlags.NoClip; 

    stringFormat.Alignment = alignment; 

    RectangleF Rect = new RectangleF((float)LeftMargin, CurrentY, 
         (float)PageWidth - (float)RightMargin - (float)LeftMargin, 
         g.MeasureString(stringData, fnt).Height); 

    g.DrawString(stringData, fnt, 
     new SolidBrush(clr), 
     Rect, stringFormat); 

    CurrentY += newLine ? g.MeasureString(stringData, fnt).Height : 0; 
} 

private void PrintEstHeader(Graphics g) 
{ 

    PrintEstData(g, "----------------------------------------------", StringAlignment.Near, new Font("Arial", 9), Color.Black, true);//,LeftMargin,printAreaWidth); 

    PrintEstData(g, "Estimate" + " " + "Rate :" + ncRate.Value.ToString("0.00"), StringAlignment.Near, new Font("Arial", 9, FontStyle.Bold), Color.Black, true);//, LeftMargin, 76); 

    PrintEstData(g, "----------------------------------------------", StringAlignment.Near, new Font("Arial", 9), Color.Black, true);//, LeftMargin, printAreaWidth); 
    PrintEstData(g,"|ITEM |"+"WEIGHT|"+ "STN WT|"+"M.C. %|"+"Total|", StringAlignment.Near, new Font("Arial", 5), Color.Black, true);//,LeftMargin,42); 
    PrintEstData(g, "----------------------------------------------", StringAlignment.Near, new Font("Arial", 9), Color.Black, true);//, LeftMargin, printAreaWidth); 
} 

답변

0

. 프린터에 비트 맵을 인쇄하거나 사용자 문자를 만들 수 없다면 글꼴 A 또는 글꼴 B를 선택하는 것 이상의 작업을 수행 할 수 있을지 의심 스럽습니다.

+1

답변에서 링크가 끊어졌습니다. –

관련 문제