如何打印图片上的文字?急急!(50分)

  • 主题发起人 主题发起人 liao_hc
  • 开始时间 开始时间
L

liao_hc

Unregistered / Unconfirmed
GUEST, unregistred user!
各位大侠!现有一问题请教!急急!
在scrollbox上放置一TImage控件(image1)显示图片,图片上放置一些label控件用于标识图形,打印时我想把图片和上面的文字(label的caption)一起打印出来。现在只能打印图象,无法打印上面的文字,请问如何处理???
 
没人知道吗??求求各位了,我就剩下这点分了!!
 
用Printer.Canvas.TextOut 直接写呀。先把图片贴到 Printer.Canvas上,然后把文字根据计算出来的大小和位置贴上去,最后再Printer.EndDoc,就可以把文字打印上去了
关于计算文字的位置,你用
nPaperWidth := GetDeviceCaps( Printer.Handle, PHYSICALWIDTH );
nPaperHeight := GetDeviceCaps( Printer.Handle, PHYSICALHEIGHT );
获取打印机的打印范围,A4,600DPI下的值一般是下面的,根据不同的页边距有点变化
nPaperWidth := 4960;
nPaperHeight := 7014;
注意打印机的映射模式设置为:SetMapMode(Printer.Canvas.Handle,MM_TEXT);
 
to giswang:
谢谢!你这种方法对image上控件较少的话还是挺好的,但我这右100多个label控件,计算位置挺麻烦的。我想把scrollbox上的内容重新保存为图形文件,然后再打印,这样是否更方便?
但我不知如何保存scrollbox为图形文件,有谁知道吗?
 
能计算出一个Label,其他的都一样的呀。用一个循环就可以搞定了
获取每个Label的Left、Top、Font,完全可以自动计算出所有的大小和位置,而且可以适应不同的字体大小。
 
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2214216
 
后退
顶部