📄 main.pas
字号:
(* GREATIS PRINT SUITE *)
(* Copyright (C) 2001-2007 Greatis Software *)
(* web: http://www.greatis.com *)
(* support: http://greatis.com/bteam.html *)
unit Main;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Forms, Controls,
PSJob, PSStatusBar, PSPreview, PSToolbar, Db, DBTables, ExtCtrls;
type
TMainForm = class(TForm)
PreviewToolbar: TPreviewToolbar;
Preview: TPreview;
PreviewStatusBar: TPreviewStatusBar;
BioLifePrintJob: TPrintJob;
BioLifeTable: TTable;
procedure FormCreate(Sender: TObject);
procedure BioLifePrintJobDraw(Sender: TObject; TheCanvas: TCanvas;
PageIndex: Integer; Rect: TRect; Area: TDrawArea;
Target: TDrawTarget);
procedure BioLifePrintJobInitDraw(Sender: TObject; TheCanvas: TCanvas;
Target: TDrawTarget);
private
{ Private declarations }
public
{ Public declarations }
end;
var
MainForm: TMainForm;
implementation
{$R *.DFM}
procedure TMainForm.FormCreate(Sender: TObject);
begin
BioLifePrintJob.PageCount:=BioLifeTable.RecordCount;
end;
procedure TMainForm.BioLifePrintJobDraw(Sender: TObject; TheCanvas: TCanvas;
PageIndex: Integer; Rect: TRect; Area: TDrawArea; Target: TDrawTarget);
var
R: TRect;
Text: string;
Y: Integer;
Bitmap: TBitmap;
procedure DrawFieldText(var Y: Integer; FieldName,FieldValue: string);
begin
with TheCanvas,Rect do
begin
TextOut(Left,Y,FieldName);
Inc(Y,TextHeight(FieldName));
TextOut(Left,Y,FieldValue);
Inc(Y,2*Abs(Font.Height));
end;
end;
begin
with Sender as TPrintJob,BioLifeTable,TheCanvas,Font,Rect do
begin
RecNo:=PageIndex;
case Area of
daHeader:
begin
Size:=28;
Style:=[fsBold];
TextOut(Left,Top,Fields[2].AsString);
MoveTo(Left,Bottom);
LineTo(Right,Bottom);
end;
daPage:
begin
Y:=Top+Round(InchToPix(1,dirVertical));
Bitmap:=TBitmap.Create;
try
with Bitmap do
begin
Bitmap.Assign(Fields[7]);
R:=
Classes.Rect(
(Left+Right) div 2,
Y,
Right,
Y+Height*(Right-Left) div 2 div Width);
end;
DrawBitmap(TheCanvas,R,Bitmap,Target);
finally
Bitmap.Free;
end;
Size:=13;
Style:=[fsBold];
DrawFieldText(Y,'Category',Fields[1].AsString);
DrawFieldText(Y,'Species name',Fields[3].AsString);
DrawFieldText(Y,'Length',Format('%0.0f cm / %0.1f inches',[Fields[4].AsFloat,Fields[5].AsFloat]));
Text:=Fields[6].AsString;
Inc(Y,Round(InchToPix(1,dirVertical)));
Style:=[];
R:=Classes.Rect(Left,Y,Right,Bottom);
DrawText(TheCanvas.Handle,PChar(Text),Length(Text),R,DT_WORDBREAK);
end;
daFooter:
begin
Size:=10;
Style:=[];
Text:='Greatis Print Suite Demo. Copyright
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -