From 5257855e2949c6d38c45d5a6931173b551136600 Mon Sep 17 00:00:00 2001 From: Hiroshi Muramatsu Date: Mon, 23 Jul 2018 13:21:13 +1000 Subject: [PATCH] Define font descriptor flags --- pdf/model/font.go | 14 ++++++++++++++ pdf/model/font_composite.go | 10 ++++------ pdf/model/font_simple.go | 7 +++---- 3 files changed, 21 insertions(+), 10 deletions(-) diff --git a/pdf/model/font.go b/pdf/model/font.go index 72a49542..542684d8 100644 --- a/pdf/model/font.go +++ b/pdf/model/font.go @@ -468,6 +468,20 @@ func toUnicodeToCmap(toUnicode core.PdfObject, font *fontCommon) (*cmap.CMap, er return cm, err } +const ( + fontFlagFixedPitch = 1 << iota + fontFlagSerif + fontFlagSymbolic + fontFlagScript + // Bit position 5 is not defined + fontFlagNonsymbolic = 1 << (iota + 1) + fontFlagItalic + // Bit position 8 - 16 are not defined + fontFlagAllCap = 1 << (iota + 10) + fontFlagSmallCap + fontFlagForceBold +) + // PdfFontDescriptor specifies metrics and other attributes of a font and can refer to a FontFile // for embedded fonts. // 9.8 Font Descriptors (page 281) diff --git a/pdf/model/font_composite.go b/pdf/model/font_composite.go index ee240b78..79aa856b 100644 --- a/pdf/model/font_composite.go +++ b/pdf/model/font_composite.go @@ -578,16 +578,14 @@ func NewCompositePdfFontFromTTFFile(filePath string) (*PdfFont, error) { descriptor.StemV = core.MakeInteger(70) } - // Flags. - //flags := 1 << 5 // Non-Symbolic. - flags := uint32(0) + // Flags + flags := fontFlagSymbolic // Symbolic. if ttf.IsFixedPitch { - flags |= 1 + flags |= fontFlagFixedPitch } if ttf.ItalicAngle != 0 { - flags |= 1 << 6 + flags |= fontFlagItalic } - flags |= 1 << 2 // Symbolic. descriptor.Flags = core.MakeInteger(int64(flags)) base.fontDescriptor = descriptor diff --git a/pdf/model/font_simple.go b/pdf/model/font_simple.go index 658b0c97..9cdf68ef 100644 --- a/pdf/model/font_simple.go +++ b/pdf/model/font_simple.go @@ -426,13 +426,12 @@ func NewPdfFontFromTTFFile(filePath string) (*PdfFont, error) { descriptor.StemV = core.MakeInteger(70) } - // Flags. - flags := 1 << 5 + flags := fontFlagNonsymbolic if ttf.IsFixedPitch { - flags |= 1 + flags |= fontFlagFixedPitch } if ttf.ItalicAngle != 0 { - flags |= 1 << 6 + flags |= fontFlagItalic } descriptor.Flags = core.MakeInteger(int64(flags))