如何打印倾斜文本? 在屏幕和位图上使用自定义字体实现倾斜文本都没问题.但打印时就不行了.该怎么样才能实现呢?请知道的高手指点下.非常谢谢!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 procedure TForm1.Button1Click(Sender: TObject);var mCanvas: TCanvas;begin mCanvas := Printer.Canvas; //uses Printers; mCanvas.Font.Style := [fsItalic]; mCanvas.Font.Size := 48; Printer.BeginDoc; mCanvas.TextOut(100,100,'测试test'); Printer.EndDoc;end;这种方式打印,你可以想怎么画就怎么画了 http://www.sudu.cn/info/index.php?op=article&id=258333画倾斜文本,画在打印机画布上即可 你既然可以在屏幕和位图上画了,把屏幕或位图canvas复制到打印机的画布不就行了嘛 procedure TForm1.Button1Click(Sender: TObject);var mlf: LOGFONT; // Windows native font structure mPointer: Pointer; mCanvas: TCanvas;begin mCanvas := Printer.Canvas; Printer.BeginDoc; mCanvas.Brush.Style := bsClear; // set the brush style to transparent mPointer := Addr(mlf); FillChar(mPointer, SizeOf(mlf), Byte(0)); mlf.lfHeight := 100; mlf.lfWeight := 100; mlf.lfEscapement := -10 * 45; // degrees to rotate mlf.lfOrientation := 10 * 45; mlf.lfCharSet := DEFAULT_CHARSET; mlf.lfFaceName := 'Tahoma'; mCanvas.Font.Handle := CreateFontIndirect(mlf); mCanvas.TextOut(100, 100, 'Rotated text'); // output the rotated font Printer.EndDoc;end;这段代码部分从delphi的help中提取,改了下,可以打出“旋转”字体来,也可以换字体名 我用hp laserjet 1020又小又老的打印机了,真打出来了 取得打印机的分辨率,根据纸张大小换算成像素宽X高,建立等大的bitmap,在bitmap上绘制你要打印的内容,然后打印这个bitmap,可以做到真正的所见即所得。 C++里面的结构指针和类型转换,在delphi里面怎么实现? 我直接关闭窗体SplashForm,程序退出不能清除占用内存, 水晶报表问题,急,在线等! 急求旋转立方体程序 9.10教师节,9。11中秋节,散分! SQLServer表中有八个Chat型字段,怎样用SQL语句汇总出符号条件的数据的个数? 做了一个类似 特训 的游戏,欢迎大家来测试 一个动态选表时出错的一段代码,cmbtabename为组合框从中挑选数据表,strlist显示字段 两个MDI子窗口的切换 关于设置quickreport打印停顿的问题? 请教个delphi问题 如何采集考勤机的数据
procedure TForm1.Button1Click(Sender: TObject);
var
mCanvas: TCanvas;
begin
mCanvas := Printer.Canvas; //uses Printers;
mCanvas.Font.Style := [fsItalic];
mCanvas.Font.Size := 48;
Printer.BeginDoc;
mCanvas.TextOut(100,100,'测试test');
Printer.EndDoc;
end;
这种方式打印,你可以想怎么画就怎么画了
画倾斜文本,画在打印机画布上即可
procedure TForm1.Button1Click(Sender: TObject);
var
mlf: LOGFONT; // Windows native font structure
mPointer: Pointer;
mCanvas: TCanvas;
begin
mCanvas := Printer.Canvas;
Printer.BeginDoc; mCanvas.Brush.Style := bsClear; // set the brush style to transparent
mPointer := Addr(mlf);
FillChar(mPointer, SizeOf(mlf), Byte(0));
mlf.lfHeight := 100;
mlf.lfWeight := 100;
mlf.lfEscapement := -10 * 45; // degrees to rotate
mlf.lfOrientation := 10 * 45;
mlf.lfCharSet := DEFAULT_CHARSET;
mlf.lfFaceName := 'Tahoma'; mCanvas.Font.Handle := CreateFontIndirect(mlf); mCanvas.TextOut(100, 100, 'Rotated text'); // output the rotated font Printer.EndDoc;
end;这段代码部分从delphi的help中提取,改了下,可以打出“旋转”字体来,也可以换字体名
取得打印机的分辨率,根据纸张大小换算成像素宽X高,建立等大的bitmap,在bitmap上绘制你要打印的内容,然后打印这个bitmap,可以做到真正的所见即所得。