📄 gmlabelprinter.pas
字号:
end;
function TGmLabelTemplateInfo.GetPageExtent(Measurement: TGmMeasurement): TGmSize;
begin
Result := ConvertGmSize(FPageExtent, gmInches, Measurement);
end;
procedure TGmLabelTemplateInfo.SetCornerRadius(Measurement: TGmMeasurement; Value: Extended);
begin
FCornerRadiusInch := ConvertValue(Value, Measurement, gmInches);
end;
procedure TGmLabelTemplateInfo.SetLabelHeight(Measurement: TGmMeasurement; Value: Extended);
begin
FLabelHeightInch := ConvertValue(Value, Measurement, gmInches);
end;
procedure TGmLabelTemplateInfo.SetLabelWidth(Measurement: TGmMeasurement; Value: Extended);
begin
FLabelWidthInch := ConvertValue(Value, Measurement, gmInches);
end;
procedure TGmLabelTemplateInfo.SetLabelSpacingHorz(Measurement: TGmMeasurement; Value: Extended);
begin
FLabelSpacingHorzInch := ConvertValue(Value, Measurement, gmInches);
end;
procedure TGmLabelTemplateInfo.SetLabelSpacingVert(Measurement: TGmMeasurement; Value: Extended);
begin
FLabelSpacingVertInch := ConvertValue(Value, Measurement, gmInches);
end;
procedure TGmLabelTemplateInfo.SetNumLabelsHorz(Value: integer);
begin
if (Value = 0) or (Value = FNumHorz) then Exit;
FNumHorz := Value;
end;
procedure TGmLabelTemplateInfo.SetNumLabelsVert(Value: integer);
begin
if (Value = 0) or (Value = FNumVert) then Exit;
FNumVert := Value;
end;
procedure TGmLabelTemplateInfo.SetOffsetX(Measurement: TGmMeasurement; Value: Extended);
begin
FOffsetXInch := ConvertValue(Value, Measurement, gmInches);
end;
procedure TGmLabelTemplateInfo.SetOffsetY(Measurement: TGmMeasurement; Value: Extended);
begin
FOffsetYInch := ConvertValue(Value, Measurement, gmInches);
end;
procedure TGmLabelTemplateInfo.SetPageExtent(Measurement: TGmMeasurement; Value: TGmSize);
begin
FPageExtent := ConvertGmSize(Value, Measurement, gmInches);
end;
procedure TGmLabelTemplateInfo.SetPaperSize(Value: TGmPaperSize);
begin
if FPaperSize = Custom then Exit;
FPaperSize := Value;
FPageExtent := GetPaperSizeInch(FPaperSize);
end;
procedure TGmLabelTemplateInfo.SetTemplateName(Value: string);
begin
if FTemplateName = Value then Exit;
FTemplateName := Value;
FTemplateID := Custom_Template;
end;
//------------------------------------------------------------------------------
// *** TGmLabelTemplateList ***
constructor TGmLabelTemplateList.Create;
begin
inherited Create(True);
FDestroying := False;
AddStandardTemplates;
end;
function TGmLabelTemplateList.AddTemplate(ATemplate: TGmLabelTemplate;
AName: string;
NumHorz,
NumVert: integer;
LabelWidth,
LabelHeight,
CornerRadius,
SpacingHorz,
SpacingVert,
OffsetX,
OffsetY: Extended;
PageExtent: PGmSize;
PaperSize: TGmPaperSize;
Orientation: TGmOrientation;
LabelShape: TGmLabelShape;
Measurement: TGmMeasurement): TGmLabelTemplateInfo;
var
NewTemplate: TGmLabelTemplateInfo;
var
PageSize: TGmSize;
begin
if PaperSize <> Custom then
PageSize := ConvertGmSize(GetPaperSizeInch(PaperSize), Measurement, gmInches)
else
begin
if PageExtent <> nil then
PageSize := ConvertGmSize(PageExtent^, Measurement, gmInches)
else
PageSize := ConvertGmSize(GetPaperSizeInch(A4), Measurement, gmInches);
end;
NewTemplate := TGmLabelTemplateInfo.Create;
NewTemplate.FTemplateID := ATemplate;
NewTemplate.FTemplateName := AName;
NewTemplate.FNumHorz := NumHorz;
NewTemplate.FNumVert := NumVert;
NewTemplate.FLabelHeightInch := ConvertValue(LabelHeight, Measurement, gmInches);
NewTemplate.FLabelWidthInch := ConvertValue(LabelWidth, Measurement, gmInches);
NewTemplate.FLabelSpacingHorzInch := ConvertValue(SpacingHorz, Measurement, gmInches);
NewTemplate.FLabelSpacingVertInch := ConvertValue(SpacingVert, Measurement, gmInches);
NewTemplate.FOffsetXInch := ConvertValue(OffsetX, Measurement, gmInches);
NewTemplate.FOffsetYInch := ConvertValue(OffsetY, Measurement, gmInches);
NewTemplate.FPageExtent := PageSize;
NewTemplate.FPaperSize := PaperSize;
NewTemplate.FOrientation := Orientation;
NewTemplate.FLabelShape := LabelShape;
NewTemplate.FCornerRadiusInch := ConvertValue(CornerRadius, Measurement, gmInches);
Add(NewTemplate);
Result := NewTemplate;
end;
function TGmLabelTemplateList.GetTemplate(index: integer): TGmLabelTemplateInfo;
begin
if index = -1 then
begin
Result := nil;
Exit;
end;
Result := TGmLabelTemplateInfo(Items[index]);
end;
function TGmLabelTemplateList.GetTemplateFromName(ATemplateName: string): TGmLabelTemplateInfo;
var
ICount: integer;
begin
Result := nil;
for ICount := 0 to Count-1 do
if LowerCase(Template[ICount].TemplateName) = LowerCase(ATemplateName) then
Result := Template[ICount];
end;
function TGmLabelTemplateList.GetTemplateIndex(ATemplate: TGmLabelTemplateInfo): integer;
begin
Result := IndexOf(ATemplate);
end;
function TGmLabelTemplateList.PreDefinedTemplate(Value: TGmLabelTemplate): TGmLabelTemplateInfo;
var
ICount: integer;
begin
Result := nil;
for ICount := 0 to Count-1 do
if Template[ICount].TemplateID = Value then Result := Template[ICount];
end;
procedure TGmLabelTemplateList.AddStandardTemplates;
begin
AddTemplate(L7159_Address, 'L7159_Address', 3, 8, 2.52, 1.33, DEFAULT_CORNER_INCH, 2.63, 1.33, 0.25, 0.54, nil, A4, gmPortrait, gmLabelRoundRect, gmInches);
AddTemplate(L7160_Address, 'L7160_Address', 3, 7, 2.50, 1.50, DEFAULT_CORNER_INCH, 2.60, 1.50, 0.28, 0.63, nil, A4, gmPortrait, gmLabelRoundRect, gmInches);
AddTemplate(L7161_Address, 'L7161_Address', 3, 6, 2.50, 1.83, DEFAULT_CORNER_INCH, 2.60, 1.83, 0.28, 0.38, nil, A4, gmPortrait, gmLabelRoundRect, gmInches);
AddTemplate(L7162_Address, 'L7162_Address', 2, 8, 3.90, 1.33, DEFAULT_CORNER_INCH, 4.00, 1.33, 0.18, 0.54, nil, A4, gmPortrait, gmLabelRoundRect, gmInches);
AddTemplate(L7163_Address, 'L7163_Address', 2, 7, 3.90, 1.50, DEFAULT_CORNER_INCH, 4.00, 1.50, 0.18, 0.63, nil, A4, gmPortrait, gmLabelRoundRect, gmInches);
AddTemplate(L7164_Address, 'L7164_Address', 3, 4, 2.50, 2.83, DEFAULT_CORNER_INCH, 2.60, 2.83, 0.28, 0.21, nil, A4, gmPortrait, gmLabelRoundRect, gmInches);
AddTemplate(L7165_Parcel, 'L7165_Parcel', 2, 4, 3.90, 2.67, DEFAULT_CORNER_INCH, 4.00, 2.67, 0.18, 0.54, nil, A4, gmPortrait, gmLabelRoundRect, gmInches);
AddTemplate(L7166_Parcel, 'L7166_Parcel', 2, 3, 3.90, 3.67, DEFAULT_CORNER_INCH, 4.00, 3.67, 0.18, 0.38, nil, A4, gmPortrait, gmLabelRoundRect, gmInches);
AddTemplate(L7167_Shipping, 'L7167_Shipping', 1, 1, 7.86, 11.38, DEFAULT_CORNER_INCH, 7.86, 11.38, 0.20, 0.18, nil, A4, gmPortrait, gmLabelRoundRect, gmInches);
AddTemplate(L7168_Shipping, 'L7168_Shipping', 1, 2, 7.86, 5.65, DEFAULT_CORNER_INCH, 7.86, 5.65, 0.18, 0.22, nil, A4, gmPortrait, gmLabelRoundRect, gmInches);
AddTemplate(L7169_Parcel, 'L7169_Parcel', 2, 2, 5.47,3.90, DEFAULT_CORNER_INCH, 5.47, 4.00, 0.40, 0.18, nil, A4, gmLandscape, gmLabelRoundRect, gmInches);
AddTemplate(L7170_Eurofolio, 'L7170_Eurofolio', 1, 24, 5.28, 0.43, DEFAULT_CORNER_INCH, 5.28, 0.43, 1.50, 0.68, nil, A4, gmPortrait, gmLabelRoundRect, gmInches);
AddTemplate(L7171_LeverArch, 'L7171_LeverArch', 4, 1, 2.36, 7.88, DEFAULT_CORNER_INCH, 2.36, 7.88, 1.15, 0.20, nil, A4, gmLandscape, gmLabelRoundRect, gmInches);
AddTemplate(L7172_RingBinder, 'L7172_RingBinder', 2, 9, 3.94,1.18, DEFAULT_CORNER_INCH, 4.04, 1.18, 0.15, 0.56, nil, A4, gmPortrait, gmLabelRoundRect, gmInches);
AddTemplate(L7173_Shipping, 'L7173_Shipping', 2, 5, 3.90, 2.24,DEFAULT_CORNER_INCH, 4.00, 2.24, 0.18, 0.26, nil, A4, gmPortrait, gmLabelRoundRect, gmInches);
AddTemplate(L7263_Address, 'L7263_Address', 2, 7, 3.90, 1.50,DEFAULT_CORNER_INCH, 4.00, 1.50, 0.18, 0.63, nil, A4, gmPortrait, gmLabelRoundRect, gmInches);
AddTemplate(J8660_Diskette, 'J8660_Diskette', 2, 5, 2.76, 2.05, DEFAULT_CORNER_INCH, 3.67, 2.05, 0.92, 0.76, nil, A4, gmPortrait, gmLabelRoundRect, gmInches);
AddTemplate(Avery_5160_Address, 'Avery_5160_Address', 3, 10, 2.63, 1.00, DEFAULT_CORNER_INCH, 2.75, 1.00, 0.19, 0.50, nil, Letter, gmPortrait, gmLabelRoundRect, gmInches);
AddTemplate(Herma_4209, 'Herma_4209', 2, 16, 96.0, 16.9, DEFAULT_CORNER_MM, 98.0, 16.90, 8.00, 12.0, nil, A4, gmPortrait, gmLabelRoundRect, gmMillimeters);
end;
function TGmLabelTemplateList.AddCustomTemplate(AName: string;
NumHorz,
NumVert: integer;
LabelWidth,
LabelHeight,
CornerRadius,
SpacingHorz,
SpacingVert,
OffsetX,
OffsetY: Extended;
PageSize: PGmSize;
PaperSize: TGmPaperSize;
LabelShape: TGmLabelShape;
Measurement: TGmMeasurement): TGmLabelTemplateInfo;
begin
Result := AddTemplate(Custom_Template, AName, NumHorz, NumVert, LabelWidth, LabelHeight, CornerRadius,
SpacingHorz, SpacingVert, OffsetX, OffsetY, PageSize, PaperSize, gmPortrait, LabelShape, Measurement);
end;
procedure TGmLabelTemplateList.ImportFromFile(AFilename: string);
var
ICount: integer;
Ini: TIniFile;
ASections: TStringList;
ATemplate: TGmLabelTemplateInfo;
begin
ASections := TStringList.Create;
Clear;
Ini := TIniFile.Create(AFilename);
try
Ini.ReadSections(ASections);
for ICount := 0 to ASections.Count-1 do
begin
if TemplateFromName[ASections[ICount]] = nil then
begin
ATemplate := TGmLabelTemplateInfo.Create;
ATemplate.TemplateName := ASections[ICount];
ATemplate.FTemplateID := TGmLabelTemplate(Ini.ReadInteger(ATemplate.TemplateName, 'id', 0));
ATemplate.FTemplateName := ASections[ICount];
ATemplate.FNumHorz := Ini.ReadInteger(ATemplate.TemplateName, 'nh', 0);
ATemplate.FNumVert := Ini.ReadInteger(ATemplate.TemplateName, 'nv', 0);
ATemplate.FLabelHeightInch := Ini.ReadFloat(ATemplate.TemplateName, 'lh', 0);
ATemplate.FLabelWidthInch := Ini.ReadFloat(ATemplate.TemplateName, 'lw', 0);
ATemplate.FLabelSpacingHorzInch := Ini.ReadFloat(ATemplate.TemplateName, 'sh', 0);
ATemplate.FLabelSpacingVertInch := Ini.ReadFloat(ATemplate.TemplateName, 'sv', 0);
ATemplate.FOffsetXInch := Ini.ReadFloat(ATemplate.TemplateName, 'ox', 0);
ATemplate.FOffsetYInch := Ini.ReadFloat(ATemplate.TemplateName, 'oy', 0);
ATemplate.FPageExtent.Width := Ini.ReadFloat(ATemplate.TemplateName, 'pw', 0);
ATemplate.FPageExtent.Height := Ini.ReadFloat(ATemplate.TemplateName, 'ph', 0);
ATemplate.FPaperSize := StrToPaperSize(Ini.ReadString(ATemplate.TemplateName, 'ps', 'A4'));
ATemplate.FOrientation := TGmOrientation(Ini.ReadInteger(ATemplate.TemplateName, 'o', 0));
ATemplate.FLabelShape := TGmLabelShape(Ini.ReadInteger(ATemplate.TemplateName, 'ls', 0));
ATemplate.FCornerRadiusInch := Ini.ReadFloat(ATemplate.TemplateName, 'cr', DEFAULT_CORNER_INCH);
Add(ATemplate);
end;
end;
finally
Ini.Free;
ASections.Free;
end;
end;
procedure TGmLabelTemplateList.Templates(AStrings: TStrings);
var
ICount: integer;
begin
AStrings.Clear;
try
AStrings.BeginUpdate;
for ICount := 0 to Count-1 do
AStrings.Add(Template[ICount].TemplateName);
finally
AStrings.EndUpdate;
end;
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -