unipdf/pdf/creator/drawable.go
Peter Williams c2feafdfdc Fixed some issues in creator code
Stopped double converting from Go strings to PDF encoded strings
Added TTF parse table format 12
2018-08-17 08:41:35 +10:00

43 lines
1.4 KiB
Go

/*
* This file is subject to the terms and conditions defined in
* file 'LICENSE.md', which is part of this source code package.
*/
package creator
// Drawable is a widget that can be used to draw with the Creator.
type Drawable interface {
// Draw onto blocks representing Page contents. As the content can wrap over many pages, multiple
// templates are returned, one per Page. The function also takes a draw context containing information
// where to draw (if relative positioning) and the available height to draw on accounting for Margins etc.
GeneratePageBlocks(ctx DrawContext) ([]*Block, DrawContext, error)
}
// VectorDrawable is a Drawable with a specified width and height.
type VectorDrawable interface {
Drawable
Width() float64
Height() float64
}
// DrawContext defines the drawing context. The DrawContext is continuously used and updated when
// drawing the page contents in relative mode. Keeps track of current X, Y position, available
// height as well as other page parameters such as margins and dimensions.
type DrawContext struct {
// Current page number.
Page int
// Current position. In a relative positioning mode, a drawable will be placed at these coordinates.
X, Y float64
// Context dimensions. Available width and height.
Width, Height float64
// Page Margins.
Margins margins
// Absolute Page size, widths and height.
PageWidth float64
PageHeight float64
}