3

我想我不知道要使用什么搜索词,这应该很简单......我要确定字符串的宽度(以英寸为单位)。

        Dim sSize As System.Drawing.SizeF
        Dim fFont As New Font("Arial", 12)
        sSize = Me.CreateGraphics().MeasureString(txtAddr.Text, fFont)

这里的单位是 IDE 使用的任何单位。我不确定这是一个常数值,如果是转换应该很简单。

无论如何,当使用指定字体以 100% 打印文本时,我想将返回的单位转换为英寸。我怎么做?


谢谢汉斯!

        Dim boxGraphics As Graphics = txtAddr.CreateGraphics()
        Dim sSize As System.Drawing.SizeF = boxGraphics.MeasureString(txtAddr.Text, New Font("Arial", 12))
        Dim iInches As Single = sSize.Width / boxGraphics.DpiX

DYMO LabelWriter 450 代码的开始,供那些可能感兴趣的人使用:

        ' project ref to DYMO.Label.Framework .net 3.5/4
        ' Imports DYMO.Label.Framework
        Dim olabel As Label
        olabel = Label.Open("H:\INFO\Forms\ADMIN\Dymo Labels\APCDAddress.label")
        olabel.SetObjectText("ADDRESS", txtAddr.Text) ' case sensitive
        olabel.Print("\\PC3090-117\DYMO LabelWriter 450 Twin Turbo")
        MsgBox("Printed")

我将添加代码来处理可能对于标签来说太大的地址文本,因此是 OP。DYMO 布局可以设置为缩小以适应文本,但在制作地址标签时有实际限制。

4

1 回答 1

3

来自@HansPassant:除以 Graphics.DpiX

   Dim boxGraphics As Graphics = txtAddr.CreateGraphics()
    Dim sSize As System.Drawing.SizeF = boxGraphics.MeasureString(txtAddr.Text, New Font("Arial", 12))
    Dim iInches As Single = sSize.Width / boxGraphics.DpiX
于 2015-04-10T21:03:32.147 回答