Dim objPrinter As Printer
objPrinter.Font.Name = "宋体"我不知道长形是什么字体,所以就用"宋体"代替,你到Word的字体上选择你要使用的字体代替"宋体"应该就可以了.

解决方案 »

  1.   

    我不是要在电脑的字库中找长形,我是想打印长....长的形.我可不是用WORD,我是VB用来写的.你说的objPrinter.Font.Name = "宋体"好像是字体名.
      

  2.   

    Private Sub Command1_Click()
        P1.AutoRedraw = True
        P1.BackColor = vbWhite
        P1.FontSize = 20
        P1.Print "ddd"
        P1.AutoRedraw = False
        DoEvents
        Printer.PaintPicture P1.Image, 0, 0, P1.Width, P1.Height * 2, 0, 0, P1.Width, P1.Height
        Printer.EndDoc
    End Sub
      

  3.   

    不是这个意思,你(gaoqi5037(高岐) )说的意思是把所有的打印项目都改成细长细长的,但我需要的是像WORD、WPS一样,把个别的字改成细长细长的字。
      

  4.   

    改为图形打印方式所有的打印结果会变得失真。如果要打印长字体可以逐个像素的控制。但前提是要你会描出你需要的字体。所以我建议其他的照常打印,长的字用高崎老兄的办法。不过你的Paintpicture要用到炉火纯青。
      

  5.   

    Dim Font As LOGFONT
        With Font
            RtlMoveMemory .lfFaceName(0), ByVal "楷体_GB2312", 11
            .lfHeight = 90
            .lfWidth = 30
            .lfEscapement = 0
            .lfWeight = IIf(FontStyle = [Big Font], 700, 400)
            .lfItalic = 0
            .lfUnderline = 0
            .lfStrikeOut = 0
            .lfCharSet = DEFAULT_CHARSET
        End With    hFont = CreateFontIndirect(Font)
        hOldFont=SelectObject (Printer.hDc,hFont)
        DrawText ....
        SelectObject Printer.hDc,hOldFont
        DeleteObject hFont