Printing 在vb6中使用打印机对象打印Code128条形码(使用字体)

Printing 在vb6中使用打印机对象打印Code128条形码(使用字体),printing,vb6,code128,Printing,Vb6,Code128,我们有一些古老的vb6程序,它使用依赖于窗口字体的打印机对象创建条形码,而窗口字体可以很好地处理code39。 最近我们需要将字体切换到code128,经过一些工作后,我们将输入转换为code128格式字符串,并尝试使用相同的方法打印,但是,打印输出似乎不正确(奇怪的是,当我们将转换后的字符串复制到excel并使用相同的code128字体打印出来时,它显示和打印得非常完美) 我想知道是否有人有同样的经历,如果有,谁能切碎一些灯吗 下面是我们用来打印条形码的代码 dim sOrg as strin

我们有一些古老的vb6程序,它使用依赖于窗口字体的打印机对象创建条形码,而窗口字体可以很好地处理code39。 最近我们需要将字体切换到code128,经过一些工作后,我们将输入转换为code128格式字符串,并尝试使用相同的方法打印,但是,打印输出似乎不正确(奇怪的是,当我们将转换后的字符串复制到excel并使用相同的code128字体打印出来时,它显示和打印得非常完美)

我想知道是否有人有同样的经历,如果有,谁能切碎一些灯吗

下面是我们用来打印条形码的代码

dim sOrg as string
sOrg = "12345888"

printer.fontName = "code39"
printer.print sOrg    'This prints it out perfectly

'However when we change font to code
'this returns   Í,BZx}Î   which can be copy onto Excel and print out properly
sOrg = convertTo128(sOrg)   
printer.fontName = "Code 128"
printer.print sOrg     'print out with part barcode line, part squares 

您可以使用以下项目,其中包括VB6项目和打开条形码字体


如果
Í,BZx}Î
以ascii字形打印,则打印机未使用您的Code128字体。将打印机设置为正确的设备后,使用
Printer.fontName=“code 128”:msgbox Printer.fontName
确保其设置为“code 128”。如果您看到其他内容,请检查字体列表,查看您是否使用了正确的名称:
,用于i=0到打印机。fontCount:debug。?printer.Font(i):下一步
谢谢您的输入,但我有检查,字体名称正确无误。但我们仍然会打印出部分条形码(我怀疑像Í或Î这样的元素被打印成一些正方形,而像B或Z这样的字符被转换成类似条形码的线条),这可能与windows上的语言设置有关吗?(但如果我们切换到Arial字体,似乎打印出的Í,BZx}Î是正确的)如果您将字符串打印到表单/pic框中,打印是否正确
1Í,BZx}Î
在我的code128 font=Yes中,与使用printer对象直接打印不同,它可以在图片框或文本框中以类似条形码的图像打印出来,但只有在使用form 2.0的文本框时才能正确打印(我需要使用非ascii字符;我使用的是中文窗口)。这是通过打印机对象直接打印的图像