小弟最近在做一个收费收据打印的程序,打印纸是带孔的纸带。一张张收据连在一起,打印时纸往前 单向流动。我用CDC类写的打印代码。现在碰到很郁闷的问题:
当我打印完一张收据时,我结束打印任务调用EndDoc(),这时打印纸就自动退出来,我要不调用EndDoc(),它就不打印了。而我的目的是打印一个收据后打印纸停下,下次打印时从下张收据纸开始打印。请问各位,这用CDC类能实现吗?如果不能,那我应该怎么办?我每次只打印一张收据,谢谢各位帮忙了,最好能给出代码。

解决方案 »

  1.   

    MaxPage没设置  有关系么?
      

  2.   

    CPrintInfo的MinPage 和 MaxPage分别指开始页和结束页
    还有,这句指令有没有?
    dc.EndPage(); //通知打印机驱动程序页结束
      

  3.   

    http://www.vczx.com/article/show.php?id=396
    http://www.lzu.edu.cn/netteach/jiaochen/vc++5.0/vc++5.0/chap8/chap8_6.htm
      

  4.   

    http://www.yesky.com/20010406/167291.shtml
      

  5.   

    这个问题我也遇到过
    看看这篇文章
    http://www.vczx.com/article/show.php?id=395
    相信能给你些启发
      

  6.   

    我知道有两种方法,但都有问题,一种是OpenFile的方法,直接打开LPT1端口,但是打印文字
    还可以,图形就不成了,而且不支持联网打印机;还有一种使用假脱机方式将传向打印机的数据更改,去掉其中的换页符,但是问题是针式打印机打印结果不正确,适用于喷墨打印机。
      

  7.   

    单起线程,重载OnPrint(CDC* pDC, CPrintInfo*),死等数据,怎么样?
      

  8.   

    不行,不是重载的问题,而是打印机载EndPage和EndDoc之后自动换页,是系统的功能,
    我再试验自定义页面大小为一行文字看看可不可行。