我想要在一次打印中,打印出不角度的文字,如: 我要打"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
这样是错误的,我试了 ,我急不知到怎么弄

解决方案 »

  1.   

    这和在图片中打印是一个道理的。http://blog.csdn.net/wwqna/archive/2005/01/21/262629.aspx
    里面有一个函数可以把文字竖着打印到图片中去。
      

  2.   

    Begin VB.Form Form1 
       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
      

  3.   

    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
          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