delphi文本转换图片


本文整理自网络,侵删。

 代码文件:
--------------------------------------------------------------------------------

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;

type
TForm1 = class(TForm)
Memo1: TMemo; {用于输入要保存的文本}
ComboBox1: TComboBox; {字体}
LabeledEdit1: TLabeledEdit; {字号}
LabeledEdit2: TLabeledEdit; {页面边距}
LabeledEdit3: TLabeledEdit; {行距}
Button1: TButton;
Label1: TLabel;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

{初始化数据}
procedure TForm1.FormCreate(Sender: TObject);
begin
ComboBox1.Items := Screen.Fonts;
ComboBox1.Text := '宋体';
LabeledEdit1.Text := '12';
LabeledEdit2.Text := '10';
LabeledEdit3.Text := '4';
end;

procedure TForm1.Button1Click(Sender: TObject);
const
FilePath = 'c:\temp\Word.bmp'; {要保存的图片路径}
var
str: string;
bit: TBitmap;
Page_edge: Integer; {页面边距变量}
Word_h,Line_h: Integer; {字体高度和行间距}
w,x,y: Integer; {文本宽度与输出位置}
i: Integer;
begin
str := Memo1.Text;

bit := TBitmap.Create;
bit.Canvas.Font.Name := ComboBox1.Text;
bit.Canvas.Font.Size := StrToIntDef(LabeledEdit1.Text, 9);

Page_edge := StrToIntDef(LabeledEdit2.Text, 0);
Word_h := bit.Canvas.TextHeight('a');
Line_h := StrToIntDef(LabeledEdit3.Text, 0);

{设置页面高度}
bit.Height := (Word_h + Line_h) * Memo1.Lines.Count - Line_h + Page_edge * 2;
w := 0;
x := Page_edge;
y := Page_edge;

for i := 0 to Memo1.Lines.Count - 1 do
begin
{设置页面宽度}
if bit.Canvas.TextWidth(Memo1.Lines[i]) > w then
begin
w := bit.Canvas.TextWidth(Memo1.Lines[i]);
bit.Width := w + Page_edge * 2;
end;
{画文本}
bit.Canvas.TextOut(x, y, Memo1.Lines[i]);
{下一行}
Inc(y, Word_h + Line_h);
end;

{保存为图片}
bit.SaveToFile(FilePath);

bit.Free;
end;

end.

相关阅读 >>

Delphi自动以管理员身份在vista 和 windows7 下运行程序

Delphi 顺序查找与二分查找

Delphi richedit控件的用法

Delphi多线程

Delphi中安装和使用kol和mck

Delphi xe6 �c使用android的zlib

Delphi如何计算一个文件目录的大小

Delphi 获取当前系统版本号

Delphi android调用授权管理打开通知监听服务

Delphi 最简单的ttcpserver与ttcpclient通信实例

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...