说明:不敢随便发高分贴,怕没人解决分浪费了(本来分就不多),如果有哪位高手将我的问题解决,我将此贴的10分以及这篇帖子http://community.csdn.net/Expert/topic/3455/3455994.xml?temp=.5988886的100分相送(此贴就是因为没人回答所以浪费了宝贵的100分),好了,问题如下:
我要做一个套打的程序,就是打印一副扫描的图片,图片是表格形式的,同时从数据库中调出表格的对应数据也显示并打印出来,相当于两层,表格为底,数据在上面显示,请问有何好的方法可以处理,需要具体思路,代码更好,请不要回贴时只回一句"fastreport"了事。

解决方案 »

  1.   

    你用什么控件做?quickreport?或者自己写一个也不是难事,用图元文件(TMETAFILE)绘制好再打印到打印机。网上有一个什么TPRINTVIEW类,你可以参考一下他的写法。
      

  2.   

    要看你使用哪种方式打印。如果自己控件打印机就将图片画到打印画布上,然后Draw相应的文字。如果使用第三方控件,可以将图片作为背景(一般的第三方控件都支持)。
    也可以使用网页的方式,将图片作为表格的背景图。
      

  3.   

    用form打印不行吗.我就曾今用过.
      

  4.   

    搂住,根据我制作打印单据的经验,我用的是fastreport, 你可以实现在fastreport上放一个ole object控件加入你扫描好的单据图片,调整好位置,然后开始在图片上排版数据显示区,你既然完全按照实际单据方式来处理,就不不要忘了我们拿到一张实际的单据的时候,单据里面的数据区的行已经制定好了,不过你有没有填写数据,比如说,可以填写8行数据,那么如果要填写15行数据,你能让实际的单据自动拉宽吗?不能,所以你要实现在数据显示区也同样制定要比如说8行的显示区,没有操作8行也是一张不缩放的单据,超过8行的又打印一张8行数据区的单据,以此类推,为了实现这个功能,你要在fastreport的字典定义好显示数据变量,然后在fastreport加载数据的时候要自己编写代码控制,如果你不会写fastreport控制代码在找我
      

  5.   

    谢谢楼上的,我觉得我做的这个东西还没有那么复杂,而且我想用rave也应该可以解决(我这两天一直在找关于rave方面的资料),或者你能把你的东西发一份给我参考吗?我的email:[email protected]
      

  6.   

    form打印?这个想法倒是蛮有创意的……
      

  7.   

    不过用form打的话比例和大小不如用报表好控制哦
      

  8.   

    用fastreport3.0,page有一個Backpicture屬性。你就是要加一個底紋圖片對嗎?
      

  9.   

    楼上的还是没有明白我的意思,是以扫描的单据图片为背景,以数据库中调出的相关数据用text填充到各个栏内
      

  10.   

    我是直接用printer.Canvas.Draw()画图,printer.Canvas.textout()打数据,不过我打的是小图,楼主可以考虑一下,写一个函数。只要把位置处理好就行了
      

  11.   

    对,我现在已经实现了如何动态修改文本框的内容,从数据库取数据填到相关栏对我来说也是小case,麻烦就麻烦在栏数太多而且不好调整,如果没有更好的方法我就只好手动调了
      

  12.   

    好,谢谢楼上各位的关心,请gobiz(拔剑容易收剑难) 、Sorder(剑客)、navy(navy)到http://community.csdn.net/Expert/topic/3455/3455994.xml?temp=.5988886接分,另外谢谢其他的各位给我提供的思路