如何控制打印机每张打印两页?

Dominic 2010-05-21 05:28:09
使用Printer对象打印文档,如何控制打印机每张打印两页?
目前,我只查到Duplex属性,这个是控制双面打印的,怎么能控制每张纸打印两页呢?

我知道不是每个打印机都支持每张纸打印两页,该如何判断??如何获取当前打印机的驱动,从中是否可以查找到相关设置的蛛丝马迹?有没有人用过?
...全文
992 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
Dominic 2010-05-25
  • 打赏
  • 举报
回复
顺便给MS提个意见,下个版本的系统是不是该加上这些选项?比如双面打印对老早的针式打印机就没有意义,为什么提供标准的访问?自己并非不能实现这个东西,实在比较麻烦,况且,打印机已经具备的功能,为什么要自己编码重新实现一遍,。。。。。。?
Dominic 2010-05-25
  • 打赏
  • 举报
回复
结贴了,看来只有自己写了,偷懒是不行了。
lxq19851204 2010-05-24
  • 打赏
  • 举报
回复
可能每个打印机的命令不同吧,应该是你先设计好你第一页的宽度与长度,
然后PRINTER有一个命令PrintCut的命令可以控制。
优点:每一页的长度与宽度固定。
缺点:当你要打印的东西少于2页的话,可能会出现很多空白的区域。
当你要打印的东西多于2页的话,打印出来的东西会少很多。
孤独剑_LPZ 2010-05-24
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 demon_ 的回复:]
引用 12 楼 asftrhgjhkjlkttttttt 的回复:

有没有简单的示例代码?例如,打印一个简单的TXT 文件,如果直接丢给打印机,分页什么的都不用处理。如果自己处理,涉及到读入文件,分页(分页依据?页码位置?),输出成图片(会不会有清晰度损失?),图片拼接(中间距离多大?)?打印本身是不是很耗时(打印图片比打印文字慢很多)?好多问题啊。。。。。。[/Quote]
当然会很慢,这本是复印机的缩排加手工叠印功能,非要在打印机上实现,好象只能用截图>缩排等一系列操作,很麻烦
Tiger_Zhao 2010-05-24
  • 打赏
  • 举报
回复
Printer.Copies = 2
然后再打印

不是所有的打印机都支持。
Dominic 2010-05-24
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 asftrhgjhkjlkttttttt 的回复:]

引用 1 楼 wallescai 的回复:
有个稍微复杂点的解决方案:
一般单张打印两页都是将两页内容缩小后横排打印到纸张上.
所以你可以先将两页的内容输出为图片,然后将两个图片横转90后打印到单张纸上

当然,可能还有更简单的方法.

这个办法可行
[/Quote]

有没有简单的示例代码?例如,打印一个简单的TXT 文件,如果直接丢给打印机,分页什么的都不用处理。如果自己处理,涉及到读入文件,分页(分页依据?页码位置?),输出成图片(会不会有清晰度损失?),图片拼接(中间距离多大?)?打印本身是不是很耗时(打印图片比打印文字慢很多)?好多问题啊。。。。。。
特别 2010-05-24
  • 打赏
  • 举报
回复
楼主,不要找其他方法了,
你这个要求就是相当于WORD里的分栏,
除了你自己通过程序来控制,不要想找什么API来解决了
当然你可以使用其他报表组件
还是自己写写吧,分栏也不是什么特别难的事情
孤独剑_LPZ 2010-05-24
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wallescai 的回复:]
有个稍微复杂点的解决方案:
一般单张打印两页都是将两页内容缩小后横排打印到纸张上.
所以你可以先将两页的内容输出为图片,然后将两个图片横转90后打印到单张纸上

当然,可能还有更简单的方法.
[/Quote]
这个办法可行
Dominic 2010-05-24
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 sdfkfkd 的回复:]

引用楼主 demon_ 的回复:
怎么能控制每张纸打印两页呢?


楼主问题描述不清楚
你到底是每页打印两份呢?
还是双面打印呢?
还是相当于一页纸对折分两边的分2栏打印呢?
[/Quote]
貌似描述的不清楚?

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

这下问题应该描述的比较清楚了吧。。。。
Dominic 2010-05-24
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 ok999ok 的回复:]

看看这篇文章,或许会有帮助。
[/Quote]
什么文章???
Dominic 2010-05-24
  • 打赏
  • 举报
回复
有没有人知道DEVMODE中dmDriverExtra放的是什么东西?这些Extra的信息,如何获取??
Dominic 2010-05-24
  • 打赏
  • 举报
回复
能不能用DocumentProperties, 或AdvanceDocumentProperties之类的API函数,尝试读取当前打印机的设置,如果当前打印机支持在单张纸上打印两页,则继续;否则提示用户,当前打印机不支持这样做?

上面说手工实现缩排的问题,如果能这么做,与打印机到没什么关系了,什么打印机都支持。。。。
Dominic 2010-05-22
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 zdingyun 的回复:]

引用楼主 demon_ 的回复:
使用Printer对象打印文档,如何控制打印机每张打印两页?
目前,我只查到Duplex属性,这个是控制双面打印的,怎么能控制每张纸打印两页呢?

我知道不是每个打印机都支持每张纸打印两页,该如何判断??如何获取当前打印机的驱动,从中是否可以查找到相关设置的蛛丝马迹?有没有人用过?

你的分页打印代码执行2遍.
[/Quote]
不是很明白。。。怎么执行两遍??我现在的做法是生成打印文档,然后把文档传给打印机。在传给打印机之前,要设置打印机的选项,我郁闷的是,貌似没有这样的选项可以设置。
特别 2010-05-22
  • 打赏
  • 举报
回复
[Quote=引用楼主 demon_ 的回复:]
怎么能控制每张纸打印两页呢?

[/Quote]
楼主问题描述不清楚
你到底是每页打印两份呢?
还是双面打印呢?
还是相当于一页纸对折分两边的分2栏打印呢?
proer9988 2010-05-22
  • 打赏
  • 举报
回复
看看这篇文章,或许会有帮助。
lyserver 2010-05-22
  • 打赏
  • 举报
回复
没有这样的设置,需要自己实现。
贝隆 2010-05-21
  • 打赏
  • 举报
回复
UPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUP
zdingyun 2010-05-21
  • 打赏
  • 举报
回复
[Quote=引用楼主 demon_ 的回复:]
使用Printer对象打印文档,如何控制打印机每张打印两页?
目前,我只查到Duplex属性,这个是控制双面打印的,怎么能控制每张纸打印两页呢?

我知道不是每个打印机都支持每张纸打印两页,该如何判断??如何获取当前打印机的驱动,从中是否可以查找到相关设置的蛛丝马迹?有没有人用过?
[/Quote]
你的分页打印代码执行2遍.
a040285 2010-05-21
  • 打赏
  • 举报
回复
可以提示让用户手动打印纸呀
proer9988 2010-05-21
  • 打赏
  • 举报
回复
每张纸打印两页还是打印两份啊 ?
加载更多回复(1)

7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧