font

package
v0.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 10, 2024 License: Apache-2.0 Imports: 20 Imported by: 0

Documentation

Overview

Package font provides support for TrueType fonts.

Index

Constants

This section is empty.

Variables

View Source
var UserFontDir string

UserFontDir is the location for installed TTF or OTF font files.

View Source
var UserFontMetrics = map[string]TTFLight{}

UserFontMetrics represents font metrics for TTF or OTF font files installed into UserFontDir.

View Source
var UserFontMetricsLock = &sync.RWMutex{}

Functions

func Ascent

func Ascent(fontName string, fontSize int) float64

Ascent returns fontname's ascent in userspace units corresponding to fontSize.

func BoundingBox

func BoundingBox(fontName string) *types.Rectangle

BoundingBox returns the font bounding box for a given font as specified in the corresponding AFM file.

func CharWidth

func CharWidth(fontName string, r rune) int

CharWidth returns the character width for a char and font in glyph space units.

func CoreFontNames

func CoreFontNames() []string

CoreFontNames returns a list of the 14 PDF standard Type 1 fonts.

func Descent

func Descent(fontName string, fontSize int) float64

Descent returns fontname's descent in userspace units corresponding to fontSize.

func GlyphSpaceUnits

func GlyphSpaceUnits(userSpaceUnits float64, fontScalingFactor int) float64

GlyphSpaceUnits transforms userSpaceUnits into glyphspace Units.

func InstallFontFromBytes

func InstallFontFromBytes(fontDir, fontName string, bb []byte) error

InstallFontFromBytes saves an internal representation of TrueType font fontName to the pdfcpu config dir.

func InstallTrueTypeCollection

func InstallTrueTypeCollection(fontDir, fn string) error

InstallTrueTypeCollection saves an internal representation of all fonts contained in a TrueType collection to the pdfcpu config dir.

func InstallTrueTypeFont

func InstallTrueTypeFont(fontDir, fontName string) error

InstallTrueTypeFont saves an internal representation of TrueType font fontName to the pdfcpu config dir.

func IsCoreFont

func IsCoreFont(fontName string) bool

IsCoreFont returns true for the 14 PDF standard Type 1 fonts.

func IsUserFont

func IsUserFont(fontName string) bool

IsUserFont returns true for installed TrueType fonts.

func LineHeight

func LineHeight(fontName string, fontSize int) float64

LineHeight returns fontname's line height in userspace units corresponding to fontSize.

func LoadUserFonts

func LoadUserFonts() error

LoadUserFonts loads any installed TTF or OTF font files.

func Read

func Read(fileName string) ([]byte, error)

Read reads in the font file bytes from gob

func Size

func Size(text, fontName string, width float64) int

Size returns the needed font size (aka. font scaling factor) in points for rendering a given text string using a given font name with a given user space width.

func SizeForLineHeight

func SizeForLineHeight(fontName string, lh float64) int

SizeForLineHeight returns the needed font size in points for rendering using a given font name fitting into given line height lh.

func Subset

func Subset(fontName string, usedGIDs map[uint16]bool) ([]byte, error)

Subset creates a new font file based on usedGIDs.

func SupportedFont

func SupportedFont(fontName string) bool

SupportedFont returns true for core fonts or user installed fonts.

func TextWidth

func TextWidth(text, fontName string, fontSize int) float64

TextWidth represents the width in user space units for a given text string, font name and font size.

func UserFontNames

func UserFontNames() []string

UserFontNames return a list of all installed TrueType fonts.

func UserFontNamesVerbose

func UserFontNamesVerbose() []string

UserFontNamesVerbose return a list of all installed TrueType fonts including glyph count.

func UserSpaceFontBBox

func UserSpaceFontBBox(fontName string, fontSize int) *types.Rectangle

UserSpaceFontBBox returns the font box for given font name and font size in user space coordinates.

func UserSpaceUnits

func UserSpaceUnits(glyphSpaceUnits float64, fontScalingFactor int) float64

UserSpaceUnits transforms glyphSpaceUnits into userspace units.

Types

type TTFLight

type TTFLight struct {
	PostscriptName     string            // name: NameID 6
	Protected          bool              // OS/2: fsType
	UnitsPerEm         int               // head: unitsPerEm
	Ascent             int               // OS/2: sTypoAscender
	Descent            int               // OS/2: sTypoDescender
	CapHeight          int               // OS/2: sCapHeight
	FirstChar          uint16            // OS/2: fsFirstCharIndex
	LastChar           uint16            // OS/2: fsLastCharIndex
	UnicodeRange       [4]uint32         // OS/2: Unicode Character Range
	LLx, LLy, URx, URy float64           // head: xMin, yMin, xMax, yMax (fontbox)
	ItalicAngle        float64           // post: italicAngle
	FixedPitch         bool              // post: isFixedPitch
	Bold               bool              // OS/2: usWeightClass == 7
	HorMetricsCount    int               // hhea: numOfLongHorMetrics
	GlyphCount         int               // maxp: numGlyphs
	GlyphWidths        []int             // hmtx: fd.HorMetricsCount.advanceWidth
	Chars              map[uint32]uint16 // cmap: Unicode character to glyph index
	ToUnicode          map[uint16]uint32 // map glyph index to unicode character
	Planes             map[int]bool      // used Unicode planes
}

TTFLight represents a TrueType font w/o font file.

func (TTFLight) Gids

func (fd TTFLight) Gids() []int

func (TTFLight) String

func (fd TTFLight) String() string

func (TTFLight) SupportsScript

func (fd TTFLight) SupportsScript(id string) (bool, error)

SupportsScript returns true if ttf supports the unicodeblocks identified by iso15924 id.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL