CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  数据库相关

100高分求解菜鸟问题,千万别错过

楼主sammei(sammei)2004-08-01 17:07:49 在 Delphi / 数据库相关 提问

在Image1中插入一个BMP图象文件,打印完成后,发现除了应打出的内容外,同时还打印出背景点阵,怎么会有背景点阵呢?请指教,谢谢! 问题点数:100、回复次数:20Top

1 楼drunkboy(醉犯)回复于 2004-08-01 17:22:03 得分 0

看不懂你问什么?Top

2 楼sammei(sammei)回复于 2004-08-01 17:38:39 得分 0

就是打印Image中的图片时,还打印出了背景----由许多小点组成的和图片一样大小的点阵,请指教,谢谢Top

3 楼sammei(sammei)回复于 2004-08-01 17:41:44 得分 0

而我的图片中没有这样的点阵背景Top

4 楼flayyao(姚俊)回复于 2004-08-01 18:43:07 得分 0

你可以把你的图片转化为gif的,这样才没有点陈,不然都会有点陈,delphi自己没有支持gif格式的文件,你可以在网上随便下一个.Top

5 楼cybercake(数字蛋糕)回复于 2004-08-01 23:34:41 得分 50

肯定跟你的打印代码有关。如果你用的是控件,肯定是那个东西有错……  
   
  我自己写完全的打印代码很长时间了,从来没有出过问题。Top

6 楼sammei(sammei)回复于 2004-08-02 17:40:28 得分 0

谢谢:flayyao(姚俊)  
     cybercake(数字蛋糕)      
   
  我想应该和代码没有多大关系,如果用cavas将画出的内容直接输出到打印机,能正常打印;但是如果直接调用已画好的bmp文件到Image上,然后再打印时,就会出现这个毛病.  
   
  部份代码:  
  printer.Canvas.StretchDraw(r1,Img.Picture.Graphic);  
   
  delphi不支持gif格式的文件,即使把图片转化为gif,又怎么办  
  Top

7 楼getit911(Windows转Linux中)回复于 2004-08-02 21:41:14 得分 0

图片有问题。  
  picshow、graphicex组件几乎支持所有的图形文件格式Top

8 楼sammei(sammei)回复于 2004-08-02 21:53:41 得分 0

但是我用windows自带的画图程序打开或用Acdsee等看图软件打开,图象都是正常的,没有点阵,但打印出来就有问题使用的命令是:  
  printer.Canvas.StretchDraw(r1,Img.Picture.Graphic);Top

9 楼sammei(sammei)回复于 2004-08-03 18:05:26 得分 0

谁帮帮我Top

10 楼ghchen()回复于 2004-08-04 09:07:21 得分 0

没有遇到过,顶Top

11 楼zhuangjunx(星晨)回复于 2004-08-04 09:50:20 得分 0

upTop

12 楼redseaw()回复于 2004-08-04 09:58:32 得分 0

upTop

13 楼GoldShield(李柏岑)回复于 2004-08-04 10:43:29 得分 0

不用CANVAS直接用一个IMAGE控件  
  先把你的图片存成文件放一个临时文件夹中.打印报表的时候再把它调出来.  
  从来没见过你说的这种情况.应该是你的代码那儿有问题.Top

14 楼sammei(sammei)回复于 2004-08-04 15:08:08 得分 0

我是在Image控件中用Canvas画出表格,然后保存为BMP文件,打印时再把BMP文件调出来,下面是部份代码:  
   
  var   PrnPreivew:TImage;  
          R1:TRect;  
   
          PrnPreview:=TImage.Create(self);  
          PrnPreview.Picture.SaveToFile('c:\aa.bmp');  
          PrnPreview.Picture.LoadFromFile('c:\aa.bmp');  
          Printer.Canvas.StretchDraw(R1,PrnPreview.Picture.Graphic);  
   
   
  能告诉我你的原代码吗?谢谢Top

15 楼sammei(sammei)回复于 2004-08-05 16:49:02 得分 0

自已顶Top

16 楼cybercake(数字蛋糕)回复于 2004-08-05 18:15:28 得分 50

不要用TImage,换成TBitmap试试?因为TImage可能会包含有Delphi设计时的信息,所以可能会把Form中的一些设计网格打进去,而TBitmap只是不可见的对象,所以没有这个担心。  
   
  var   PrnPreivew:   TBitmap;  
          R1:   TRect;  
   
          PrnPreview:=Bitmap.Create;  
          PrnPreview.Picture.LoadFromFile('c:\aa.bmp');  
          Printer.Canvas.StretchDraw(R1,PrnPreview);  
   
  此外会不会是你的打印机出了问题?换一台试试。Top

17 楼hr168(Ocb.Hr)回复于 2004-08-05 18:33:10 得分 0

这个原因是和你的打印机的分辨率和屏幕不一样导致的,你必须进行转化  
  你可以使用self.PixelsPerInch得到屏幕的分辨率,即每INCH的像素数,然后你转化为每毫米的像素数,除以25.4这个数字是INCH和MM的转化率  
  (self.PixelsPerInch/25.4)   用这个数字,分别去*rl的四个值Top

18 楼sammei(sammei)回复于 2004-08-06 09:27:27 得分 0

我用round(self.PixelsPerInch/25.4)这个数字分别去*R1的四个值后,点阵仍然有,只是文字表格内容变得更大,R1的四个值应怎样设置:  
  我的图片在屏幕上的宽是:750,高是:500  
   
  能否给我你打印图片的具体代码,非常感谢!Top

19 楼yq3woaini(哈哈镜 选择好心情)回复于 2004-08-19 00:02:52 得分 0

jjjjjjjjjjjjjjjTop

20 楼sammei(sammei)回复于 2004-08-19 11:29:14 得分 0

帮帮忙Top

相关问题

  • 菜鸟求解
  • 菜鸟求解
  • 菜鸟求解!!!!!奉分
  • 菜鸟问题求解
  • 菜鸟高分求解
  • 菜鸟继续求解
  • 菜鸟问题,请求解答!!20分!!!
  • 菜鸟求解DLL的导出问题
  • 菜鸟求解(多年来的困惑)
  • 菜鸟的问题,高分求解!

关键词

  • 打印
  • 代码
  • 文件
  • 转化
  • 控件
  • 数字
  • 屏幕
  • delphi
  • r1
  • prnpreview

得分解答快速导航

  • 帖主:sammei
  • cybercake
  • cybercake

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo