我想要自定义打印字体的长宽比例,下面是我的代码:
==============================================
with printer do
begin
try
beginDoc;
canvas.Font.Name:='宋体';
// canvas.Font.style:=[FsBold];
canvas.Font.size:=10;
// canvas.Rectangle(vwidth,0,0,vheight);
canvas.Textout(100, 100, '中华人民共和国');
finally
EndDoc;
end;
end;
=============================================
在canvas.Font.size:=10;这一句中只能把字体大小设置成系统标准的字体大小,我想实现自定义字体的长宽比例,如:想把字打成扁的或长的,像20*15,20*30这样随便设置字体的长和宽,请高手指教。
==============================================
with printer do
begin
try
beginDoc;
canvas.Font.Name:='宋体';
// canvas.Font.style:=[FsBold];
canvas.Font.size:=10;
// canvas.Rectangle(vwidth,0,0,vheight);
canvas.Textout(100, 100, '中华人民共和国');
finally
EndDoc;
end;
end;
=============================================
在canvas.Font.size:=10;这一句中只能把字体大小设置成系统标准的字体大小,我想实现自定义字体的长宽比例,如:想把字打成扁的或长的,像20*15,20*30这样随便设置字体的长和宽,请高手指教。
解决方案 »
- FASTREPORT换色
- 外包项目
- 唯一值的判断
- 如何判断和防止其他窗体(form、MDI form等)的显示,除了ShowModal以外的方法,加50分
- 为什么TClientSocket.Open不产生异常的?急!!!
- 为何会出现这错误,请高手大虾们帮忙解决
- 映射与断开
- 求ZEBRA 105SE条码打印机 delphi的控制 demo,有源程序,急!!!在线等待!!!
- Delphi Oracle Unicode 报ORA-12571
- 郁闷啊,sql高手请进来瞅瞅,不知为啥,只能给20分,原来想给200分的,缺的一定补上
- 用 winsocket api 函数来做网络程序,服务端怎么判断客户端已经断开连接?
- 一点关于字符指针操作的代码,将中文字符分解成两部分,然后在合并起来.
procedure TForm1.FormPaint(Sender: TObject);
var
FLogFont : tagLogFontA; file://逻辑字体--结构体类型
hTempFont, hPrevFont: HFONT; file://字体句柄
hTempDC: HDC; file://设备描述表或图形设备句柄
TempString: string; file://输出的文字
begin
FLogFont.lfHeight := 10; file://字高
FLogFont.lfWidth := 10; file://字宽
FLogFont.lfWeight := 1; file://字体笔划粗细程度
FLogFont.lfUnderline := 0; file://没有下划线
FLogFont.lfStrikeOut := 0; file://没有删除线
FLogFont.lfItalic := 0; file://斜体效果否
FLogFont.lfCharSet := GB2312_CHARSET; file://字符集
FLogfont.lfEscapement := 450; file://倾斜度
FLogFont.lfOrientation := 450; file://方向与倾斜度取值同
FLogFont.lfFaceName := '宋体'; file://字体名称
file://创建逻辑字体
hTempFont := CreateFontIndirect(FLogFont);
TempString := '测试';
file://取得窗口的设备句柄
hTempDC := GetDC(Handle);
file://取出窗口设备的当前字体,并替换为新字体
hPrevFont := SelectObject(hTempDC, hTempFont);
file://设置设备窗口的文字色彩
SetTextColor(hTempDc, clRed);
file://输出文字
TextOut(hTempDc, 200 , 200, PChar(TempString), Length(TempString));
file://恢复原有的字体
SelectObject(hTempDc, hPrevFont);
file://删除逻辑字体
DeleteObject(hTempFont);
file://释放设备接口
ReleaseDC(Handle, hTempDC);
end;
以上代码若不写在窗体的Paint事件,则当窗体接收到重绘消息时,默认的窗口绘制过程将重新绘制窗口而使倾斜文字消失。 三、结束语 以上,只是Windows GDI接口函数使用的一个具体例子,希望能对广大读者起到抛砖引玉的作用,利用Windows GDI接口函数编写出更为丰富多彩的的文字效果。