大家打印的时候是怎样排版的?先说一下我的:
我要打印文字、横线、表格,表格中含文字,要考虑到表格单元的宽度不够打印文字时,要自动分行打印,同时表格单元的高度要变化了,对了还有分页,我一下也表达不清楚,听听大家的讨论吧。

解决方案 »

  1.   

    太复杂了,涉及的问题已经超过了程序语言本身。
    曾经想开发一个“XWord”,不过已经两个月没有动作了。推一把,等着看好戏。
      

  2.   

    只有自己亲自画了。根据你的页面大小设置表格的大小,然后用DC的MoveTo、LineTo方法去画出表格。
        要自动分行的话,可以先算出你表格的宽度,然后用用
    CSize textSize=pDC->GetTextExtent(CString);得到该字符串占用的大小,用它和你的表格相比较,若是大了,再用MoveTo跳到下一行即可分行。
        分页也相同,根据你的设置,若表格大于你的页面大小,调用DC的方法开始新的一页即可。
      

  3.   

    hufeng2000(飞扬)说的我也知道,可是我现在说的主要是自动排版的问题。
    说我的,我做了一个表格类,设置好坐标、行数、列数、行宽、列宽、每个单元的文字后,用它的一个方法,传一个DC给它,让它将自己打出来,我的打印过程中只需要依次调用各个对象的方法,即可将它们一一打出来。现在表格单元的文字需要能自动换行,就是说表格单元的高度是动态的,当然一个表格的高度变化,会影响到其它表格的位置,当然还有单独的文字和横线。
    我想听听大家解决具体问题的方法和经验,非常谢谢各位捧场!!!
    每人都会有分的。呵呵,大家别误会了,我不是用分来吸引大家,只是一点小小意思回报大家的热情。
      

  4.   

    这是设计模式的问题,也就是类的划分和相互关系等问题,目的是复用、可理解、可扩展,看看设计模式一书的composite flyweight .只借鉴思路,不要照搬。
      

  5.   

    各个对象都做成COM组件,参考WORD
      

  6.   

    不用com,com的设计针对不是这种小问题,如果用Com,干脆用面向com编程好了,c#就是这个意思,有点做过头了,个人认为。不用1000分,有500分我用rose给你做个设计,大家讨论讨论就可以,其实这才是进阶的问题。
      

  7.   

    至于word,你可以单独使用其中的com对象吗,我看microsoft不见到在内部也是com的调用方式,而是外面给提供了个com接口, 叫你玩的,内部不一定。
      

  8.   

    我觉得这个问题在打印和设计上都需要,首先是作图,另外就是怎么组织各个对象了,还有就是需求了,我觉得好象很难找到平衡。
    CaptainIII(山上人) 的提议很好,但我现在可能会很难做到(否则就不是两颗星了),我会记住和慢慢学习的。
    bojinyu(沙鱼) ,我现在不做成COM都这么困难,:)
      

  9.   

    CaptainIII(山上人) 厉害,虚心受教。