【问题标题】:C# PrintDocument PaperSize / FontSizeC# PrintDocument PaperSize / FontSize
【发布时间】:2011-03-30 05:42:30
【问题描述】:
  1. 在PaperSize的构造函数中,数字是什么单位?

    var ps = new PaperSize( "Custom Size", XX , YY );
    

    我正在使用 PrintDocument 进行一些打印,需要创建 9.79 厘米 x 14.75 厘米的页面尺寸(宽 x 高)。

  2. 我正在使用e.Graphics.PageUnit = GraphicsUnit.Millimeter; 我想创建一个 24 磅的字体,

    Font titleFont = new Font( STR_Arial, 24, FontStyle.Regular );
    

    这对吗?

【问题讨论】:

  • 您在使用 WinForms 吗?网络表单? WPF 还是 SilverLight?您使用 C# 的事实与您的问题无关。
  • 更正它与 C# ni 没有任何关系。抱歉刚发帖。我只是使用.NET GDI。 API 的文档没有明确指定 PaperSize 和 Font 的构造函数中整数的单位。因此迷茫。我做了一些谷歌搜索,最后在这里发帖。

标签: .net gdi


【解决方案1】:
  1. 百分之一英寸
  2. 如果您想确保以磅为单位,我认为您需要在字体构造函数中使用 GraphicsUnit.Point。

【讨论】:

  • 谢谢你给了我最接近的尺寸,所以我使用 new System.Drawing.Printing.PaperSize("Custom Size", 385, 587);受保护的覆盖无效 OnPrintPage( PrintPageEventArgs e ) { base.OnPrintPage( e ); var g = e.Graphics; g.PageUnit = GraphicsUnit. 毫米; Pen p = new Pen(Color.Red, 1);字体titleFont = new Font(STR_Arial, 24, FontStyle.Regular);笔宽是1pixel还是1mm还是什么?在我的测试中,它变得非常胖。我可以在像素(用于线条)和毫米(用于定位文本)之间来回更改 g.GraphicsUnit 吗?
  • 好的,但是对于笔?如何强制其宽度为 X Pixel 或 X mm?
  • 我相信将宽度设置为负数会强制使用一个像素线。对于其他线宽,我认为您必须实际缩放(转换)笔以获得一致的结果。我不能对第二部分发誓,但我认为这是对的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-11
  • 1970-01-01
  • 1970-01-01
  • 2011-11-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多