📄 ufontdemo.pas
字号:
{create by 季昌丰(jichangfeng@yahoo.com.cn) 2004.02.21}
unit UFontDemo;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls,
PDFCreater, PMFonts;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
FPDFCreater: TPDFCreater;
procedure MakeFontList(X, Y: Single; ACanvas: TPDFContents);
procedure MakeFontSizeList(X, Y: Single; ACanvas: TPDFContents);
procedure MakeCharSpaceList(X, Y: Single; ACanvas: TPDFContents);
procedure MakeWordSpaceList(X, Y: Single; ACanvas: TPDFContents);
procedure MakeAlignmentList(X, Y: Single; ACanvas: TPDFContents);
procedure MakeWordwrapList(X, Y: Single; ACanvas: TPDFContents);
public
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.MakeFontList(X, Y: Single; ACanvas: TPDFContents);
begin
ACanvas.Font := fiSong;
ACanvas.FontSize := 12;
ACanvas.TextOut(X, Y, 'Font');
ACanvas.LineWidth := 0.75;
ACanvas.DrawRect(X, Y - 5, X + 220, Y - 290, false);
X := X + 10;
Y := Y - 20;
ACanvas.Font := fiCentury;
ACanvas.FontSize := 8;
ACanvas.TextOut(X-5, Y, 'Century');
ACanvas.FontSize := 12;
Y := Y - 15;
ACanvas.TextOut(X, Y, 'ABCDFEGabcdefg123456$%&?');
Y := Y - 20;
ACanvas.Font := fiCenturyBold;
ACanvas.FontSize := 8;
ACanvas.TextOut(X-5, Y, 'Century Bold');
ACanvas.FontSize := 12;
Y := Y - 15;
ACanvas.TextOut(X, Y, 'ABCDFEGabcdefg123456$%&?');
Y := Y - 20;
ACanvas.Font := fiArial;
ACanvas.FontSize := 8;
ACanvas.TextOut(X-5, Y, 'Arial');
ACanvas.FontSize := 12;
Y := Y - 15;
ACanvas.TextOut(X, Y, 'ABCDFEGabcdefg123456$%&?');
Y := Y - 20;
ACanvas.Font := fiArialBold;
ACanvas.FontSize := 8;
ACanvas.TextOut(X-5, Y, 'Arial Bold');
ACanvas.FontSize := 12;
Y := Y - 15;
ACanvas.TextOut(X, Y, 'ABCDFEGabcdefg123456$%&?');
Y := Y - 20;
ACanvas.Font := fiCourier;
ACanvas.FontSize := 8;
ACanvas.TextOut(X-5, Y, 'Courier');
ACanvas.FontSize := 12;
Y := Y - 15;
ACanvas.TextOut(X, Y, 'ABCDFEGabcdefg123456$%&?');
Y := Y - 20;
ACanvas.Font := fiCourierBold;
ACanvas.FontSize := 8;
ACanvas.TextOut(X-5, Y, 'Courier Bold');
ACanvas.FontSize := 12;
Y := Y - 15;
ACanvas.TextOut(X, Y, 'ABCDFEGabcdefg123456$%&?');
Y := Y - 20;
ACanvas.Font := fiSong;
ACanvas.FontSize := 8;
ACanvas.TextOut(X-5, Y, '宋体');
ACanvas.FontSize := 12;
Y := Y - 15;
ACanvas.TextOut(X, Y, '中文测试ABCabc123$%&?');
Y := Y - 20;
ACanvas.Font := fiSong; //fiGothic;
ACanvas.FontSize := 8;
ACanvas.TextOut(X-5, Y, '僑僔僢僋(原为日文)');
ACanvas.FontSize := 12;
Y := Y - 15;
ACanvas.TextOut(X, Y, '偁偄偆偊偍傾僀僂僄僆(为日文)');
end;
procedure TForm1.MakeFontSizeList(X, Y: Single; ACanvas: TPDFContents);
begin
ACanvas.Font := fiSong;
ACanvas.FontSize := 12;
ACanvas.TextOut(X, Y, 'FontSize');
ACanvas.LineWidth := 0.75;
ACanvas.DrawRect(X, Y - 5, X + 220, Y - 290, false);
X := X + 10;
Y := Y - 20;
// FonrSize = 6
ACanvas.FontSize := 8;
ACanvas.TextOut(X-5, Y, 'FonrSize = 6');
ACanvas.FontSize := 6;
Y := Y - ACanvas.FontSize - 3;
ACanvas.TextOut(X, Y, '中文测试ABCabc123$%&?');
Y := Y - 18;
// FonrSize = 8
ACanvas.FontSize := 8;
ACanvas.TextOut(X-5, Y, 'FonrSize = 8');
ACanvas.FontSize := 8;
Y := Y - ACanvas.FontSize - 3;
ACanvas.TextOut(X, Y, '中文测试ABCabc123$%&?');
Y := Y - 18;
// FonrSize = 10
ACanvas.FontSize := 8;
ACanvas.TextOut(X-5, Y, 'FonrSize = 10');
ACanvas.FontSize := 10;
Y := Y - ACanvas.FontSize - 3;
ACanvas.TextOut(X, Y, '中文测试ABCabc123$%&?');
Y := Y - 18;
// FonrSize = 14
ACanvas.FontSize := 8;
ACanvas.TextOut(X-5, Y, 'FonrSize = 14');
ACanvas.FontSize := 14;
Y := Y - ACanvas.FontSize - 2;
ACanvas.TextOut(X, Y, '中文测试ABCabc123$%&?');
Y := Y - 18;
// FonrSize = 20
ACanvas.FontSize := 8;
ACanvas.TextOut(X-5, Y, 'FonrSize = 20');
ACanvas.FontSize := 20;
Y := Y - ACanvas.FontSize - 1;
ACanvas.TextOut(X, Y, '中文测试ABab123$%&?');
Y := Y - 18;
// FonrSize = 32
ACanvas.FontSize := 8;
ACanvas.TextOut(X-5, Y, 'FonrSize = 32');
ACanvas.FontSize := 32;
Y := Y - ACanvas.FontSize;
ACanvas.TextOut(X, Y, '中文ABab123$');
Y := Y - 18;
// FonrSize = 48
ACanvas.FontSize := 8;
ACanvas.TextOut(X-5, Y, 'FonrSize = 48');
ACanvas.FontSize := 48;
Y := Y - ACanvas.FontSize;
ACanvas.TextOut(X, Y, '中文Aa1$');
end;
procedure TForm1.MakeCharSpaceList(X, Y: Single; ACanvas: TPDFContents);
begin
ACanvas.Font := fiSong;
ACanvas.FontSize := 12;
ACanvas.TextOut(X, Y, 'CharSpace');
ACanvas.LineWidth := 0.75;
ACanvas.DrawRect(X, Y - 5, X + 220, Y - 140, false);
X := X + 10;
Y := Y - 20;
ACanvas.FontSize := 8;
ACanvas.CharSpace := 0;
ACanvas.TextOut(X-5, Y, 'CharSpace = -0.5');
ACanvas.FontSize := 12;
ACanvas.CharSpace := -0.5;
Y := Y - ACanvas.FontSize - 3;
ACanvas.TextOut(X, Y, '中文测试ABCabc123$%&?');
Y := Y - 18;
ACanvas.FontSize := 8;
ACanvas.CharSpace := 0;
ACanvas.TextOut(X-5, Y, 'CharSpace = 0 (Default)');
ACanvas.FontSize := 12;
ACanvas.CharSpace := 0;
Y := Y - ACanvas.FontSize - 3;
ACanvas.TextOut(X, Y, '中文测试ABCabc123$%&?');
Y := Y - 18;
ACanvas.FontSize := 8;
ACanvas.CharSpace := 0;
ACanvas.TextOut(X-5, Y, 'CharSpace = 1');
ACanvas.FontSize := 12;
ACanvas.CharSpace := 1;
Y := Y - ACanvas.FontSize - 3;
ACanvas.TextOut(X, Y, '中文测试ABCabc123$%&?');
Y := Y - 18;
ACanvas.FontSize := 8;
ACanvas.CharSpace := 0;
ACanvas.TextOut(X-5, Y, 'CharSpace = 2');
ACanvas.FontSize := 12;
ACanvas.CharSpace := 2;
Y := Y - ACanvas.FontSize - 3;
ACanvas.TextOut(X, Y, '中文测试ABCabc123$%&?');
ACanvas.CharSpace := 0;
end;
procedure TForm1.MakeWordSpaceList(X, Y: Single; ACanvas: TPDFContents);
begin
ACanvas.Font := fiSong;
ACanvas.FontSize := 12;
ACanvas.TextOut(X, Y, 'WordSpace');
ACanvas.LineWidth := 0.75;
ACanvas.DrawRect(X, Y - 5, X + 220, Y - 140, false);
X := X + 10;
Y := Y - 20;
ACanvas.FontSize := 8;
ACanvas.WordSpace := 0;
ACanvas.TextOut(X-5, Y, 'WordSpace = -2');
ACanvas.FontSize := 12;
ACanvas.WordSpace := -2;
Y := Y - ACanvas.FontSize - 3;
ACanvas.TextOut(X, Y, 'Hello World 中文测试');
Y := Y - 18;
ACanvas.FontSize := 8;
ACanvas.WordSpace := 0;
ACanvas.TextOut(X-5, Y, 'WordSpace = 0 (Default)');
ACanvas.FontSize := 12;
ACanvas.WordSpace := 0;
Y := Y - ACanvas.FontSize - 3;
ACanvas.TextOut(X, Y, 'Hello World 中文测试');
Y := Y - 18;
ACanvas.FontSize := 8;
ACanvas.WordSpace := 0;
ACanvas.TextOut(X-5, Y, 'WordSpace = 4');
ACanvas.FontSize := 12;
ACanvas.WordSpace := 4;
Y := Y - ACanvas.FontSize - 3;
ACanvas.TextOut(X, Y, 'Hello World 中文测试');
Y := Y - 18;
ACanvas.FontSize := 8;
ACanvas.WordSpace := 0;
ACanvas.TextOut(X-5, Y, 'WordSpace = 10');
ACanvas.FontSize := 12;
ACanvas.WordSpace := 10;
Y := Y - ACanvas.FontSize - 3;
ACanvas.TextOut(X, Y, 'Hello World 中文测试');
ACanvas.WordSpace := 0;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
X, Y: Single;
begin
FPDFCreater := TPDFCreater.Create;
with FPDFCreater do
begin
X := 80;
Y := 750;
BeginDoc(TFileStream.Create('FontDemo.pdf', fmCreate));
MakeFontList(X, Y, Canvas);
X := 310;
MakeFontSizeList(X, Y, Canvas);
X := 80;
Y := 420;
MakeCharSpaceList(X, Y, Canvas);
X := 310;
MakeWordSpaceList(X, Y, Canvas);
X := 80;
Y := 240;
MakeAlignmentList(X, Y, Canvas);
X := 310;
Y := 240;
MakeWordwrapList(X, Y, Canvas);
EndDoc(true);
Free;
end;
ShowMessage('FontDemo.pdf已经成功生成。');
Close;
end;
procedure TForm1.MakeAlignmentList(X, Y: Single; ACanvas: TPDFContents);
var
S: string;
SW, X2: Single;
begin
ACanvas.Font := fiSong;
ACanvas.FontSize := 12;
ACanvas.TextOut(X, Y, 'Alignment');
ACanvas.LineWidth := 0.75;
ACanvas.DrawRect(X, Y - 5, X + 220, Y - 100, false);
X := X + 10;
X2 := X + 200;
Y := Y - 20;
S := '中文测试';
ACanvas.FontSize := 8;
ACanvas.TextOut(X-5, Y, '居左');
Y := Y - 12;
ACanvas.FontSize := 12;
ACanvas.TextOut(X, Y, S);
Y := Y - 18;
ACanvas.FontSize := 8;
ACanvas.WordSpace := 0;
ACanvas.TextOut(X-5, Y, '居中');
Y := Y - 12;
ACanvas.FontSize := 12;
SW := ACanvas.TextWidth(S);
ACanvas.TextOut(X + (X2 - X - SW) / 2, Y, S);
Y := Y - 18;
ACanvas.FontSize := 8;
ACanvas.TextOut(X-5, Y, '居右');
Y := Y - 12;
ACanvas.FontSize := 12;
ACanvas.TextOut(X2 - SW, Y, S);
end;
procedure TForm1.MakeWordwrapList(X, Y: Single; ACanvas: TPDFContents);
var
S: string;
S2: string;
begin
ACanvas.Font := fiSong;
ACanvas.FontSize := 10.5;
ACanvas.TextOut(X, Y, 'Wordwrap');
ACanvas.LineWidth := 0.75;
ACanvas.DrawRect(X, Y - 5, X + 220, Y - 110, false);
X := X + 10;
Y := Y - 20;
S := '一:少室山头琴未冷,风陵渡口似闻声。' +
'人间自有情难老,不信娇女白发生。' +
'二:白马未驮夕照去,西风已送伤心来。' +
'中原可有英雄泪,为洗秋兰带露开。' +
'三:灵枢终未得天枢,素问何曾问髯胡。' +
'烛泪滴残海棠冷,忍听山歌到晓无。';
ACanvas.ArrangeText(S, S2, 215);
ACanvas.Leading := ACanvas.FontSize;
ACanvas.TextOut(X, Y, S2);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -