2016-08-02 99 views
2

我正在打印條形碼,並且作爲該過程的一部分,我有一個Chart對象,它上面有一個文本框。獲取特定字體配置中文本的實際寬度?

我使用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)值?

謝謝!

回答

5

對於此功能,您需要命名單元格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 
相關問題