Units
The basic typesetting unit is a “scaled point” (sp) and the Go type is bag.ScaledPoint
. One DTP point (1/72 inch) consists of 65535 scaled points.
There are two methods (bag.SP()
and bag.MustSP()
) to convert from other units to sp.
The known units are
Name | Unit |
---|---|
pt (DTP point) |
There are 65535 scaled points in one DTP point. For conversion, always use the constant bag.Factor and never the value 65535 itself, as it is subject to change. |
in |
Inch – 72 DTP points are one inch. |
mm |
Millimeter (1/1000 of one meter) |
cm |
Centimeter (1/100 of one meter) |
m |
Meter |
px |
Pixel - 96 Pixes are one inch |
pc |
Pica – twelve DTP points or 1/6 inch |
Conversion
These two functions convert strings such as "1cm"
or "12.4in"
to scaled points. The MustSP
function panics if it cannot convert the unit.
To convert from scaled points to other units use
func (s ScaledPoint) ToUnit(unit string) (float64, error)
For example
twelvept := bag.MustSP("12pt")
twelveFloat, err := twelvept.ToUnit("pt")
// twelveFloat = 12.0
To convert to DTP points use
func (s ScaledPoint) ToPT() float64
Convenience functions
There are a few convenience functions:
func Max(a, b ScaledPoint) ScaledPoint
func Min(a, b ScaledPoint) ScaledPoint
and
func MultiplyFloat(a ScaledPoint, f float64) ScaledPoint
if you need to multiply a scaled point with a float.
String
The ScaledPoint
type implements the Stringer
interface which returns a string suitable for the PDF file.