我是Dot Net的新手,我想打印一个宽度为20毫米,高度为8毫米的矩形,如果我用刻度测量的话。我也想在矩形的正中间打印文本。任何人都建议我如何实现这个目标?
我很抱歉早些时候不清楚。我尝试过使用“PageUnits”工作正常。但是,我的边距有问题。
如果我使用打印机“HP LaserJet P2035n”,我可以打印正确的边距(左边8.8mm,顶部22mm)。如果使用“Canon iR2020 PCL5e”进行打印,我的页边距不正确(8.1mm左侧和8.0mm顶部),我应该得到8.8mm左边和22mm顶边距。有人可以解释我在哪里做错了。
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 :(得分: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);
}
}
然后,您可以在Graphics对象上使用DrawString在矩形内绘制文本。