// Copyright (c) Six Labors. // Licensed under the Six Labors Split License. namespace SixLabors.Fonts.Tables.Cff { /// /// Represents the Top DICT data from a CFF or CFF2 font, containing font-wide /// metadata such as name strings, bounding box, underline metrics, and the FontMatrix. /// internal class CffTopDictionary { /// /// Initializes a new instance of the class. /// public CffTopDictionary() => this.CidFontInfo = new(); /// /// Gets or sets the font version string (SID). /// public string? Version { get; set; } /// /// Gets or sets the font notice/trademark string (SID). /// public string? Notice { get; set; } /// /// Gets or sets the font copyright string (SID). /// public string? CopyRight { get; set; } /// /// Gets or sets the font full name string (SID). /// public string? FullName { get; set; } /// /// Gets or sets the font family name string (SID). /// public string? FamilyName { get; set; } /// /// Gets or sets the font weight string (SID), e.g. "Bold". /// public string? Weight { get; set; } /// /// Gets or sets the underline position in design units. /// public double UnderlinePosition { get; set; } /// /// Gets or sets the underline thickness in design units. /// public double UnderlineThickness { get; set; } /// /// Gets or sets the font bounding box [xMin, yMin, xMax, yMax] in design units. /// public double[] FontBBox { get; set; } = []; /// /// Gets or sets the font matrix that transforms charstring coordinates to user space. /// Default is [0.001, 0, 0, 0.001, 0, 0] which maps 1000 charstring units to 1 user-space unit. /// public double[] FontMatrix { get; set; } = [0.001, 0, 0, 0.001, 0, 0]; /// /// Gets or sets the CIDFont-specific information (ROS, FDSelect, FDArray). /// public CidFontInfo CidFontInfo { get; set; } } }