2013-05-13 2 views
-1

저는 Dot Net을 처음 사용하기 때문에 스케일로 측정 할 경우 폭 20mm, 높이 8mm의 사각형을 정확하게 인쇄하고 싶습니다. 나는 또한 rectangle.Can의 중간에 정확하게 텍스트를 인쇄 할 사람이 나를 어떻게 이것을 얻을 수 제안하고 싶습니까?정확한 크기의 직사각형을 C#으로 인쇄하는 방법은 무엇입니까?


이전에 분명하지 않은 점에 대해 정말 유감입니다. 나는 "PageUnits"를 잘 사용하려고 노력했다. 그러나 마진에 문제가 있습니다.

프린터 "HP LaserJet P2035n"을 사용하는 경우 정확한 여백 (8.8mm 왼쪽 및 22mm 위쪽)을 인쇄 할 수 있습니다. "Canon iR2020 PCL5e"를 사용하여 인쇄 할 경우, 8.8mm 왼쪽과 22mm 위쪽 여백을 가져야하는 잘못된 여백 (8.1mm 왼쪽 및 8.0mm 위쪽)이 발생합니다. 누군가 내가 잘못하고있는 부분을 설명 할 수 있습니까?

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Drawing; 
using System.Drawing.Printing; 
namespace ConsoleApplication6 
{ 
    class DrawShape 
    { 
     public static void DrawRec() 
     { 
      PrintDocument doc = new PrintDocument(); 
      doc.PrintPage += doc_PrintPage; 
      doc.Print(); 
     } 

     static void doc_PrintPage(object sender, PrintPageEventArgs e) 
     { 
      Graphics g = e.Graphics; 
      PageSettings PageSet = new PageSettings(); 
      float MarginX = PageSet.PrintableArea.X; 
      float MarginY = PageSet.PrintableArea.Y; 
      float x = (float)(8.8-((MarginX/100)*25.4)); 
      float y = (float)(22-((MarginY/100)*25.4)); 
      g.PageUnit = GraphicsUnit.Millimeter; 
      g.DrawRectangle(Pens.Black, x, y, 20, 8); 

     } 
    } 
} 
+0

아직 시도해 보셨나요? – tnw

답변

0

이 시작 할 수 있습니다 :

private void button1_Click(object sender, EventArgs e) 
    { 
     using (Graphics formGraphics = this.CreateGraphics()) 
     { 
      formGraphics.PageUnit = GraphicsUnit.Millimeter; 
      formGraphics.DrawRectangle(Pens.Blue, 0, 0, 20, 80); 
     } 
    } 

를 그래픽이 사각형 안에 텍스트를 그릴 객체에 그런 다음하여 drawString을 사용 할 수 있습니다.

+0

답장을 보내 주셔서 감사합니다 ... 나는 이것을 시도 할 것입니다. – Ramana