谁教我怎么用PRINTER,急!

解决方案 »

  1.   

    快速打印多个拷贝
       当以TrueType字体打印一个文档时,系统将下载打印机需要的字体,这样做将花费很长的时间。你可以通过在一个打印机文档中打印所有的拷贝实现快速打印多个拷贝内容:
        For i = 1 To num_copies
            'Print the document here...        Printer.NewPage
        Next i
        Printer.EndDoc
       打印灰色行和区域   黑白打印机不能打印灰色行,但是能通过发抖处理来创建灰色区域。为了创建围绕一个区域的一个灰色边界,使用DrawStyle=vbInvisible(5)来绘制一个窄灰色框,这样就没有了边界。   设置打印的边界   使用打印的scale熟悉来设置边界。设置了这个属性后,坐标(0,0)就映射到你需要加边的地方。比如,下面的代码设置左边界为0.5英寸,上边界为0.75英寸。然后再乘以1440转换为twip。   Printer.ScaleLeft = -0.5 * 1440 
    Printer.ScaleTop = -0.75 * 1440 
    Printer.CurrentX = 0 
    Printer.CurrentY = 0   很遗憾,打印机不能精确地按照你所想的进行打印。试一试使用下面的命令在左上角打印一个1英寸大小的方块:   Printer.Line (1440, 1440)-Step(1440, 1440)   看看偏离了多少。试一试多打印几次,如果发现打印机有一定规律的偏离,你就可以按照一定的差额进行增减来达到最佳的效果。   提供打印预览   建立打印程序时,先设置一个要绘制的对象做为参数,然后传递给程序一个打印的对象。   为了实现预览效果,传递给程序一个隐藏PictureBox。然后,根据需要的比例,使用PaintPicture拷贝这个隐藏图形到一个可见的PictureBox。在隐藏PictureBox上按照全尺寸绘制图形,首先允许你按比例决定了字体,并且,也实现了不失真地完成其他图形的描述
      

  2.   

    Set card = DBEngine.OpenDatabase("card.mdb")
    Set typers = card.OpenRecordset("select * from inbill order by num")
    typers.MoveFirst
    Do Until typers.EOFPrinter.Font = "·ÂËÎ_GB2312"
    Printer.FontSize = 11
    Printer.Print Tab(30 - k); Mid(day, 1, 4); Tab(38 - k); Mid(day, 5, 2); Tab(43 - k); Mid(day, 7, 2)
    Printer.Print
    Printer.Print Tab(54 - k); Trim(typers!Name)
    Printer.Print
    Printer.Print Tab(54 - k); changezh(typers!shangnum)
    Printer.Print
    Printer.Print Tab(54 - k); openbank(typers!shangnum)
    Printer.Print
    Printer.Print Tab(15 - k - 2); ChMoney(Val(Format((typers!money), "###0.00")))
    mystr = Format(typers!money, "###0.00")
    mystr = numspc(mystr)
    Printer.FontSize = 9
    Printer.Print Tab(68 - k); mystr
    Printer.FontSize = 11
    Printer.Print
    Printer.Print
    Printer.Print
    Printer.Print
    Printer.Print Tab(1); typers!num typers.MoveNext
    loop