打印:半角的字母或数字+@,打印时无法逆时针转90度?(实为 3 0 0 分寻打印高手!!!) (100分)

  • 主题发起人 主题发起人 jammi
  • 开始时间 开始时间
J

jammi

Unregistered / Unconfirmed
GUEST, unregistred user!
[8D是用带@的字体可以使汉字逆时针转90度,但对半角的字母或数字却无能为力,
弄成全角打印又会改变格式,各位请提供良方?避免浪费分数标100分,回答后加200!
要了解详细一点也可参见http://www.delphibbs.com/delphibbs/dispq.asp?lid=754251
 
与打印字库有关
 
你是想转置打印吧?
可以把半角字符2个一对转置。
其实在windows下有不着,
只要把打印机设置成横向打印就行了。
 
to jqw:能提供详细的回答吗?我在这方面所知甚少,找不到资料,又急用,希望谁有
这方面的经验帮我解决。
to zhukewen:横向打印顺时针旋转90度,而我需要逆时针
我的打印命令:DrawPrint(,@'宋体',打印内容,);
对‘1234’毫无作用
 
var lf : Logfont;
hf : HFont;
begin

lf.lfEscapement = 900;
hf = CreateFontIndirect(lf);
Canvas.Font.Handle := hf;
Canvas.TextOut(X,Y,'圣诞快乐!');
...
DeleteObject(hf);
end;

 
to:吕雪松:这样对数字与字母有效吗?
 
当然有用了,只要是字符都行。
 
to:吕雪松大侠
var lf : Logfont;
hf : HFont;
begin

lf.lfEscapement :=900;
hf := CreateFontIndirect(lf);
Printer.Canvas.Font.Handle := hf;
Printer.begin
Doc;
Printer.Canvas.Font.Size:=10;
Printer.Canvas.TextOut(20,20,'车号A.B1234');
Printer.EndDoc;
DeleteObject(hf);
end;

打印出来还是横着的???帮帮忙!!!
 
朋友,光写lfEscapement还不行
Printer.Canvas.Font.Size:=20;
with lfdo
begin

lfWidth := Printer.Canvas.TextWidth('1');
lfHeight := Printer.Canvas.TextHeight('1');
lfEscapement :=900;
lfFaceName := '宋体';
end;

hf := CreateFontIndirect(lf);
Printer.Canvas.Font.Handle := hf;
Printer.begin
Doc;
Printer.Canvas.TextOut(120,120,'车号A.B1234');
Printer.EndDoc;
DeleteObject(hf);
 
吕雪松大侠:还有200分
http://www.delphibbs.com/delphibbs/dispq.asp?lid=822715
 
請問吕雪松
上面那段程序對打印機的位置有聯繫嗎
我用的時候編譯通過,但執行時出現EAccessViolation錯誤
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
687
import
I
后退
顶部