2017-07-05 23:10:57 +00:00
|
|
|
/*
|
|
|
|
* This file is subject to the terms and conditions defined in
|
|
|
|
* file 'LICENSE.md', which is part of this source code package.
|
|
|
|
*/
|
|
|
|
|
|
|
|
package creator
|
|
|
|
|
2017-07-31 14:06:47 +00:00
|
|
|
// PageSize represents the page size as a 2 element array representing the width and height in PDF document units (points).
|
2017-07-13 14:20:42 +00:00
|
|
|
type PageSize [2]float64
|
|
|
|
|
2017-07-31 14:06:47 +00:00
|
|
|
// PPI specifies the default PDF resolution in points/inch.
|
|
|
|
var PPI float64 = 72 // Points per inch. (Default resolution).
|
|
|
|
|
|
|
|
// PPMM specifies the default PDF resolution in points/mm.
|
2018-10-12 23:00:02 +03:00
|
|
|
// Points per mm. (Default resolution).
|
|
|
|
var PPMM = float64(72 * 1.0 / 25.4)
|
2017-07-13 14:20:42 +00:00
|
|
|
|
2017-07-17 14:36:16 +00:00
|
|
|
//
|
|
|
|
// Commonly used page sizes
|
|
|
|
//
|
2017-07-13 14:20:42 +00:00
|
|
|
var (
|
|
|
|
PageSizeA3 = PageSize{297 * PPMM, 420 * PPMM}
|
|
|
|
PageSizeA4 = PageSize{210 * PPMM, 297 * PPMM}
|
|
|
|
PageSizeA5 = PageSize{148 * PPMM, 210 * PPMM}
|
|
|
|
PageSizeLetter = PageSize{8.5 * PPI, 11 * PPI}
|
|
|
|
PageSizeLegal = PageSize{8.5 * PPI, 14 * PPI}
|
2017-07-05 23:10:57 +00:00
|
|
|
)
|
|
|
|
|
2017-07-17 14:36:16 +00:00
|
|
|
// TextAlignment options for paragraph.
|
2017-07-05 23:10:57 +00:00
|
|
|
type TextAlignment int
|
|
|
|
|
2017-07-31 14:06:47 +00:00
|
|
|
// The options supported for text alignment are:
|
|
|
|
// left - TextAlignmentLeft
|
|
|
|
// right - TextAlignmentRight
|
|
|
|
// center - TextAlignmentCenter
|
|
|
|
// justify - TextAlignmentJustify
|
2017-07-05 23:10:57 +00:00
|
|
|
const (
|
|
|
|
TextAlignmentLeft TextAlignment = iota
|
|
|
|
TextAlignmentRight
|
|
|
|
TextAlignmentCenter
|
|
|
|
TextAlignmentJustify
|
|
|
|
)
|
|
|
|
|
|
|
|
// Relative and absolute positioning types.
|
|
|
|
type positioning int
|
|
|
|
|
|
|
|
const (
|
|
|
|
positionRelative positioning = iota
|
|
|
|
positionAbsolute
|
|
|
|
)
|
|
|
|
|
|
|
|
func (p positioning) isRelative() bool {
|
|
|
|
return p == positionRelative
|
|
|
|
}
|
|
|
|
func (p positioning) isAbsolute() bool {
|
|
|
|
return p == positionAbsolute
|
|
|
|
}
|