阅读背景:

Graphics.DrawString的x、y的定义和纸张上的位置如何定关系

来源:互联网 
Graphics.DrawString的x、y的定义和纸张上的位置如何定关系?
是和打印机的分辨率对应,还是和纸张尺寸对应?

5 个解决方案

#1


这个是和你Graphics对象对应的.

#2


x,y是以象素区分坐标.跟打印机的分辨率有关.

#3


具体什么关系呢?

#4


x,y的位置有Graphics的两个属性决定:
1.Transform,决定画图的坐标系,向哪个方向做图
2.PageUnit决定x,y值的度量单位,根据度量单位不同x,y代表的长度不同。如果使用Millimeter,不管在什么设备上(显示器、打印机)都是按毫米做为度量单位。PageScale,决定缩放比例。

#5


如果你是打印的话
用PrintDocument的话在画到打印上时可以通过PrintPageEventArgs 中获取打印的可打印区域
此时Graphics一般默认的是像素,对就的是可打印区域的像素位置!

如果你是显示的话是针对的屏幕的!其实针对就是你要将它画到打印机上的话就是对应可打印区域,画到屏幕上的话它就是对应屏幕的

 /// <summary>
        /// 打印设置对话框。
        /// </summary>
        public void Print()
        {
            
            PrintDocument p = new PrintDocument();
            p.PrintPage += new PrintPageEventHandler(this.PrintPageEventHandler);
            p.Print();
            //PrintPreviewDialog prev = new PrintPreviewDialog();
            //prev.Document = p;
            //prev.ShowDialog();
          
           
        }


        private void PrintPageEventHandler(object obj, System.Drawing.Printing.PrintPageEventArgs ev)
        {
//获取打印区域的宽度
int width = ev.PageSettings.PrintableArea.Width;
//获取打印区域的高度
int height = ev.PageSettings.PrintableArea.Height;

分享到: