예제 #1
0
        public Type0CidFont(ICidFontProgram fontProgram, NameToken type, NameToken subType, NameToken baseFont,
                            CharacterIdentifierSystemInfo systemInfo,
                            FontDescriptor descriptor, VerticalWritingMetrics verticalWritingMetrics, IReadOnlyDictionary <int, decimal> widths)
        {
            this.fontProgram            = fontProgram;
            this.verticalWritingMetrics = verticalWritingMetrics;
            Type       = type;
            SubType    = subType;
            BaseFont   = baseFont;
            SystemInfo = systemInfo;
            var scale = 1 / (decimal)(fontProgram?.GetFontMatrixMultiplier() ?? 1000);

            FontMatrix = TransformationMatrix.FromValues(scale, 0, 0, scale, 0, 0);
            Descriptor = descriptor;
            Widths     = widths;
        }
예제 #2
0
        public Type2CidFont(NameToken type, NameToken subType, NameToken baseFont, CharacterIdentifierSystemInfo systemInfo,
                            FontDescriptor descriptor, ICidFontProgram fontProgram,
                            VerticalWritingMetrics verticalWritingMetrics,
                            IReadOnlyDictionary <int, decimal> widths)
        {
            Type                        = type;
            SubType                     = subType;
            BaseFont                    = baseFont;
            SystemInfo                  = systemInfo;
            Descriptor                  = descriptor;
            this.fontProgram            = fontProgram;
            this.verticalWritingMetrics = verticalWritingMetrics;
            this.widths                 = widths;

            // TODO: This should maybe take units per em into account?
            var scale = 1 / 1000m;

            FontMatrix = TransformationMatrix.FromValues(scale, 0, 0, scale, 0, 0);
        }