获取特定字体configuration中文本的实际宽度?

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

我使用从这里得到的clsBarcode类来渲染条形码使用Excel VBA生成代码128条形码

现在我的问题是,我不能告诉条码的宽度。

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

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

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

所以我有点卡在这里 如果我只是将我的图表调整为任何条形码的可能长度的大小,那么我的条形码图像中会留下大量浪费的空白。 而且由于我在2“x4”的贴纸上打印这些条形码,你可以猜测空间是非常宝贵的。

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

我怎样才能找出这些字符的mafChrWid(i)值?

谢谢 !

对于这个function,你需要命名一个单元格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