【问题标题】:GraphicsUnit.Point, isn't converting well to PDF... GraphicsUnit.World is, but how can I convert it to Point?GraphicsUnit.Point,不能很好地转换为 PDF... GraphicsUnit.World 是,但我怎样才能将它转换为 Point?
【发布时间】:2008-11-03 06:35:52
【问题描述】:

我在 .Net 中有一些代码可以使用 GDI+ 绘制一些文本内容。我使用 GraphicsUnit.Point 来调整文本大小。它在屏幕上运行得非常好,即使打印它也是如此。

有人要求我制作一个生成 PDF 的系统,我得到了 ComponentOne 的 PDF 控件。它有类似GDI+的接口。

问题是:字体大小不起作用。如果我使用 GraphicsUnit.Point,文本会小得多,并且文本下方会出现空白。当我使用GraphicsUnit.World时,文字还是很小,但文字下方没有多余的空白。

我想了解如何将 GraphicsUnit.World 转换为 GraphicsUnit.Point。

我们将不胜感激。

谢谢

【问题讨论】:

    标签: c# .net pdf gdi+


    【解决方案1】:

    经过一些谷歌搜索以及根据我对 GDI+ 和字符串绘图的个人经验所了解的信息,它归结为 DPI(每英寸点数)。基本上不同的设备(就 GDI+ 而言,PDF 可能是一个设备)具有不同的 DPI 值。显示器通常有类似 70 DPI 的东西。打印机使用 72。我不知道 PDF 使用什么,但它可能是 100(因为这是设备独立性的常用值,可以解释较小的文本)。

    现在,点被定义为 72 DPI。这总是正确的。当绘制到具有不同 DPI 的 PDF 时,GDI+ 应该做的是相应地转换字符串绘制。但这并不总是有效,尤其是文本。

    GraphicsUnit.World 应该(根据一些谷歌搜索)独立于设备,并且在所有设备上看起来都应该相同。

    【讨论】:

    【解决方案2】:

    你说得对,GraphicsUnit.World 在打印和屏幕上看起来都一样。我的最终解决方案是使用 GraphicsUnit.World 作为度量单位,并避开点。我仍然不知道转化率,但我估计了这个值,直到看起来还不错。

    对我而言,这已经足够了。

    【讨论】:

      猜你喜欢
      • 2021-06-21
      • 2016-05-01
      • 1970-01-01
      • 2013-07-29
      • 1970-01-01
      • 2022-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多