2013-10-18 4 views
4

지금 영수증을 인쇄하려고하는데 그래픽 모드에서 텍스트를 오른쪽 정렬하는 방법을 알 수 없습니다. 나는 두 가지 다른 것을 시도했지만, 실제로 비효율적이거나 내 상황에서는 작동하지 않습니다. 텍스트를 쉽게 맞출 수있는 방법이 있습니까? 지금 제 코드가 있습니다.인쇄 된 텍스트의 오른쪽 정렬

using (Font printFont = new Font("Courier New", 9.0f)) 
     {    
      e.Graphics.DrawString("Subtotal:", printFont, Brushes.Black, leftMargin + 80, HeightToPrint, new StringFormat()); 
      e.Graphics.DrawString(subtotal.ToString(), printFont, Brushes.Black, leftMargin + 150, HeightToPrint, new StringFormat()); 
     } 

답변

3

사용 Graphics.MeasureString Method 렌더링 된 문자열을하고 rightMargin - measuredStringWidth에 그것을 그릴 것입니다 시간을 얻을 수 있습니다.

+0

완벽하게 작동합니다. 감사합니다. – Nathan

+1

텍스트의 일부가 왼쪽에서 오른쪽이고 다른 부분이 오른쪽에서 왼쪽 인 경우 (예 : 아랍어 및 영어 텍스트는 같은 줄에 표시)에는 올바르게 작동하지 않습니다. @Chris 대답은이 경우에 잘 작동합니다 –

11

바로 텍스트를 정렬 할 수 있기 위해서는, 당신은 레이아웃 사각형 지정해야합니다

var format = new StringFormat() { Alignment = StringAlignment.Far }; 
var rect = new RectangleF(x, y, width, height); 

e.Graphics.DrawString(text, font, brush, rect, format); 

을 그리고 그 사각형 내에서 문자열을 정렬됩니다.

+0

msdn : https://msdn.microsoft.com/en-us/library/332kzs7c(v=vs.110).aspx – rockXrock

관련 문제