mirror of
https://github.com/unidoc/unipdf.git
synced 2025-04-27 13:48:51 +08:00
784 lines
26 KiB
Go
784 lines
26 KiB
Go
/*
|
|
* This file is subject to the terms and conditions defined in
|
|
* file 'LICENSE.md', which is part of this source code package.
|
|
*/
|
|
/*
|
|
* The embedded character metrics specified in this file are distributed under the terms listed in
|
|
* ./afms/MustRead.html.
|
|
*/
|
|
|
|
package fonts
|
|
|
|
type FontWeight int
|
|
|
|
const (
|
|
FontWeightMedium FontWeight = iota
|
|
FontWeightBold
|
|
FontWeightRoman
|
|
)
|
|
|
|
type FontMetrics struct {
|
|
FontName string
|
|
FontFamily string
|
|
FirstChar int
|
|
LastChar int
|
|
Descent float64
|
|
FontBbox [4]float64
|
|
FontWeight FontWeight
|
|
CapHeight float64
|
|
Flags uint
|
|
XHeight float64
|
|
ItalicAngle float64
|
|
Ascent float64
|
|
Widths []float64
|
|
MissingWidth uint
|
|
Leading uint
|
|
Vscale float64
|
|
Hscale float64
|
|
FontMatrix [6]float64
|
|
}
|
|
|
|
type DescriptorLiteral struct {
|
|
FontName string
|
|
FontFamily string
|
|
Flags uint
|
|
FontBBox [4]float64
|
|
ItalicAngle float64
|
|
Ascent float64
|
|
Descent float64
|
|
Leading uint
|
|
CapHeight float64
|
|
XHeight float64
|
|
StemV float64
|
|
StemH float64
|
|
AvgWidth float64
|
|
MaxWidth float64
|
|
MissingWidth float64
|
|
}
|
|
|
|
var (
|
|
Standard14Fonts = map[string]Font{
|
|
"Courier": NewFontCourier(),
|
|
"Courier-Bold": NewFontCourierBold(),
|
|
"Courier-BoldOblique": NewFontCourierBoldOblique(),
|
|
"Courier-Oblique": NewFontCourierOblique(),
|
|
"Helvetica": NewFontHelvetica(),
|
|
"Helvetica-Bold": NewFontHelveticaBold(),
|
|
"Helvetica-BoldOblique": NewFontHelveticaBoldOblique(),
|
|
"Helvetica-Oblique": NewFontHelveticaOblique(),
|
|
"Times-Roman": NewFontTimesRoman(),
|
|
"Times-Bold": NewFontTimesBold(),
|
|
"Times-BoldItalic": NewFontTimesBoldItalic(),
|
|
"Times-Italic": NewFontTimesItalic(),
|
|
"Symbol": NewFontSymbol(),
|
|
"ZapfDingbats": NewFontZapfDingbats(),
|
|
}
|
|
|
|
Standard14FontMetrics = map[string]FontMetrics{
|
|
"Courier": fmCourier,
|
|
"Courier-Bold": fmCourierBold,
|
|
"Courier-BoldOblique": fmCourierBoldOblique,
|
|
"Courier-Oblique": fmCourierOblique,
|
|
"Helvetica": fmHelvetica,
|
|
"Helvetica-Bold": fmHelveticaBold,
|
|
"Helvetica-BoldOblique": fmHelveticaBoldOblique,
|
|
"Helvetica-Oblique": fmHelveticaOblique,
|
|
"Times-Roman": fmTimesRoman,
|
|
"Times-Bold": fmTimesBold,
|
|
"Times-BoldItalic": fmTimesBoldItalic,
|
|
"Times-Italic": fmTimesItalic,
|
|
"Symbol": fmSymbol,
|
|
"ZapfDingbats": fmZapfDingbats,
|
|
}
|
|
|
|
fmCourier = FontMetrics{
|
|
FontName: "Courier",
|
|
FontFamily: "Courier",
|
|
FirstChar: 0,
|
|
LastChar: 0,
|
|
Descent: -194.0,
|
|
FontBbox: [4]float64{-6.0, -249.0, 639.0, 803.0},
|
|
FontWeight: FontWeightMedium,
|
|
CapHeight: 572.0,
|
|
Flags: 64,
|
|
XHeight: 434.0,
|
|
ItalicAngle: 0.0,
|
|
Ascent: 627.0,
|
|
Widths: []float64{},
|
|
MissingWidth: 600,
|
|
Leading: 0,
|
|
Vscale: 0.0,
|
|
Hscale: 0.0,
|
|
FontMatrix: [6]float64{0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
|
|
}
|
|
|
|
fmCourierBold = FontMetrics{
|
|
FontName: "Courier-Bold",
|
|
FontFamily: "Courier",
|
|
FirstChar: 0,
|
|
LastChar: 0,
|
|
Descent: -194.0,
|
|
FontBbox: [4]float64{-88.0, -249.0, 697.0, 811.0},
|
|
FontWeight: FontWeightBold,
|
|
CapHeight: 572.0,
|
|
Flags: 64,
|
|
XHeight: 434.0,
|
|
ItalicAngle: 0.0,
|
|
Ascent: 627.0,
|
|
Widths: []float64{},
|
|
MissingWidth: 600,
|
|
Leading: 0,
|
|
Vscale: 0.0,
|
|
Hscale: 0.0,
|
|
FontMatrix: [6]float64{0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
|
|
}
|
|
|
|
fmCourierBoldOblique = FontMetrics{
|
|
FontName: "Courier-BoldOblique",
|
|
FontFamily: "Courier",
|
|
FirstChar: 0,
|
|
LastChar: 0,
|
|
Descent: -194.0,
|
|
FontBbox: [4]float64{-49.0, -249.0, 758.0, 811.0},
|
|
FontWeight: FontWeightBold,
|
|
CapHeight: 572.0,
|
|
Flags: 64,
|
|
XHeight: 434.0,
|
|
ItalicAngle: -11.0,
|
|
Ascent: 627.0,
|
|
Widths: []float64{},
|
|
MissingWidth: 600,
|
|
Leading: 0,
|
|
Vscale: 0.0,
|
|
Hscale: 0.0,
|
|
FontMatrix: [6]float64{0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
|
|
}
|
|
|
|
fmCourierOblique = FontMetrics{
|
|
FontName: "Courier-Oblique",
|
|
FontFamily: "Courier",
|
|
FirstChar: 0,
|
|
LastChar: 0,
|
|
Descent: -194.0,
|
|
FontBbox: [4]float64{-49.0, -249.0, 749, 803},
|
|
FontWeight: FontWeightMedium,
|
|
CapHeight: 572.0,
|
|
Flags: 64,
|
|
XHeight: 434.0,
|
|
ItalicAngle: -11.0,
|
|
Ascent: 627.0,
|
|
Widths: []float64{},
|
|
MissingWidth: 600,
|
|
Leading: 0,
|
|
Vscale: 0.0,
|
|
Hscale: 0.0,
|
|
FontMatrix: [6]float64{0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
|
|
}
|
|
|
|
fmHelvetica = FontMetrics{
|
|
FontName: "Helvetica",
|
|
FontFamily: "Helvetica",
|
|
FirstChar: 0,
|
|
LastChar: 255,
|
|
Descent: -207.0,
|
|
FontBbox: [4]float64{-166.0, -225.0, 1000.0, 931.0},
|
|
FontWeight: FontWeightMedium,
|
|
CapHeight: 718.0,
|
|
Flags: 0,
|
|
XHeight: 523.0,
|
|
ItalicAngle: 0.0,
|
|
Ascent: 718.0,
|
|
Widths: []float64{
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
278, 278, 355, 556, 556, 889, 667, 222, 333, 333, 389, 584, 278, 333, 278, 278,
|
|
556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 278, 278, 584, 584, 584, 556,
|
|
1015, 667, 667, 722, 722, 667, 611, 778, 722, 278, 500, 667, 556, 833, 722, 778,
|
|
667, 778, 722, 667, 611, 722, 667, 944, 667, 667, 611, 278, 278, 278, 469, 556,
|
|
222, 556, 556, 500, 556, 556, 278, 556, 556, 222, 222, 500, 222, 833, 556, 556,
|
|
556, 556, 333, 500, 278, 556, 500, 722, 500, 500, 500, 334, 260, 334, 584, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 333, 556, 556, 167, 556, 556, 556, 556, 191, 333, 556, 333, 333,
|
|
500, 500, 0, 556, 556, 556, 278, 0, 537, 350, 222, 333, 333, 556, 1000, 1000, 0,
|
|
611, 0, 333, 333, 333, 333, 333, 333, 333, 333, 0, 333, 333, 0, 333, 333, 333,
|
|
1000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1000, 0, 370, 0, 0, 0, 0,
|
|
556, 778, 1000, 365, 0, 0, 0, 0, 0, 889, 0, 0, 0, 278, 0, 0, 222, 611, 944, 611,
|
|
0, 0, 0, 0},
|
|
MissingWidth: 0,
|
|
Leading: 0,
|
|
Vscale: 0.0,
|
|
Hscale: 0.0,
|
|
FontMatrix: [6]float64{0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
|
|
}
|
|
|
|
fmHelveticaBold = FontMetrics{
|
|
FontName: "Helvetica-Bold",
|
|
FontFamily: "Helvetica",
|
|
FirstChar: 0,
|
|
LastChar: 255,
|
|
Descent: -207.0,
|
|
FontBbox: [4]float64{-170.0, -228.0, 1003.0, 962.0},
|
|
FontWeight: FontWeightBold,
|
|
CapHeight: 718.0,
|
|
Flags: 0,
|
|
XHeight: 532.0,
|
|
ItalicAngle: 0.0,
|
|
Ascent: 718.0,
|
|
Widths: []float64{
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
278, 333, 474, 556, 556, 889, 722, 278, 333, 333, 389, 584, 278, 333,
|
|
278, 278, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 333, 333,
|
|
584, 584, 584, 611, 975, 722, 722, 722, 722, 667, 611, 778, 722, 278,
|
|
556, 722, 611, 833, 722, 778, 667, 778, 722, 667, 611, 722, 667, 944,
|
|
667, 667, 611, 333, 278, 333, 584, 556, 278, 556, 611, 556, 611, 556,
|
|
333, 611, 611, 278, 278, 556, 278, 889, 611, 611, 611, 611, 389, 556,
|
|
333, 611, 556, 778, 556, 556, 500, 389, 280, 389, 584, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 333, 556, 556, 167, 556, 556, 556, 556, 238, 500,
|
|
556, 333, 333, 611, 611, 0, 556, 556, 556, 278, 0, 556, 350, 278, 500,
|
|
500, 556, 1000, 1000, 0, 611, 0, 333, 333, 333, 333, 333, 333, 333,
|
|
333, 0, 333, 333, 0, 333, 333, 333, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 1000, 0, 370, 0, 0, 0, 0, 611, 778, 1000, 365, 0, 0,
|
|
0, 0, 0, 889, 0, 0, 0, 278, 0, 0, 278, 611, 944, 611, 0, 0, 0, 0,
|
|
},
|
|
MissingWidth: 0,
|
|
Leading: 0,
|
|
Vscale: 0.0,
|
|
Hscale: 0.0,
|
|
FontMatrix: [6]float64{0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
|
|
}
|
|
|
|
fmHelveticaBoldOblique = FontMetrics{
|
|
FontName: "Helvetica-BoldOblique",
|
|
FontFamily: "Helvetica",
|
|
FirstChar: 0,
|
|
LastChar: 255,
|
|
Descent: -207.0,
|
|
FontBbox: [4]float64{-175.0, -228.0, 1114.0, 962.0},
|
|
FontWeight: FontWeightBold,
|
|
CapHeight: 718.0,
|
|
Flags: 0,
|
|
XHeight: 532.0,
|
|
ItalicAngle: -12.0,
|
|
Ascent: 718.0,
|
|
Widths: []float64{
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
278, 333, 474, 556, 556, 889, 722, 278, 333, 333, 389, 584, 278, 333,
|
|
278, 278, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 333, 333,
|
|
584, 584, 584, 611, 975, 722, 722, 722, 722, 667, 611, 778, 722, 278,
|
|
556, 722, 611, 833, 722, 778, 667, 778, 722, 667, 611, 722, 667, 944,
|
|
667, 667, 611, 333, 278, 333, 584, 556, 278, 556, 611, 556, 611, 556,
|
|
333, 611, 611, 278, 278, 556, 278, 889, 611, 611, 611, 611, 389, 556,
|
|
333, 611, 556, 778, 556, 556, 500, 389, 280, 389, 584, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 333, 556, 556, 167, 556, 556, 556, 556, 238, 500,
|
|
556, 333, 333, 611, 611, 0, 556, 556, 556, 278, 0, 556, 350, 278, 500,
|
|
500, 556, 1000, 1000, 0, 611, 0, 333, 333, 333, 333, 333, 333, 333, 333,
|
|
0, 333, 333, 0, 333, 333, 333, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 1000, 0, 370, 0, 0, 0, 0, 611, 778, 1000, 365, 0, 0, 0, 0,
|
|
0, 889, 0, 0, 0, 278, 0, 0, 278, 611, 944, 611, 0, 0, 0, 0},
|
|
MissingWidth: 0,
|
|
Leading: 0,
|
|
Vscale: 0.0,
|
|
Hscale: 0.0,
|
|
FontMatrix: [6]float64{0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
|
|
}
|
|
|
|
fmHelveticaOblique = FontMetrics{
|
|
FontName: "Helvetica-Oblique",
|
|
FontFamily: "Helvetica",
|
|
FirstChar: 0,
|
|
LastChar: 255,
|
|
Descent: -207.0,
|
|
FontBbox: [4]float64{-171.0, -225.0, 1116.0, 931.0},
|
|
FontWeight: FontWeightMedium,
|
|
CapHeight: 718.0,
|
|
Flags: 0,
|
|
XHeight: 523.0,
|
|
ItalicAngle: -12.0,
|
|
Ascent: 718.0,
|
|
Widths: []float64{
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
278, 278, 355, 556, 556, 889, 667, 222, 333, 333, 389, 584, 278, 333, 278,
|
|
278, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 278, 278, 584, 584,
|
|
584, 556, 1015, 667, 667, 722, 722, 667, 611, 778, 722, 278, 500, 667, 556,
|
|
833, 722, 778, 667, 778, 722, 667, 611, 722, 667, 944, 667, 667, 611, 278,
|
|
278, 278, 469, 556, 222, 556, 556, 500, 556, 556, 278, 556, 556, 222, 222,
|
|
500, 222, 833, 556, 556, 556, 556, 333, 500, 278, 556, 500, 722, 500, 500,
|
|
500, 334, 260, 334, 584, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 333, 556, 556, 167, 556,
|
|
556, 556, 556, 191, 333, 556, 333, 333, 500, 500, 0, 556, 556, 556, 278, 0,
|
|
537, 350, 222, 333, 333, 556, 1000, 1000, 0, 611, 0, 333, 333, 333, 333, 333,
|
|
333, 333, 333, 0, 333, 333, 0, 333, 333, 333, 1000, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 1000, 0, 370, 0, 0, 0, 0, 556, 778, 1000, 365, 0, 0,
|
|
0, 0, 0, 889, 0, 0, 0, 278, 0, 0, 222, 611, 944, 611, 0, 0, 0, 0},
|
|
MissingWidth: 0,
|
|
Leading: 0,
|
|
Vscale: 0.0,
|
|
Hscale: 0.0,
|
|
FontMatrix: [6]float64{0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
|
|
}
|
|
|
|
fmTimesRoman = FontMetrics{
|
|
FontName: "Times-Roman",
|
|
FontFamily: "Times",
|
|
FirstChar: 0,
|
|
LastChar: 255,
|
|
Descent: -217.0,
|
|
FontBbox: [4]float64{-168.0, -218.0, 1000.0, 898.0},
|
|
FontWeight: FontWeightRoman,
|
|
CapHeight: 662.0,
|
|
Flags: 0,
|
|
XHeight: 450.0,
|
|
ItalicAngle: 0.0,
|
|
Ascent: 683.0,
|
|
Widths: []float64{
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
250, 333, 408, 500, 500, 833, 778, 333, 333, 333, 500, 564, 250, 333, 250, 278,
|
|
500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 278, 278, 564, 564, 564, 444,
|
|
921, 722, 667, 667, 722, 611, 556, 722, 722, 333, 389, 722, 611, 889, 722, 722,
|
|
556, 722, 667, 556, 611, 722, 722, 944, 722, 722, 611, 333, 278, 333, 469, 500,
|
|
333, 444, 500, 444, 500, 444, 333, 500, 500, 278, 278, 500, 278, 778, 500, 500,
|
|
500, 500, 333, 389, 278, 500, 500, 722, 500, 500, 444, 480, 200, 480, 541, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 333, 500, 500, 167, 500, 500, 500, 500, 180, 444, 500, 333, 333,
|
|
556, 556, 0, 500, 500, 500, 250, 0, 453, 350, 333, 444, 444, 500, 1000, 1000, 444,
|
|
0, 333, 333, 333, 333, 333, 333, 333, 333, 0, 333, 333, 0, 333, 333, 333, 1000,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 889, 0, 276, 0, 0, 0, 0, 611, 722,
|
|
889, 310, 0, 0, 0, 0, 0, 667, 0, 0, 0, 278, 0, 0, 278, 500, 722, 500, 0, 0, 0, 0},
|
|
MissingWidth: 0,
|
|
Leading: 0,
|
|
Vscale: 0.0,
|
|
Hscale: 0.0,
|
|
FontMatrix: [6]float64{0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
|
|
}
|
|
|
|
fmTimesBold = FontMetrics{
|
|
FontName: "Times-Bold",
|
|
FontFamily: "Times",
|
|
FirstChar: 0,
|
|
LastChar: 255,
|
|
Descent: -217.0,
|
|
FontBbox: [4]float64{-168.0, -218.0, 1000.0, 935.0},
|
|
FontWeight: FontWeightBold,
|
|
CapHeight: 676.0,
|
|
Flags: 0,
|
|
XHeight: 461.0,
|
|
ItalicAngle: 0.0,
|
|
Ascent: 683.0,
|
|
Widths: []float64{
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
250, 333, 555, 500, 500, 1000, 833, 333, 333, 333, 500, 570, 250, 333, 250,
|
|
278, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 333, 333, 570, 570,
|
|
570, 500, 930, 722, 667, 722, 722, 667, 611, 778, 778, 389, 500, 778, 667,
|
|
944, 722, 778, 611, 778, 722, 556, 667, 722, 722, 1000, 722, 722, 667, 333,
|
|
278, 333, 581, 500, 333, 500, 556, 444, 556, 444, 333, 500, 556, 278, 333,
|
|
556, 278, 833, 556, 500, 556, 556, 444, 389, 333, 556, 500, 722, 500, 500,
|
|
444, 394, 220, 394, 520, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 333, 500, 500, 167, 500,
|
|
500, 500, 500, 278, 500, 500, 333, 333, 556, 556, 0, 500, 500, 500, 250, 0,
|
|
540, 350, 333, 500, 500, 500, 1000, 1000, 0, 500, 0, 333, 333, 333, 333,
|
|
333, 333, 333, 333, 0, 333, 333, 0, 333, 333, 333, 1000, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 1000, 0, 300, 0, 0, 0, 0, 667, 778, 1000, 330, 0,
|
|
0, 0, 0, 0, 722, 0, 0, 0, 278, 0, 0, 278, 500, 722, 556, 0, 0, 0, 0,
|
|
},
|
|
MissingWidth: 0,
|
|
Leading: 0,
|
|
Vscale: 0.0,
|
|
Hscale: 0.0,
|
|
FontMatrix: [6]float64{0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
|
|
}
|
|
|
|
fmTimesBoldItalic = FontMetrics{
|
|
FontName: "Times-BoldItalic",
|
|
FontFamily: "Times",
|
|
FirstChar: 0,
|
|
LastChar: 255,
|
|
Descent: -217.0,
|
|
FontBbox: [4]float64{-200.0, -218.0, 996.0, 921.0},
|
|
FontWeight: FontWeightBold,
|
|
CapHeight: 669.0,
|
|
Flags: 0,
|
|
XHeight: 462.0,
|
|
ItalicAngle: -15.0,
|
|
Ascent: 683.0,
|
|
Widths: []float64{
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
250, 389, 555, 500, 500, 833, 778, 333, 333, 333, 500, 570, 250, 333,
|
|
250, 278, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 333, 333,
|
|
570, 570, 570, 500, 832, 667, 667, 667, 722, 667, 667, 722, 778, 389,
|
|
500, 667, 611, 889, 722, 722, 611, 722, 667, 556, 611, 722, 667, 889,
|
|
667, 611, 611, 333, 278, 333, 570, 500, 333, 500, 500, 444, 500, 444,
|
|
333, 500, 556, 278, 278, 500, 278, 778, 556, 500, 500, 500, 389, 389,
|
|
278, 556, 444, 667, 500, 444, 389, 348, 220, 348, 570, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 389, 500, 500, 167, 500, 500, 500, 500, 278, 500,
|
|
500, 333, 333, 556, 556, 0, 500, 500, 500, 250, 0, 500, 350, 333, 500,
|
|
500, 500, 1000, 1000, 0, 500, 0, 333, 333, 333, 333, 333, 333, 333,
|
|
333, 0, 333, 333, 0, 333, 333, 333, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 944, 0, 266, 0, 0, 0, 0, 611, 722, 944, 300, 0,
|
|
0, 0, 0, 0, 722, 0, 0, 0, 278, 0, 0, 278, 500, 722, 500, 0, 0, 0},
|
|
MissingWidth: 0,
|
|
Leading: 0,
|
|
Vscale: 0.0,
|
|
Hscale: 0.0,
|
|
FontMatrix: [6]float64{0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
|
|
}
|
|
|
|
fmTimesItalic = FontMetrics{
|
|
FontName: "Times-Italic",
|
|
FontFamily: "Times",
|
|
FirstChar: 0,
|
|
LastChar: 255,
|
|
Descent: -217.0,
|
|
FontBbox: [4]float64{-169.0, -217.0, 1010.0, 883.0},
|
|
FontWeight: FontWeightMedium,
|
|
CapHeight: 653.0,
|
|
Flags: 0,
|
|
XHeight: 441.0,
|
|
ItalicAngle: -15.5,
|
|
Ascent: 683.0,
|
|
Widths: []float64{
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
250, 333, 420, 500, 500, 833, 778, 333, 333, 333, 500, 675, 250, 333, 250,
|
|
278, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 333, 333, 675, 675,
|
|
675, 500, 920, 611, 611, 667, 722, 611, 611, 722, 722, 333, 444, 667, 556,
|
|
833, 667, 722, 611, 722, 611, 500, 556, 722, 611, 833, 611, 556, 556, 389,
|
|
278, 389, 422, 500, 333, 500, 500, 444, 500, 444, 278, 500, 500, 278, 278,
|
|
444, 278, 722, 500, 500, 500, 500, 389, 389, 278, 500, 444, 667, 444, 444,
|
|
389, 400, 275, 400, 541, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 389, 500, 500, 167, 500,
|
|
500, 500, 500, 214, 556, 500, 333, 333, 500, 500, 0, 500, 500, 500, 250, 0,
|
|
523, 350, 333, 556, 556, 500, 889, 1000, 0, 500, 0, 333, 333, 333, 333, 333,
|
|
333, 333, 333, 0, 333, 333, 0, 333, 333, 333, 889, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 889, 0, 276, 0, 0, 0, 0, 556, 722, 944, 310, 0, 0,
|
|
0, 0, 0, 667, 0, 0, 0, 278, 0, 0, 278, 500, 667, 500, 0, 0, 0, 0},
|
|
MissingWidth: 0,
|
|
Leading: 0,
|
|
Vscale: 0.0,
|
|
Hscale: 0.0,
|
|
FontMatrix: [6]float64{0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
|
|
}
|
|
|
|
fmSymbol = FontMetrics{
|
|
FontName: "Symbol",
|
|
FontFamily: "Symbol",
|
|
FirstChar: 0,
|
|
LastChar: 255,
|
|
Descent: 0.0,
|
|
FontBbox: [4]float64{-180.0, -293.0, 1090.0, 1010.0},
|
|
FontWeight: FontWeightMedium,
|
|
CapHeight: 676.0,
|
|
Flags: 0,
|
|
XHeight: 0.0,
|
|
ItalicAngle: 0.0,
|
|
Ascent: 0.0,
|
|
Widths: []float64{
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
250, 333, 713, 500, 549, 833, 778, 439, 333, 333, 500, 549, 250, 549, 250, 278, 500,
|
|
500, 500, 500, 500, 500, 500, 500, 500, 500, 278, 278, 549, 549, 549, 444, 549, 722,
|
|
667, 722, 612, 611, 763, 603, 722, 333, 631, 722, 686, 889, 722, 722, 768, 741, 556,
|
|
592, 611, 690, 439, 768, 645, 795, 611, 333, 863, 333, 658, 500, 500, 631, 549, 549,
|
|
494, 439, 521, 411, 603, 329, 603, 549, 549, 576, 521, 549, 549, 521, 549, 603, 439,
|
|
576, 713, 686, 493, 686, 494, 480, 200, 480, 549, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 750, 620, 247, 549,
|
|
167, 713, 500, 753, 753, 753, 753, 1042, 987, 603, 987, 603, 400, 549, 411, 549, 549,
|
|
713, 494, 460, 549, 549, 549, 549, 1000, 603, 1000, 658, 823, 686, 795, 987, 768, 768,
|
|
823, 768, 768, 713, 713, 713, 713, 713, 713, 713, 768, 713, 790, 790, 890, 823, 549,
|
|
250, 713, 603, 603, 1042, 987, 603, 987, 603, 494, 329, 790, 790, 786, 713, 384,
|
|
384, 384, 384, 384, 384, 494, 494, 494, 494, 329, 274, 0, 686, 686, 686, 384, 384,
|
|
384, 384, 384, 384, 494, 494, 494, 0},
|
|
MissingWidth: 0,
|
|
Leading: 0,
|
|
Vscale: 0.0,
|
|
Hscale: 0.0,
|
|
FontMatrix: [6]float64{0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
|
|
}
|
|
|
|
fmZapfDingbats = FontMetrics{
|
|
FontName: "ZapfDingbats",
|
|
FontFamily: "ITC",
|
|
FirstChar: 0,
|
|
LastChar: 255,
|
|
Descent: 0.0,
|
|
FontBbox: [4]float64{-1.0, -143.0, 981.0, 820.0},
|
|
FontWeight: FontWeightMedium,
|
|
CapHeight: 718.0,
|
|
Flags: 0,
|
|
XHeight: 0.0,
|
|
ItalicAngle: 0.0,
|
|
Ascent: 0.0,
|
|
Widths: []float64{
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
278, 974, 961, 974, 980, 719, 789, 790, 791, 690, 960, 939, 549, 855, 911, 933,
|
|
911, 945, 974, 755, 846, 762, 761, 571, 677, 763, 760, 759, 754, 494, 552, 537,
|
|
577, 692, 786, 788, 788, 790, 793, 794, 816, 823, 789, 841, 823, 833, 816, 831,
|
|
923, 744, 723, 749, 790, 792, 695, 776, 768, 792, 759, 707, 708, 682, 701, 826,
|
|
815, 789, 789, 707, 687, 696, 689, 786, 787, 713, 791, 785, 791, 873, 761, 762,
|
|
762, 759, 759, 892, 892, 788, 784, 438, 138, 277, 415, 392, 392, 668, 668, 0,
|
|
390, 390, 317, 317, 276, 276, 509, 509, 410, 410, 234, 234, 334, 334, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 732, 544, 544, 910, 667, 760, 760,
|
|
776, 595, 694, 626, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788,
|
|
788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788,
|
|
788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 894, 838, 1016, 458,
|
|
748, 924, 748, 918, 927, 928, 928, 834, 873, 828, 924, 924, 917, 930, 931, 463,
|
|
883, 836, 836, 867, 867, 696, 696, 874, 0, 874, 760, 946, 771, 865, 771, 888, 967,
|
|
888, 831, 873, 927, 970, 918, 0},
|
|
MissingWidth: 0,
|
|
Leading: 0,
|
|
Vscale: 0.0,
|
|
Hscale: 0.0,
|
|
FontMatrix: [6]float64{0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
|
|
}
|
|
|
|
Standard14Descriptors = map[string]DescriptorLiteral{
|
|
"Courier": DescriptorLiteral{
|
|
FontName: "Courier",
|
|
FontFamily: "Courier",
|
|
Flags: 0x0021,
|
|
FontBBox: [4]float64{-23, -250, 715, 805},
|
|
ItalicAngle: 0,
|
|
Ascent: 805,
|
|
Descent: -250,
|
|
Leading: 0,
|
|
CapHeight: 562,
|
|
XHeight: 426,
|
|
StemV: 51,
|
|
StemH: 51,
|
|
AvgWidth: 600,
|
|
MaxWidth: 0,
|
|
MissingWidth: 600,
|
|
},
|
|
"Courier-Bold": DescriptorLiteral{
|
|
FontName: "Courier-Bold",
|
|
FontFamily: "Courier",
|
|
Flags: 0x0021,
|
|
FontBBox: [4]float64{-113, -250, 749, 801},
|
|
ItalicAngle: 0,
|
|
Ascent: 801,
|
|
Descent: -250,
|
|
Leading: 0,
|
|
CapHeight: 562,
|
|
XHeight: 439,
|
|
StemV: 106,
|
|
StemH: 84,
|
|
AvgWidth: 600,
|
|
MaxWidth: 0,
|
|
MissingWidth: 600,
|
|
},
|
|
"Courier-BoldOblique": DescriptorLiteral{
|
|
FontName: "Courier-BoldOblique",
|
|
FontFamily: "Courier",
|
|
Flags: 0x0061,
|
|
FontBBox: [4]float64{-57, -250, 869, 801},
|
|
ItalicAngle: -12,
|
|
Ascent: 801,
|
|
Descent: -250,
|
|
Leading: 0,
|
|
CapHeight: 562,
|
|
XHeight: 439,
|
|
StemV: 106,
|
|
StemH: 84,
|
|
AvgWidth: 600,
|
|
MaxWidth: 0,
|
|
MissingWidth: 600,
|
|
},
|
|
"Courier-Oblique": DescriptorLiteral{
|
|
FontName: "Courier-Oblique",
|
|
FontFamily: "Courier",
|
|
Flags: 0x0061,
|
|
FontBBox: [4]float64{-27, -250, 849, 805},
|
|
ItalicAngle: -12,
|
|
Ascent: 805,
|
|
Descent: -250,
|
|
Leading: 0,
|
|
CapHeight: 562,
|
|
XHeight: 426,
|
|
StemV: 51,
|
|
StemH: 51,
|
|
AvgWidth: 600,
|
|
MaxWidth: 0,
|
|
MissingWidth: 600,
|
|
},
|
|
"Helvetica": DescriptorLiteral{
|
|
FontName: "Helvetica",
|
|
FontFamily: "Helvetica",
|
|
Flags: 0x0020,
|
|
FontBBox: [4]float64{-166, -225, 1000, 931},
|
|
ItalicAngle: 0,
|
|
Ascent: 931,
|
|
Descent: -225,
|
|
Leading: 0,
|
|
CapHeight: 718,
|
|
XHeight: 523,
|
|
StemV: 88,
|
|
StemH: 76,
|
|
AvgWidth: 513,
|
|
MaxWidth: 0,
|
|
MissingWidth: 513,
|
|
},
|
|
"Helvetica-Bold": DescriptorLiteral{
|
|
FontName: "Helvetica-Bold",
|
|
FontFamily: "Helvetica",
|
|
Flags: 0x0020,
|
|
FontBBox: [4]float64{-170, -228, 1003, 962},
|
|
ItalicAngle: 0,
|
|
Ascent: 962,
|
|
Descent: -228,
|
|
Leading: 0,
|
|
CapHeight: 718,
|
|
XHeight: 532,
|
|
StemV: 140,
|
|
StemH: 118,
|
|
AvgWidth: 535,
|
|
MaxWidth: 0,
|
|
MissingWidth: 535,
|
|
},
|
|
"Helvetica-BoldOblique": DescriptorLiteral{
|
|
FontName: "Helvetica-BoldOblique",
|
|
FontFamily: "Helvetica",
|
|
Flags: 0x0060,
|
|
FontBBox: [4]float64{-174, -228, 1114, 962},
|
|
ItalicAngle: -12,
|
|
Ascent: 962,
|
|
Descent: -228,
|
|
Leading: 0,
|
|
CapHeight: 718,
|
|
XHeight: 532,
|
|
StemV: 140,
|
|
StemH: 118,
|
|
AvgWidth: 535,
|
|
MaxWidth: 0,
|
|
MissingWidth: 535,
|
|
},
|
|
"Helvetica-Oblique": DescriptorLiteral{
|
|
FontName: "Helvetica-Oblique",
|
|
FontFamily: "Helvetica",
|
|
Flags: 0x0060,
|
|
FontBBox: [4]float64{-170, -225, 1116, 931},
|
|
ItalicAngle: -12,
|
|
Ascent: 931,
|
|
Descent: -225,
|
|
Leading: 0,
|
|
CapHeight: 718,
|
|
XHeight: 523,
|
|
StemV: 88,
|
|
StemH: 76,
|
|
AvgWidth: 513,
|
|
MaxWidth: 0,
|
|
MissingWidth: 513,
|
|
},
|
|
"Times-Roman": DescriptorLiteral{
|
|
FontName: "Times-Roman",
|
|
FontFamily: "Times",
|
|
Flags: 0x0020,
|
|
FontBBox: [4]float64{-168, -218, 1000, 898},
|
|
ItalicAngle: 0,
|
|
Ascent: 898,
|
|
Descent: -218,
|
|
Leading: 0,
|
|
CapHeight: 662,
|
|
XHeight: 450,
|
|
StemV: 84,
|
|
StemH: 28,
|
|
AvgWidth: 495,
|
|
MaxWidth: 0,
|
|
MissingWidth: 495,
|
|
},
|
|
"Times-Bold": DescriptorLiteral{
|
|
FontName: "Times-Bold",
|
|
FontFamily: "Times",
|
|
Flags: 0x0020,
|
|
FontBBox: [4]float64{-168, -218, 1000, 935},
|
|
ItalicAngle: 0,
|
|
Ascent: 935,
|
|
Descent: -218,
|
|
Leading: 0,
|
|
CapHeight: 676,
|
|
XHeight: 461,
|
|
StemV: 139,
|
|
StemH: 44,
|
|
AvgWidth: 516,
|
|
MaxWidth: 0,
|
|
MissingWidth: 516,
|
|
},
|
|
"Times-BoldItalic": DescriptorLiteral{
|
|
FontName: "Times-BoldItalic",
|
|
FontFamily: "Times",
|
|
Flags: 0x0060,
|
|
FontBBox: [4]float64{-200, -218, 996, 921},
|
|
ItalicAngle: -15,
|
|
Ascent: 921,
|
|
Descent: -218,
|
|
Leading: 0,
|
|
CapHeight: 669,
|
|
XHeight: 462,
|
|
StemV: 121,
|
|
StemH: 42,
|
|
AvgWidth: 501,
|
|
MaxWidth: 0,
|
|
MissingWidth: 501,
|
|
},
|
|
"Times-Italic": DescriptorLiteral{
|
|
FontName: "Times-Italic",
|
|
FontFamily: "Times",
|
|
Flags: 0x0060,
|
|
FontBBox: [4]float64{-169, -217, 1010, 883},
|
|
ItalicAngle: -15.5,
|
|
Ascent: 883,
|
|
Descent: -217,
|
|
Leading: 0,
|
|
CapHeight: 653,
|
|
XHeight: 441,
|
|
StemV: 76,
|
|
StemH: 32,
|
|
AvgWidth: 491,
|
|
MaxWidth: 0,
|
|
MissingWidth: 491,
|
|
},
|
|
"Symbol": DescriptorLiteral{
|
|
FontName: "Symbol",
|
|
FontFamily: "Symbol",
|
|
Flags: 0x0004,
|
|
FontBBox: [4]float64{-180, -293, 1090, 1010},
|
|
ItalicAngle: 0,
|
|
Ascent: 1010,
|
|
Descent: -293,
|
|
Leading: 0,
|
|
CapHeight: 1010,
|
|
XHeight: 0,
|
|
StemV: 85,
|
|
StemH: 92,
|
|
AvgWidth: 587,
|
|
MaxWidth: 0,
|
|
MissingWidth: 587,
|
|
},
|
|
"ZapfDingbats": DescriptorLiteral{
|
|
FontName: "ZapfDingbats",
|
|
FontFamily: "ZapfDingbats",
|
|
Flags: 0x0004,
|
|
FontBBox: [4]float64{-1, -143, 981, 820},
|
|
ItalicAngle: 0,
|
|
Ascent: 820,
|
|
Descent: -143,
|
|
Leading: 0,
|
|
CapHeight: 820,
|
|
XHeight: 0,
|
|
StemV: 90,
|
|
StemH: 28,
|
|
AvgWidth: 746,
|
|
MaxWidth: 0,
|
|
MissingWidth: 746,
|
|
},
|
|
}
|
|
)
|