十万火急,证件套打!!!文字方向(200分)

  • 主题发起人 主题发起人 xiazhiyong
  • 开始时间 开始时间
X

xiazhiyong

Unregistered / Unconfirmed
GUEST, unregistred user!


学生证 |
| |
制发机关:某某学校 | 姓名:张三
|
|
证件编号:00123 | 性别:男
|
页1 页2
<----------------------------------------

套打证件:箭头方向为要套打证件的进打印机方向(针式打印机),
显示内容为动态查询结果。
这种格式怎么打印? 关键是文字方向控制。
 
使用fast Report构件,可以把字旋转打印出来,做成套打也很轻松。
 
给你一个函数
////////////////////////////////
// 打印输出旋转字体角度的字符
////////////////////////////////
procedure print_AngleTextOut(htimage:Tprinter;
sText: String;
x, y, angle,font_h,font_w:integer);
//procedure print_AngleTextOut(htimage:Timage;
sText: String;
x, y, angle,font_h,font_w:integer);
var
LogFont: TLogFont;
SaveFont: TFont;
begin
SaveFont := TFont.Create;
SaveFont.Assign(htimage.Canvas.Font);
GetObject(SaveFont.Handle, sizeof(TLogFont), @LogFont);
with LogFontdo
begin
lfHeight :=font_h;
lfWidth :=font_w;
lfEscapement := angle *10;
lfPitchAndFamily := FIXED_PITCH or FF_DONTCARE;
lfFaceName:='宋体';//'幼圆';
lfWeight:=700;//指定范围为从0至1000的字体加重程度
end;
{with}
htimage.Canvas.Font.Handle := CreateFontIndirect(LogFont);
SetBkMode(htimage.Canvas.Handle, TRANSPARENT);
htimage.Canvas.TextOut(x, y, sText);
htimage.Canvas.Font.Assign(SaveFont);
SaveFont.Free;
end;
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部