本文介绍了在VB6中的PRINTER上进行Unicode打印的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试在打印机(实际上是PDFCreator)上打印Unicode(中文)字符串,但是我得到的只是垂直打印的字符。
I'm trying to print a Unicode (Chinese) string on a printer (well, actually PDFCreator) but all I get is a VERTICAL print of the characters.
我使用从 gdi32.dll
导入的 TextOutW
函数:
TextOutW dest.hDC, x, y, StrConv(szText, vbUnicode), Len(szText)
如果我尝试打印 0.12(如果我打印汉字,无论如何我都会得到相同的结果),我得到
And if I try to print "0.12" (if I print Chinese characters, I get the same result anyway), I get
0
.
1
2
如果我使用 dest .Print
函数,我无法打印Unicode。
If I use the dest.Print
function, I am not able to print Unicode.
无论如何, TextOutW
有人可以帮我解决这个问题吗?
Can anyone help me solve this?
推荐答案
szText
的解释是什么?它是VB6字符串吗?在这种情况下,请尝试
What is the definition of szText
? Is it a VB6 string? In which case try
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)
注意
-
StrPtr
不是StrConv(...,vbUnicode)
-
为
具有TextOutW
声明ByVal lpStringU长
StrPtr
notStrConv(... , vbUnicode)
Declare
forTextOutW
hasByVal lpStringU As Long
这篇关于在VB6中的PRINTER上进行Unicode打印的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!