我有一个“项目登记”的form ,上面有 项目编号,项目名称,项目负责人等等各种控件,我现在在这个Form上添加一个按牛!用来打印这个form,我开始的时候用 print 来打印,发现 打印出来的东西 不符合要求,就是说不够精确,问一下,做过这方面开发的高手 ,如何控制 。这个Form在 打印机上的 的位置和大小?
解决方案 »
- 在层在怎么使用事务处理,比如我要删几个表的不同记录,在事务放在那里实现,怎样做?
- ehlib 使用说明?????
- 大家怎么样对待贪财的老岳母??
- 哪里可以免费下载RXLib for delphi6?
- 在Dll文件中引用OBJ文件,怎样写?
- 听说好像用ADO编出来的程序,只能在本机上运行,不能到别的机器上运行!这是什么回事,含ADO的程序的移植应注意些什么?
- 华泰贝通,北京创智你去那家?
- 谁有关于数据库与midas技术的电子书
- 各位大虾:我有form1.FormStyle:=fsMDIForm;form2.FormStyle:=fsMDIChild; form3.FormStyle:=fsMDIChild; 如何改变默认出现的Form? (比如改为Form3) 谢谢大虾!!!
- 哪里有比较好的农历控件。
- 十万火急!在线等
- 请问怎么来处理回车键按下这个消息?
procedure PrintText(X, Y: Extended; Txt: string; ConfigFileName: string; FontSize: Integer=12);
var
OrX, OrY: Extended;
Px, Py: Integer;
AP: TPoint;
Fn: TStrings;
FileName: string;
OffSetX, OffSetY: Integer;
begin
//打开配置文件,读出横向和纵向偏移量
try
Fn := TStringList.Create;
FileName := ExtractFilePath(Application.ExeName) + ConfigFileName;
if FileExists(FileName) then
begin
Fn.LoadFromFile(FileName);
//横向偏移量
OffSetX := StrToInt(Fn.Values['X']);
//纵向偏移量
OffSetY := StrToInt(Fn.Values['Y']);
end
else
begin
//如果没有配置文件,则生成
Fn.Values['X'] := '0';
Fn.Values['Y'] := '0';
Fn.SaveToFile(FileName);
end;
finally
Fn.Free;
end;
X := X + OffSetX;
Y := Y + OffSetY;
Px := Round(Round(X * HPointsPerInch * 10000/25.4) / 10000);
Py := Round(Round(Y * VPointsPerInch * 10000/25.4) / 10000);
Py := Py - GetOffSetY; //因为是绝对坐标, 因此, 不用换算成相对于Y轴坐标
Px := Px + 2 * AvgCharWidth;
Printer.Canvas.Font.Name := '宋体';
Printer.Canvas.Font.Size := FontSize;
//Printer.Canvas.Font.Color := clGreen;
Printer.Canvas.TextOut(Px, Py, Txt);
end;
就是抓图技术,抓整个form然后打印就可以了
如果抓图部分有困难我可以帮帮你