当前位置:主页>仓库管理软件> 列表

有关窗体打印的问题 (Form1.Print)

进销存管理软件版1楼: 我要实现打印一些信息和一张图片,起初我用了RMreport结果奇怪的现象出来了,文字信息打印出来了,图片没有打印出来,但是不是每次打印都是这样的,偶尔会出现这样的情况(图片确实存在)我怀疑是RMreport控件中的图片控件有问题,所以就改用了窗体打印,
把要打印的文字信息放到Label上,图片用了一个IMAGE控件,然后调用Form1.Print
更奇怪的现象出来了,在大多数情况下打印文字和图片都没有问题,偶尔出现打印出来是一张白纸,有时候出来只有文字信息没有图片,这时候如果重新启动一下软件,或者不重新启动软件等一段时间在打印就一点问题都没有了。
我仔细看过程序没有发现任何问题,那为朋友遇到过这样的问题,请指教,谢谢!

2楼: 有没有试试跳出圈子看看?
确实是软件问题吗?
有没有换个系统试试?
有没有换个打印机试试?
公司有一台打印机,就出现这种情况
其实是 打印机的问题 如进销存库存设计

3楼: 现在是我们有7台打印机,都曾经出现这样的问题

4楼: 首先你的方法本来就不是很好,一般打印包括自己手写打印程序不管文字还是表格图片都是在Canvas上画除来,文字和表格很好解决,图片例如Chart,要先保存为bmp图片,然后在Canvas画出来,代码很简单,你要做的只是控制打印信息的坐标.

5楼: 看看打印PANEL的内容的法子
procedure TForm1.Button1Click(Sender: TObject);
var
DC: HDC;
Canvas: TCanvas;
begin
Canvas := TCanvas.Create;
DC := GetDC(0);
Canvas.Handle := DC;
printer.begindoc;//准备打印
//下面是把 panel 在屏幕上的图象拷贝下来
printer.Canvas.CopyRect(rect(0,0,panel1.Width,panel1.Height),
canvas,
rect(self.Left+panel1.Left,
self.Top+panel1.Top,
self.Left+panel1.Left+panel1.Width,
self.Top+panel1.Top+panel1.Height));

ReleaseDC(0, DC);
canvas.Free;
printer.enddoc;//开始打印
end;

CopyRect 方法
第一个参数是目的矩形的大小
第二个参数源的canvas,这里也就是屏幕的
第三个参数是源的矩形,可能有差距,你修改一下
left,top,right,bottom 就行了

6楼: 我主要想知道为什么会出现我上边说的情况呀,因为只有找到原因才能从本质上解决这个问题呀

进销存管理软件版7楼: 你这样的情况我也碰到过,代码应该是没什么问题的,我记得当时也调试了很久,最后到是加了一句无关紧要的代码就可以了,具体解决办法已经不记得了,建议你在适当的地方刷新或者重画一遍也许可以解决.

8楼: 我遇到过这种现象,是由于,图片的大写不同,有的占的字节太大就不行,你看看吧

9楼: To redgirl :


好象不是这个原因,如果是这样打不出来的图片应该总也打不出来,但现在是大部分时候是能打印出来,偶尔打印不出来