使用Printer对象打印文档,如何控制打印机每张打印两页?
目前,我只查到Duplex属性,这个是控制双面打印的,怎么能控制每张纸打印两页呢?我知道不是每个打印机都支持每张纸打印两页,该如何判断??如何获取当前打印机的驱动,从中是否可以查找到相关设置的蛛丝马迹?有没有人用过?

解决方案 »

  1.   

    UPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUP
      

  2.   

    貌似描述的不清楚?我的目的是每张纸(单面打印)打印两页的内容。我查找过MSDN,发现只有设置是否双面打印,每次打印几份等的设置,没有发现设置单张纸单面打印多页的设置。我觉得这个与不是每台打印机都支持这个功能有关,因此,我想上来求助看看,有没有朋友已经有过类似的经验。我觉得是否可以读取当前打印机的驱动接口,是不是有相关信息返回?这下问题应该描述的比较清楚了吧。
      

  3.   


    有没有简单的示例代码?例如,打印一个简单的TXT 文件,如果直接丢给打印机,分页什么的都不用处理。如果自己处理,涉及到读入文件,分页(分页依据?页码位置?),输出成图片(会不会有清晰度损失?),图片拼接(中间距离多大?)?打印本身是不是很耗时(打印图片比打印文字慢很多)?好多问题啊
      

  4.   

    Printer.Copies = 2
    然后再打印
    不是所有的打印机都支持。
      

  5.   

    可能每个打印机的命令不同吧,应该是你先设计好你第一页的宽度与长度,
    然后PRINTER有一个命令PrintCut的命令可以控制。
    优点:每一页的长度与宽度固定。
    缺点:当你要打印的东西少于2页的话,可能会出现很多空白的区域。
          当你要打印的东西多于2页的话,打印出来的东西会少很多。
      

  6.   

    能不能用DocumentProperties, 或AdvanceDocumentProperties之类的API函数,尝试读取当前打印机的设置,如果当前打印机支持在单张纸上打印两页,则继续;否则提示用户,当前打印机不支持这样做?上面说手工实现缩排的问题,如果能这么做,与打印机到没什么关系了,什么打印机都支持。
      

  7.   

    有没有人知道DEVMODE中dmDriverExtra放的是什么东西?这些Extra的信息,如何获取??
      

  8.   

    楼主,不要找其他方法了,
    你这个要求就是相当于WORD里的分栏,
    除了你自己通过程序来控制,不要想找什么API来解决了
    当然你可以使用其他报表组件
    还是自己写写吧,分栏也不是什么特别难的事情