在VB6一个打印机Unicode打印(Unicode printing on a PRINTER i

2019-08-03 03:09发布

我想打印一个Unicode(中国)字符串的打印机上(当然,实际上的PDFCreator),但我得到的是字符的垂直打印。

我用的是TextOutW进口功能gdi32.dll

TextOutW dest.hDC, x, y, StrConv(szText, vbUnicode), Len(szText)

如果我尝试打印“0.12”(如果我打印的字符中国,我得到了相同的结果反正),我得到

0
.
1
2

如果我使用dest.Print功能,我无法打印的Unicode。

无论如何, TextOutW奇妙的作品在屏幕上。

谁能帮我解决这个问题?

Answer 1:

是什么的定义szText ? 它是一个字符串,VB6? 在这种情况下,尝试

Private Declare Function  Lib "gdi32" Alias "TextOutW" ( _
  ByVal hdc As Long, ByVal x As Long, ByVal y As Long, _
  ByVal lpStringU As Long, ByVal nCount As Long) As Long  

TextOutW dest.hDC, x, y, StrPtr(szText), Len(szText) 

注意

  • StrPtrStrConv(... , vbUnicode)
  • DeclareTextOutW具有ByVal lpStringU As Long


文章来源: Unicode printing on a PRINTER in VB6