【问题标题】:C# windows form - Is it possible to programmatically determine text size through the metric system? If so, how?C# windows form - 是否可以通过公制以编程方式确定文本大小?如果是这样,怎么做?
【发布时间】:2017-12-02 03:15:45
【问题描述】:

您知道将文档格式化成一张小卡片的尺寸是多么尴尬吗?我正在尝试为自己编写一个程序,以便我能够做到,部分原因是我的字迹不好,我需要写一些实体的“谢谢”卡片,部分原因只是为了体验。

我计划这样做的方法是制作一个 C# windows 窗体并根据卡片的尺寸调整富文本框的大小。然后我会将它转换成一个 rtf 文件,这样我就可以在一台实际有打印机的计算机上打印出来。问题是,据我所知,您只能使用像素作为度量来调整大小。像素并不是衡量您要在纸上打印的东西的一种非常一致的方法,因为它们完全取决于您的屏幕分辨率。

如何使用有形的度量(例如厘米)来调整大小?

【问题讨论】:

  • 您可以将其导出为 pdf 格式吗?有一些 pdf c# 库,如果我没记错的话,一旦您指定了文件尺寸(例如字母、A4 等),pdf 像素就会具有静态高度/宽度......
  • 您可以确定屏幕 dpi 并从那里计算。另外:您可以设置 Graphics.PageUnit。
  • @user3739842 我不完全确定 PDF 文件是如何工作的,tbh。我通常不理会它们,因为我更喜欢制作可编辑的文档。

标签: c# winforms resize size units-of-measurement


【解决方案1】:

位图测量指标是像素。位图格式有一段元数据,它是 DPI(每英寸点数),用于通过简单的公式将像素大小转换为厘米大小:

厘米 = 像素 / dpi * 2.54 在构建 Image 类时,您必须使用 SetPropertyItem 方法设置元数据:

PropertyTagResolutionUnit - 将此设置为“3”表示厘米 PropertyTagXResolution - 只要 PropertyTagResolutionUnit 以厘米为单位,本质上就是 X DPI PropertyTagYResolution - 只要 PropertyTagResolutionUnit 以厘米为单位的 Y DPI

点击此链接了解有关 PropertyTag 值的更多信息: https://msdn.microsoft.com/en-us/library/ee491082.aspx

http://zigmaweb.com

【讨论】:

    猜你喜欢
    • 2013-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-25
    • 2012-06-19
    • 1970-01-01
    相关资源
    最近更新 更多