请高手救命?关于打印的问题$$$$$$$500分 (200分)

  • 主题发起人 quicksoft
  • 开始时间
QReport就可以自定义走纸长度。
 
我问了几个打印的问题都没有人能很好的回答,看来缺少打印方面的高手
 
我也不太会呀!帮你顶一下吧
 
为什么要用qrsubdetail呢?!
你用到主从表了吗?!
 
用fastreport,可以调整控件的位置。
 
to wfzha:
用TPrinter怎么将内容打印到屏幕上,就是怎么做打印预览??
 
获取、显示当前打印机的分辨率
  Windows下的打印分辨对打印程序有着至关重要的作用,如果你想知道打印机的分辨率,请在程序中加入一行:
  ShowMessage(′水平分辨率′+inttostr(GetDeviceCaps(printer Handle,LOGPIXELSX))+chr(13)+′垂直分辨率:′+ inttostr(GetDeviceCaps(printer?Handle,LOGPIXELSY)));

用打印机的点数做度量单位
  如果想让打印程序在任何打印机上都能正常地打印,你就必须改变你的度量单位。如果采用固定的度量,不同分辨率的打印效果是不同的。举例来讲:printer?Canvas?rectangle(0,0,360,720)在360×360的佳能4200SP上能打出一个1英寸宽、2英寸高的矩形,但在600×600的惠普6L上只能打出0.6英寸宽、1.2英寸高的矩形。使用打印机的点数做为度量单位是一个明智的选择。具体做法如下:
  Var PointX,PointY:integer;
  PointX:=GetDeviceCaps(printer?Handle,LOGPIXELSX);
  PointY:=GetDeviceCaps(printer?Handle,LOGPIXELSX);
  printer?Canvas?rectangle(0,0,PointX*1,PointY*2)
  这样,无论你使用什么样的打印机,都能得到一个1英寸宽、2英寸高的矩形。
=========
 
我作了一个图形打印程序,我需要连续打印一个图,我设置的纸张长度为100毫米,把图分成几部分循环打印,我在printer.begin
doc printer.enddoc之间循环打印,每次打印开始一个新页,用printer.newpage可是每次打印完一页都走纸。不知道是什么命令走纸,是endpage走纸吗,我查了Delphi的printer.newpage调用,发现他也是先调用EndPage,在执行
StartPage调用。而printer.begin
doc调用里也要调用StartPage。我怀疑是startpage有走纸功能。请各位大虾帮帮忙,怎么才能打印完一页不走纸。
 
你可以用一下f1book进行打印。
它是仿excel打印,基本上excel能打印的它都可以打印。
论坛上已有不少介绍,你可以用'f1book'搜一下。
例子可到 http://zhangxzh.nease.net/ 看一下。
 
顶部