如何打印大图形?(50分)

  • 主题发起人 主题发起人 philips
  • 开始时间 开始时间
P

philips

Unregistered / Unconfirmed
GUEST, unregistred user!
我要打印的绘制曲线图形比一页打印纸大(长),打印时只打了一页就不打了,
怎样使打印机连续不停地把整个图形打印完整?
 
是喷墨打印机吗?
如果是,那有可能是打印机的驱动程序把余下的删掉了,
最好用针打试一下
 
谢谢 :LeonSu

我用的 不是喷墨打印机, 是lq1600k及star3240II,不知为何。

我是先在屏幕的Image上对其画布画曲线,然后复制到打印机的画布上,

结果只打一页。
 
应该将画布设成纸的大小;要不然,就放大/缩小图形到纸的大小
 
to :zensst

我的图比纸大许多(4页),且不想缩小.
 
请大家继续关注...
 
我的代码如下:

printer.BeginDoc;
printer.Canvas.Move(0,0);
printer.Canvas.LineTo(2200,18800);
printer.EndDoc;

只能打一页,没打完,就不打了!谁能帮我?
 
试一试,通过lq1600k打印机的图形命令直接驱动打印机
 
有其他方法吗?
 
如果分数不够可再加100。
 
这很简单,如果你不想缩小你的图形,那么你必须要将你要打印的图形分割为当前
打印纸大小的 N 幅小图,待打印完毕后再拼接起来,同时,你要知道屏幕坐标单位
同打印机坐标单位所代表的实际尺寸是不同的,因此你还要编写两个坐标单位之间
的转换程序,不然你的图形就不会打印得“刚刚好”。:)
 
吕雪松 大侠:
非常感谢您!
我曾试过您的方法,但仍只打一页,不知问题出在那里?
您是否有一个小的例子?拜托了! 万分感谢!!
 
我不是很清楚你的环境,但是一般来讲,用BeginDoc、EndDoc和NewPage等函数就
可以,并且,同打印机是否为喷墨和针打没有关系。

具体说来:
1、如果你打印的范围超出了当前打印纸的幅面,则打印机会自动结束当前页的打印,
卷纸、进下一张纸,在下一张纸上把剩下未打完的数据打完,如果没有超出一页,
打印机会卷纸,结束打印。
2、我一般都是自己控制打印机走纸,也就是说,我不会让我要打印的数据超过一
页,我会为每一页规划左右上下边距,然后让数据严格打印在此范围内,通过调用
Printer.NewPage来强制打印机走纸。

就这些,看看能否更正你的一些不正确的理解?

期待再讨论。
 
再次感谢 吕 大侠:
我的代码示意如下:

printer.BeginDoc;
printer.Canvas.Move(0,0);
printer.Canvas.LineTo(2200,18800); 《= 这条线很长,须几页,我该怎样做? 线要连续
printer.EndDoc;
 
这个问题另外还有200分!!!
 
后退
顶部