📄 embeddedpdffonts.pas
字号:
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;
{ TPdfTahoma }
constructor TPdfTahoma.Create(AXref: TPdfXref; AName: string);
var FFont: TPdfDictionary;
FFontDescriptor: TPdfDictionary;
begin
inherited Create(AXref, AName);
// create font
FFont := TPdfDictionary.CreateDictionary(AXref);
AXref.AddObject(FFont);
AddStrElements(FFont, TRUETYPE_FONT_STR_TABLE);
AddIntElements(FFont, STD_INT_TABLE);
FFont.AddItem('BaseFont', TPdfName.CreateName('Tahoma'));
FFont.AddItem('Widths', TPdfArray.CreateNumArray(AXref, Tahoma_WIDTH_W_ARRAY));
// create font descriptor.
FFontDescriptor := TPdfDictionary.CreateDictionary(AXref);
AXref.AddObject(FFontDescriptor);
FFontDescriptor.AddNameItem('Type', 'FontDescriptor');
FFontDescriptor.AddNameItem('BaseFont', 'Tahoma');
FFontDescriptor.AddNumberItem('Flags', PDF_FONT_STD_CHARSET);
FFontDescriptor.AddItem('FontBBox', TPdfArray.CreateNumArray(AXref, Tahoma_FONT_BBOX));
AddIntElements(FFontDescriptor, Tahoma_FONT_DISC_INT_TABLE);
//Add descriptor to font
FFont.AddItem('FontDescriptor', FFontDescriptor);
SetData(FFont);
end;
{ TPdfTahomaBold }
constructor TPdfTahomaBold.Create(AXref: TPdfXref; AName: string);
var FFont: TPdfDictionary;
FFontDescriptor: TPdfDictionary;
begin
inherited Create(AXref, AName);
// create font
FFont := TPdfDictionary.CreateDictionary(AXref);
AXref.AddObject(FFont);
AddStrElements(FFont, TRUETYPE_FONT_STR_TABLE);
AddIntElements(FFont, STD_INT_TABLE);
FFont.AddItem('BaseFont', TPdfName.CreateName('Tahoma,Bold'));
FFont.AddItem('Widths', TPdfArray.CreateNumArray(AXref, Tahoma_Bold_WIDTH_W_ARRAY));
// create font descriptor.
FFontDescriptor := TPdfDictionary.CreateDictionary(AXref);
AXref.AddObject(FFontDescriptor);
FFontDescriptor.AddNameItem('Type', 'FontDescriptor');
FFontDescriptor.AddNameItem('BaseFont', 'Tahoma,Bold');
FFontDescriptor.AddNumberItem('Flags', 16416);
FFontDescriptor.AddItem('FontBBox', TPdfArray.CreateNumArray(AXref, Tahoma_Bold_FONT_BBOX));
AddIntElements(FFontDescriptor, Tahoma_Bold_FONT_DISC_INT_TABLE);
//Add descriptor to font
FFont.AddItem('FontDescriptor', FFontDescriptor);
SetData(FFont);
end;
{ TPdfTrebuchetMS }
constructor TPdfTrebuchetMS.Create(AXref: TPdfXref; AName: string);
var FFont: TPdfDictionary;
FFontDescriptor: TPdfDictionary;
begin
inherited Create(AXref, AName);
// create font
FFont := TPdfDictionary.CreateDictionary(AXref);
AXref.AddObject(FFont);
AddStrElements(FFont, TRUETYPE_FONT_STR_TABLE);
AddIntElements(FFont, STD_INT_TABLE);
FFont.AddItem('BaseFont', TPdfName.CreateName('TrebuchetMS'));
FFont.AddItem('Widths', TPdfArray.CreateNumArray(AXref, TrebuchetMS_WIDTH_W_ARRAY));
// create font descriptor.
FFontDescriptor := TPdfDictionary.CreateDictionary(AXref);
AXref.AddObject(FFontDescriptor);
FFontDescriptor.AddNameItem('Type', 'FontDescriptor');
FFontDescriptor.AddNameItem('BaseFont', 'TrebuchetMS');
FFontDescriptor.AddNumberItem('Flags', PDF_FONT_STD_CHARSET);
FFontDescriptor.AddItem('FontBBox', TPdfArray.CreateNumArray(AXref, TrebuchetMS_FONT_BBOX));
AddIntElements(FFontDescriptor, TrebuchetMS_FONT_DISC_INT_TABLE);
//Add descriptor to font
FFont.AddItem('FontDescriptor', FFontDescriptor);
SetData(FFont);
end;
{ TPdfTrebuchetMSBold }
constructor TPdfTrebuchetMSBold.Create(AXref: TPdfXref; AName: string);
var FFont: TPdfDictionary;
FFontDescriptor: TPdfDictionary;
begin
inherited Create(AXref, AName);
// create font
FFont := TPdfDictionary.CreateDictionary(AXref);
AXref.AddObject(FFont);
AddStrElements(FFont, TRUETYPE_FONT_STR_TABLE);
AddIntElements(FFont, STD_INT_TABLE);
FFont.AddItem('BaseFont', TPdfName.CreateName('TrebuchetMS,Bold'));
FFont.AddItem('Widths', TPdfArray.CreateNumArray(AXref, TrebuchetMS_Bold_WIDTH_W_ARRAY));
// create font descriptor.
FFontDescriptor := TPdfDictionary.CreateDictionary(AXref);
AXref.AddObject(FFontDescriptor);
FFontDescriptor.AddNameItem('Type', 'FontDescriptor');
FFontDescriptor.AddNameItem('BaseFont', 'TrebuchetMS,Bold');
FFontDescriptor.AddNumberItem('Flags', 16416);
FFontDescriptor.AddItem('FontBBox', TPdfArray.CreateNumArray(AXref, TrebuchetMS_Bold_FONT_BBOX));
AddIntElements(FFontDescriptor, TrebuchetMS_Bold_FONT_DISC_INT_TABLE);
//Add descriptor to font
FFont.AddItem('FontDescriptor', FFontDescriptor);
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(TPdfTahoma, 'Tahoma');
RegisterClassAlias(TPdfTahomaBold, 'Tahoma-Bold');
RegisterClassAlias(TPdfTrebuchetMS, 'TrebuchetMS');
RegisterClassAlias(TPdfTrebuchetMSBold, 'TrebuchetMS-Bold');
// 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(TPdfTahoma);
UnRegisterClass(TPdfTahomaBold);
UnRegisterClass(TPdfTrebuchetMS);
UnRegisterClass(TPdfTrebuchetMSBold);
// UnRegisterClass(TPdfScript);
// UnRegisterClass(TPdfSymbol);
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -