📄 pdffonts.pas
字号:
// make instance of TPdfDictionary and register to Xref table.
FFont := TPdfDictionary.CreateDictionary(AXref);
AXref.AddObject(FFont);
// adding element to the dictionary.
AddStrElements(FFont, TYPE1_FONT_STR_TABLE);
AddIntElements(FFont, FIXED_WIDTH_INT_TABLE);
FFont.AddItem('BaseFont', TPdfName.CreateName('Courier'));
// create "Width" table of the font.
FWidths := TPdfArray.CreateNumArray(AXref, FIXED_WIDTH_W_ARRAY);
FFont.AddInternalItem('Widths', FWidths);
SetData(FFont);
end;
{ FixedWidthBold }
constructor TPdfFixedWidthBold.Create(AXref: TPdfXref; AName: string);
var
FWidths: TPdfArray;
FFont: TPdfDictionary;
begin
inherited Create(AXref, AName);
FFont := TPdfDictionary.CreateDictionary(AXref);
AXref.AddObject(FFont);
AddStrElements(FFont, TYPE1_FONT_STR_TABLE);
AddIntElements(FFont, FIXED_WIDTH_INT_TABLE);
FFont.AddItem('BaseFont', TPdfName.CreateName('Courier-Bold'));
FWidths := TPdfArray.CreateNumArray(AXref, FIXED_WIDTH_BOLD_W_ARRAY);
FFont.AddInternalItem('Widths', FWidths);
SetData(FFont);
end;
{ FixedWidthItalic }
constructor TPdfFixedWidthItalic.Create(AXref: TPdfXref; AName: string);
var
FWidths: TPdfArray;
FFont: TPdfDictionary;
begin
inherited Create(AXref, AName);
FFont := TPdfDictionary.CreateDictionary(AXref);
AXref.AddObject(FFont);
AddStrElements(FFont, TYPE1_FONT_STR_TABLE);
AddIntElements(FFont, FIXED_WIDTH_INT_TABLE);
FFont.AddItem('BaseFont', TPdfName.CreateName('Courier-Oblique'));
FWidths := TPdfArray.CreateNumArray(AXref, FIXED_WIDTH_ITALIC_W_ARRAY);
FFont.AddInternalItem('Widths', FWidths);
SetData(FFont);
end;
{ FixedWidthBoldItalic }
constructor TPdfFixedWidthBoldItalic.Create(AXref: TPdfXref; AName: string);
var
FWidths: TPdfArray;
FFont: TPdfDictionary;
begin
inherited Create(AXref, AName);
FFont := TPdfDictionary.CreateDictionary(AXref);
AXref.AddObject(FFont);
AddStrElements(FFont, TYPE1_FONT_STR_TABLE);
AddIntElements(FFont, FIXED_WIDTH_INT_TABLE);
FFont.AddItem('BaseFont', TPdfName.CreateName('Courier-BoldOblique'));
FWidths := TPdfArray.CreateNumArray(AXref, FIXED_WIDTH_BOLDITALIC_W_ARRAY);
FFont.AddInternalItem('Widths', FWidths);
SetData(FFont);
end;
{ Arial }
constructor TPdfArial.Create(AXref: TPdfXref; AName: string);
var
FWidths: TPdfArray;
FFont: TPdfDictionary;
begin
inherited Create(AXref, AName);
FFont := TPdfDictionary.CreateDictionary(AXref);
AXref.AddObject(FFont);
AddStrElements(FFont, TYPE1_FONT_STR_TABLE);
AddIntElements(FFont, ARIAL_INT_TABLE);
FFont.AddItem('BaseFont', TPdfName.CreateName('Helvetica'));
FWidths := TPdfArray.CreateNumArray(AXref, ARIAL_W_ARRAY);
FFont.AddInternalItem('Widths', FWidths);
SetData(FFont);
end;
{ Arial-Bold }
constructor TPdfArialBold.Create(AXref: TPdfXref; AName: string);
var
FWidths: TPdfArray;
FFont: TPdfDictionary;
begin
inherited Create(AXref, AName);
FFont := TPdfDictionary.CreateDictionary(AXref);
AXref.AddObject(FFont);
AddStrElements(FFont, TYPE1_FONT_STR_TABLE);
AddIntElements(FFont, ARIAL_INT_TABLE);
FFont.AddItem('BaseFont', TPdfName.CreateName('Helvetica-Bold'));
FWidths := TPdfArray.CreateNumArray(AXref, ARIAL_BOLD_W_ARRAY);
FFont.AddInternalItem('Widths', FWidths);
SetData(FFont);
end;
{ Arial-Italic }
constructor TPdfArialItalic.Create(AXref: TPdfXref; AName: string);
var
FWidths: TPdfArray;
FFont: TPdfDictionary;
begin
inherited Create(AXref, AName);
FFont := TPdfDictionary.CreateDictionary(AXref);
AXref.AddObject(FFont);
AddStrElements(FFont, TYPE1_FONT_STR_TABLE);
AddIntElements(FFont, ARIAL_INT_TABLE);
FFont.AddItem('BaseFont', TPdfName.CreateName('Helvetica-Oblique'));
FWidths := TPdfArray.CreateNumArray(AXref, ARIAL_ITALIC_W_ARRAY);
FFont.AddInternalItem('Widths', FWidths);
SetData(FFont);
end;
{ Arial-BoldItalic }
constructor TPdfArialBoldItalic.Create(AXref: TPdfXref; AName: string);
var
FWidths: TPdfArray;
FFont: TPdfDictionary;
begin
inherited Create(AXref, AName);
FFont := TPdfDictionary.CreateDictionary(AXref);
AXref.AddObject(FFont);
AddStrElements(FFont, TYPE1_FONT_STR_TABLE);
AddIntElements(FFont, ARIAL_INT_TABLE);
FFont.AddItem('BaseFont', TPdfName.CreateName('Helvetica-BoldOblique'));
FWidths := TPdfArray.CreateNumArray(AXref, ARIAL_BOLDITALIC_W_ARRAY);
FFont.AddInternalItem('Widths', FWidths);
SetData(FFont);
end;
{ TPdfTimesRoman }
constructor TPdfTimesRoman.Create(AXref: TPdfXref; AName: string);
var
FWidths: TPdfArray;
FFont: TPdfDictionary;
begin
inherited Create(AXref, AName);
FFont := TPdfDictionary.CreateDictionary(AXref);
AXref.AddObject(FFont);
AddStrElements(FFont, TYPE1_FONT_STR_TABLE);
AddIntElements(FFont, TIMES_INT_TABLE);
FFont.AddItem('BaseFont', TPdfName.CreateName('Times-Roman'));
FWidths := TPdfArray.CreateNumArray(AXref, TIMES_ROMAN_W_ARRAY);
FFont.AddInternalItem('Widths', FWidths);
SetData(FFont);
end;
{ TPdfTimesBold }
constructor TPdfTimesBold.Create(AXref: TPdfXref; AName: string);
var
FWidths: TPdfArray;
FFont: TPdfDictionary;
begin
inherited Create(AXref, AName);
FFont := TPdfDictionary.CreateDictionary(AXref);
AXref.AddObject(FFont);
AddStrElements(FFont, TYPE1_FONT_STR_TABLE);
AddIntElements(FFont, TIMES_INT_TABLE);
FFont.AddItem('BaseFont', TPdfName.CreateName('Times-Bold'));
FWidths := TPdfArray.CreateNumArray(AXref, TIMES_BOLD_W_ARRAY);
FFont.AddInternalItem('Widths', FWidths);
SetData(FFont);
end;
{ TPdfTimesItalic }
constructor TPdfTimesItalic.Create(AXref: TPdfXref; AName: string);
var
FWidths: TPdfArray;
FFont: TPdfDictionary;
begin
inherited Create(AXref, AName);
FFont := TPdfDictionary.CreateDictionary(AXref);
AXref.AddObject(FFont);
AddStrElements(FFont, TYPE1_FONT_STR_TABLE);
AddIntElements(FFont, TIMES_INT_TABLE);
FFont.AddItem('BaseFont', TPdfName.CreateName('Times-Italic'));
FWidths := TPdfArray.CreateNumArray(AXref, TIMES_ITALIC_W_ARRAY);
FFont.AddInternalItem('Widths', FWidths);
SetData(FFont);
end;
{ TPdfTimesBoldItalic }
constructor TPdfTimesBoldItalic.Create(AXref: TPdfXref; AName: string);
var
FWidths: TPdfArray;
FFont: TPdfDictionary;
begin
inherited Create(AXref, AName);
FFont := TPdfDictionary.CreateDictionary(AXref);
AXref.AddObject(FFont);
AddStrElements(FFont, TYPE1_FONT_STR_TABLE);
AddIntElements(FFont, TIMES_INT_TABLE);
FFont.AddItem('BaseFont', TPdfName.CreateName('Times-BoldItalic'));
FWidths := TPdfArray.CreateNumArray(AXref, TIMES_BOLDITALIC_W_ARRAY);
FFont.AddInternalItem('Widths', FWidths);
SetData(FFont);
end;
{ TPdfScript }
constructor TPdfScript.Create(AXref: TPdfXref; AName: string);
var
FWidths: TPdfArray;
FFontDescriptor: TPdfDictionary;
FFont: TPdfDictionary;
begin
inherited Create(AXref, AName);
FFont := TPdfDictionary.CreateDictionary(AXref);
AXref.AddObject(FFont);
AddStrElements(FFont, TYPE1_FONT_STR_TABLE);
AddIntElements(FFont, SCRIPT_INT_TABLE);
FFont.AddItem('BaseFont', TPdfName.CreateName('Script'));
FFontDescriptor := TPdfDictionary.CreateDictionary(AXref);
AXref.AddObject(FFontDescriptor);
AddStrElements(FFontDescriptor, SCRIPT_DISC_STR_TABLE);
AddIntElements(FFontDescriptor, SCRIPT_DISC_INT_TABLE);
FFontDescriptor.AddItem('FontBBox',
TPdfArray.CreateNumArray(AXref, SCRIPT_BBOX));
FFont.AddItem('FontDescriptor', FFontDescriptor);
FWidths := TPdfArray.CreateNumArray(AXref, SCRIPT_W_ARRAY);
FFont.AddItem('Widths', FWidths);
SetData(FFont);
end;
initialization
RegisterClassAlias(TPdfFixedWidth, 'FixedWidth');
RegisterClassAlias(TPdfFixedWidthBold, 'FixedWidth-Bold');
RegisterClassAlias(TPdfFixedWidthBoldItalic, 'FixedWidth-BoldItalic');
RegisterClassAlias(TPdfFixedWidthItalic, 'FixedWidth-Italic');
RegisterClassAlias(TPdfArial, 'Arial');
RegisterClassAlias(TPdfArialBold, 'Arial-Bold');
RegisterClassAlias(TPdfArialBoldItalic, 'Arial-BoldItalic');
RegisterClassAlias(TPdfArialItalic, 'Arial-Italic');
RegisterClassAlias(TPdfTimesRoman, 'Times-Roman');
RegisterClassAlias(TPdfTimesBold, 'Times-Bold');
RegisterClassAlias(TPdfTimesItalic, 'Times-Italic');
RegisterClassAlias(TPdfTimesBoldItalic, 'Times-BoldItalic');
// RegisterClassAlias(TPdfScript, 'Script');
// RegisterClassAlias(TPdfSymbol, 'Symbol');
finalization
UnRegisterClass(TPdfFixedWidth);
UnRegisterClass(TPdfFixedWidthBold);
UnRegisterClass(TPdfFixedWidthBoldItalic);
UnRegisterClass(TPdfFixedWidthBold);
UnRegisterClass(TPdfArial);
UnRegisterClass(TPdfArialBold);
UnRegisterClass(TPdfArialBoldItalic);
UnRegisterClass(TPdfArialBold);
UnRegisterClass(TPdfTimesRoman);
UnRegisterClass(TPdfTimesBold);
UnRegisterClass(TPdfTimesItalic);
UnRegisterClass(TPdfTimesBoldItalic);
// UnRegisterClass(TPdfScript);
// UnRegisterClass(TPdfSymbol);
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -