高分:关于Canvas.TextOut的问题,急救!在线等!(200分)

  • 主题发起人 wyz840204
  • 开始时间
W

wyz840204

Unregistered / Unconfirmed
GUEST, unregistred user!
我在用Canvas.TextOut输入出打印文字的时候遇到一个比较奇怪的问题。
比如我用Canvas.TextOut(0,100,'test')这个,在打印机上打印出来的文字不是在纸上的最左边,而是还有一段距离,这是因为页边距的原因吗?如果是那怎么样消除这个页边距呢?
我曾经用一个负数也试过,可还是不行。如果不是页边距的原因,那是什么问题呢?请各位高手帮忙解答一下。谢谢!
 
问题: textout(0,0,'ddddd')的结果???? ( 积分: 100 )
分类: 打印

来自: coffeeffee, 时间: 2001-01-02 12:16:35, ID: 430352
打印的时候用语句textout(0,0,'ddddd')进行打印,但为什么输出并不是在最作上角?
而是有一个间隙,这是纸张的页边距吗,如果是,怎样在程序里将其设为0呢???
拜托!!!!

来自: 不夜城, 时间: 2001-01-02 12:25:23, ID: 430360
谁说不是在左上角的,
客户区的左上角

来自: coffeeffee, 时间: 2001-01-02 23:35:41, ID: 430858
客户区?那么怎样将整个页面都设为客户区呢?多谢!!

来自: Jams, 时间: 2001-01-02 23:39:16, ID: 430862
>>

来自: eyes4, 时间: 2001-01-03 15:13:36, ID: 431384
是不是需设置canvas的height和width的值?

来自: dq, 时间: 2001-01-03 15:45:41, ID: 431414
你是在QuickRep.QRPrinter.Canvas上进行操作的吗?
如果是,应该没问题啊。或者再说一下你在什么时候操作的(哪个事件里)?

来自: coffeeffee, 时间: 2001-01-05 0:17:15, ID: 432622
我先设定了打印机的纸张,然后用
printer.begin
doc;
printer.Canvas.text(0,0,'ddddd');来输出.....

来自: balaschen, 时间: 2001-01-05 8:43:15, ID: 432720
PhysicalOffsetx,PhysicalOffsety:为打印机的页边距,好象可以用API函数来调整。

来自: coffeeffee, 时间: 2001-01-05 9:07:19, ID: 432742
我知道通过修改deviceMode的值来改变打印机的纸长、纸宽、打印质量等,但不知如何
修改打印机的页边距,真是麻烦啦!!!
请指教!!

来自: coffeeffee, 时间: 2001-01-06 11:38:27, ID: 433669
补充一下,我是对printer.canvas直接进行操作,没有用QRReport组件;
另:PhysicalOffsetx,PhysicalOffsety是api函数吗,怎么查不到呢?

来自: BaKuBaKu, 时间: 2001-01-06 11:50:11, ID: 433683
页边距是应用程序级的概念!

来自: dq, 时间: 2001-01-06 13:02:08, ID: 433755
如果你查一下GetDeviceCaps这个API,可以看到对PHYSICALOFFSETX和PHYSICALOFFSETY的解释。
但是我也不知道怎么修改它,不过我想你如果用GetDeviceCaps得到了页边距,
就可以调整TextOut的参数(比如用负的边距的绝对值)来使输出定位到纸张的最边缘了吧。
我没用过,只是猜测:)

来自: wjiachun, 时间: 2001-02-23 11:30:24, ID: 458837
多人接受答案了。

得分大富翁: BaKuBaKu-20,balaschen-20,dq-20,eyes4-20,不夜城-20,
 
谢谢,这个我昨天也看到过,还不是很明白,请您详细讲解一下。谢谢!
 
刚才测试了你的语句,可以啊。
另外,给你一个建议,你试试把系统默认打印机的页边距设置小试试。
 
谢谢,不过我还是想在程序代码里面来实现动态的改变。有没有好的办法?
 
你只是想使用printer?不想使用报表工具?比如fastreport之类的?
如果这样,我们可以找找如何设置边距。
 
不用报表工具,就只用Printer.Canvas.TextOut。谢谢。
 
顶部