我想要在一次打印中,打印出不角度的文字,如: 我要打"vb 6.0 ",是横着的,"vb 我爱你!"要竖着的记住是一次打印不要设置Printer.Orientation = 1 ,
Printer.Orientation = 2,
这种设置在一次打印中只能设置一次,不能设置两次的,比如
Printer.Orientation = 1
printer.print "vb 6.0"
Printer.Orientation =2
printer.print "vb 我爱你!" printer.enddoc
这样是错误的,我试了 ,我急不知到怎么弄
Printer.Orientation = 2,
这种设置在一次打印中只能设置一次,不能设置两次的,比如
Printer.Orientation = 1
printer.print "vb 6.0"
Printer.Orientation =2
printer.print "vb 我爱你!" printer.enddoc
这样是错误的,我试了 ,我急不知到怎么弄
里面有一个函数可以把文字竖着打印到图片中去。
BackColor = &H00000000&
Caption = "旋转文字演示"
ClientHeight = 6480
ClientLeft = 1140
ClientTop = 1515
ClientWidth = 6990
LinkTopic = "Form1"
PaletteMode = 1 'UseZOrder
ScaleHeight = 6480
ScaleWidth = 6990
Begin VB.VScrollBar VScroll1
Height = 5535
Left = 6600
Max = 360
TabIndex = 2
Top = 0
Width = 375
End
Begin VB.PictureBox Picture1
BackColor = &H80000007&
Height = 5535
Left = 0
ScaleHeight = 5475
ScaleWidth = 6555
TabIndex = 1
Top = 0
Width = 6615
End
Begin VB.CommandButton Command1
Caption = "退出"
BeginProperty Font
Name = "宋体"
Size = 9
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 495
Left = 2880
TabIndex = 0
Top = 5880
Width = 1215
End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
Private Declare Function CreateFont Lib "gdi32" Alias "CreateFontA" (ByVal H As Long, ByVal W As Long, ByVal E As Long, ByVal O As Long, ByVal W As Long, ByVal I As Long, ByVal U As Long, ByVal S As Long, ByVal C As Long, ByVal OP As Long, ByVal CP As Long, ByVal Q As Long, ByVal PAF As Long, ByVal F As String) As Long
Private Declare Function SelectObject Lib "gdi32" (ByVal hDC As Long, ByVal hObject As Long) As Long
Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
Const FW_NORMAL = 400
Const WAngle = 16
Const PI = 3.14159625
Const PI180 = PI / 180#
Private Sub DrawRotatedText(ByVal FonthDC As Object, ByVal txt As String, ByVal X As Single, ByVal Y As Single, ByVal font_name As String, ByVal size As Long, ByVal W As Long, ByVal E As Long, ByVal I As Boolean, ByVal U As Boolean, ByVal S As Boolean)
Dim creatfont As Long
Dim oldfont As Long
size = FonthDC.ScaleY(size, vbPoints, vbPixels)
creatfont = CreateFont(size, 0, E, E, W, I, U, S, 136, 0, WAngle, 0, 0, font_name)
oldfont = SelectObject(FonthDC.hDC, creatfont)
'显示文字
FonthDC.CurrentX = Picture1.Width / 2
FonthDC.CurrentY = Picture1.Height / 2
FonthDC.ForeColor = QBColor(10)
FonthDC.Print txt
'保存当前文字状态
creatfont = SelectObject(FonthDC.hDC, oldfont)
'释放资源
DeleteObject creatfont
End SubPrivate Sub Command1_Click()
End
End Sub
Private Sub VScroll1_Change()
Picture1.Cls
DrawRotatedText Picture1, "WEIJIANGJIANG", 0, 0, "黑体", 20, FW_NORMAL, 10 * VScroll1.Value, False, False, False
End Sub
ByVal X As Single, ByVal Y As Single, ByVal font_name As String, _
ByVal size As Long, ByVal W As Long, ByVal E As Long, ByVal I As Boolean, _
ByVal U As Boolean, ByVal S As Boolean)
Dim creatfont As Long
Dim oldfont As Long
creatfont = CreateFont(size, 0, E, E, W, I, U, S, 136, 0, WAngle, 0, 0, font_name)
oldfont = SelectObject(FonthDC.hDC, creatfont)
Printer.CurrentX = 500 'Picture1.Width / 2
Printer.CurrentY = 500 'Picture1.Height / 2
Printer.ForeColor = QBColor(10)
Printer.Print txt
Printer.EndDoc
'保存当前文字状态
creatfont = SelectObject(FonthDC.hDC, oldfont)
'释放资源
DeleteObject creatfont
End SubPrivate Sub Command1_Click()
DrawRotatedText Printer, "WEIJIANGJIANG", 0, 0, "黑体", 20, FW_NORMAL, 900, False, False, False
End Sub