vba - 获取特定字体配置中文本的实际宽度?

标签 vba excel barcode

我正在打印条形码,作为该过程的一部分,我有一个图表对象,上面有一个文本框。

我使用从这里获得的 clsBarcode 类在其上渲染条形码 Generating Code 128 Barcodes using Excel VBA

现在我遇到的问题是我无法分辨条形码的宽度。

我在该图表对象上生成条形码,然后将图表导出为 jpeg 文件。我一直使用固定大小的图表对象,但现在我尝试打印不同大小的条形码,并且必须调整图表对象以匹配条形码大小,否则它会被剪切。

我在这里找到了一个 strWidth 函数 http://www.ozgrid.com/forum/showthread.php?t=94339

不幸的是,它使用常用字体的查找表。表中没有 code128.fft 的条目。

所以我有点被困在这里了。如果我只是将图表的大小调整为任何条形码可能的长尺寸,那么我的条形码图像中会出现大量浪费的空白。由于我将这些条形码打印在 2"x4"贴纸上,因此您可以猜测空间非常宝贵。

我认为最好的方法是使用 code128 字符的值填充查找表。条形码类别表示正在使用字符 32 至 126 和 200 至 211。

如何计算出这些字符的 mafChrWid(i) 值?

谢谢!

最佳答案

对于此功能,您需要将单元格命名为 BARCODE 并设置其字体 code128.fft。

Function getBarCodeWidth(strBarcode As String) As Double

    With Range("BARCODE")
        .Formula = "=Code128_Str(" & strBarcode & ")"
        .Worksheet.Columns(.Column).AutoFit
        getBarCodeWidth = .Width
    End With

End Function

关于vba - 获取特定字体配置中文本的实际宽度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38710709/

相关文章:

excel - vba 宏读取带分隔和非分隔空格的字符串

string - 向下复制找到的字符串 1 单元格

python - 在python中压缩excel文件

javascript - 使用移动设备在桌面浏览器中扫描条形码

安卓。如何从我的应用程序中读取 Aztec 代码?

java - 通过android studio将嵌入式条形码扫描仪添加到 fragment 到我的应用程序中

vba - Excel vba 仅杀死指定的扩展名

excel - 运行时错误 '1004' : Application Defined or Object-Defined Error

vba - 制作包含日期的文件名(VBA)

c# - 从 c# Winform 运行 20 分钟的 Excel 宏