QuickRep 还比较方便,你可以试一试。有关的资料就看帮助好了。另外,你可以直接在打印机的 canvas 上自己画出你所需要的东西,更为灵活,但需要自己编程的地方也更多。

解决方案 »

  1.   

    在打印机的canvas上可以画不同的字体吗?
    主要用到哪些方法和属性?
      

  2.   

      在打印机上打印的方法和在显示器上显示的方法是一样的,即它们的Canvas的用法是一样的,不同的是,显示器上可以不用考虑打印分页的问题(因为有滚动条),也就是说显示区域可以是无限的,但在打印机上可打印的区域是有限,超过这个区域的内容是不可见的。
       事实上,打印对象的Canvas只有在打印时才可以访问(在Printer.BeginDoc和EndDoc之间才有效),而且Canvas代表的是当前的打印页的可打印区域,用Printer.NewPage方法后,Canvas代表的是新的一页的可打印区域。因此可以将打印理解成在多个画布上打印一个显示的不同部分。有这样的说明,你也许会明白为什么打印程序难写的地方,难就难在打印分页上,特别是表格的分页是比较麻烦的。
       如果没有分页的问题,那打印和在屏幕上作图是一样的简单,否则,能用现成的控件就用现成的吧(除非你有充分的自信)。
      

  3.   

    如果查询一下过去的问题,一定能找到一大把解决办法
    下面给出其中几个:
    在本论坛下载EReport(有源码) 
    在http://www.nccsoft.com/delphi/vcl_lst/grids1.htm去下载ehlib1.52(有源码) 
    到www.digital-metaphors.com去找ReportBuilder Pro for Delphi 5(有源码) 
      

  4.   

    说得很好,分页该怎么判断呢,用什么方法?
    另外EReport该怎么使用呢?
      

  5.   

    Find and Try to download Visual Report(VR) Component from Internet web site.