Documentation ¶
Overview ¶
Package creator is used for quickly generating pages and content with a simple interface. It is built on top of the model package to provide access to the most common operations such as creating text and image reports and manipulating existing pages.
Index ¶
- Variables
- type Block
- func (blk *Block) Draw(d Drawable) error
- func (blk *Block) DrawWithContext(d Drawable, ctx DrawContext) error
- func (blk *Block) GeneratePageBlocks(ctx DrawContext) ([]*Block, DrawContext, error)
- func (blk *Block) GetMargins() (float64, float64, float64, float64)
- func (blk *Block) Height() float64
- func (blk *Block) Scale(sx, sy float64)
- func (blk *Block) ScaleToHeight(h float64)
- func (blk *Block) ScaleToWidth(w float64)
- func (blk *Block) SetAngle(angleDeg float64)
- func (blk *Block) SetMargins(left, right, top, bottom float64)
- func (blk *Block) SetPos(x, y float64)
- func (blk *Block) Width() float64
- type CellBorderStyle
- type CellHorizontalAlignment
- type CellVerticalAlignment
- type Chapter
- func (chap *Chapter) Add(d Drawable) error
- func (chap *Chapter) GeneratePageBlocks(ctx DrawContext) ([]*Block, DrawContext, error)
- func (chap *Chapter) GetHeading() *Paragraph
- func (chap *Chapter) GetMargins() (float64, float64, float64, float64)
- func (chap *Chapter) SetIncludeInTOC(includeInTOC bool)
- func (chap *Chapter) SetMargins(left, right, top, bottom float64)
- func (chap *Chapter) SetShowNumbering(show bool)
- type Color
- type Creator
- func (c *Creator) AddPage(page *model.PdfPage) error
- func (c *Creator) Context() DrawContext
- func (c *Creator) CreateFrontPage(genFrontPageFunc func(args FrontpageFunctionArgs))
- func (c *Creator) CreateTableOfContents(genTOCFunc func(toc *TableOfContents) (*Chapter, error))
- func (c *Creator) Draw(d Drawable) error
- func (c *Creator) DrawFooter(drawFooterFunc func(footer *Block, args FooterFunctionArgs))
- func (c *Creator) DrawHeader(drawHeaderFunc func(header *Block, args HeaderFunctionArgs))
- func (c *Creator) Height() float64
- func (c *Creator) MoveDown(dy float64)
- func (c *Creator) MoveRight(dx float64)
- func (c *Creator) MoveTo(x, y float64)
- func (c *Creator) MoveX(x float64)
- func (c *Creator) MoveY(y float64)
- func (c *Creator) NewChapter(title string) *Chapter
- func (c *Creator) NewPage()
- func (c *Creator) NewSubchapter(ch *Chapter, title string) *Subchapter
- func (c *Creator) RotateDeg(angleDeg int64) error
- func (c *Creator) SetForms(form *model.PdfAcroForm) error
- func (c *Creator) SetPageMargins(left, right, top, bottom float64)
- func (c *Creator) SetPageSize(size PageSize)
- func (c *Creator) SetPdfWriterAccessFunc(pdfWriterAccessFunc func(writer *model.PdfWriter) error)
- func (c *Creator) Width() float64
- func (c *Creator) Write(ws io.WriteSeeker) error
- func (c *Creator) WriteToFile(outputPath string) error
- type DrawContext
- type Drawable
- type Ellipse
- type FooterFunctionArgs
- type FrontpageFunctionArgs
- type HeaderFunctionArgs
- type Image
- func (img *Image) GeneratePageBlocks(ctx DrawContext) ([]*Block, DrawContext, error)
- func (img *Image) GetMargins() (float64, float64, float64, float64)
- func (img *Image) Height() float64
- func (img *Image) Scale(xFactor, yFactor float64)
- func (img *Image) ScaleToHeight(h float64)
- func (img *Image) ScaleToWidth(w float64)
- func (img *Image) SetAngle(angle float64)
- func (img *Image) SetEncoder(encoder core.StreamEncoder)
- func (img *Image) SetHeight(h float64)
- func (img *Image) SetMargins(left, right, top, bottom float64)
- func (img *Image) SetOpacity(opacity float64)
- func (img *Image) SetPos(x, y float64)
- func (img *Image) SetWidth(w float64)
- func (img *Image) Width() float64
- type Line
- type PageBreak
- type PageSize
- type Paragraph
- func (p *Paragraph) GeneratePageBlocks(ctx DrawContext) ([]*Block, DrawContext, error)
- func (p *Paragraph) GetMargins() (float64, float64, float64, float64)
- func (p *Paragraph) Height() float64
- func (p *Paragraph) SetAngle(angle float64)
- func (p *Paragraph) SetColor(col Color)
- func (p *Paragraph) SetEnableWrap(enableWrap bool)
- func (p *Paragraph) SetEncoder(encoder textencoding.TextEncoder)
- func (p *Paragraph) SetFont(font fonts.Font)
- func (p *Paragraph) SetFontSize(fontSize float64)
- func (p *Paragraph) SetLineHeight(lineheight float64)
- func (p *Paragraph) SetMargins(left, right, top, bottom float64)
- func (p *Paragraph) SetPos(x, y float64)
- func (p *Paragraph) SetText(text string)
- func (p *Paragraph) SetTextAlignment(align TextAlignment)
- func (p *Paragraph) SetWidth(width float64)
- func (p *Paragraph) Text() string
- func (p *Paragraph) Width() float64
- type Rectangle
- type Subchapter
- func (subchap *Subchapter) Add(d Drawable)
- func (subchap *Subchapter) GeneratePageBlocks(ctx DrawContext) ([]*Block, DrawContext, error)
- func (subchap *Subchapter) GetHeading() *Paragraph
- func (subchap *Subchapter) GetMargins() (float64, float64, float64, float64)
- func (subchap *Subchapter) SetIncludeInTOC(includeInTOC bool)
- func (subchap *Subchapter) SetMargins(left, right, top, bottom float64)
- func (subchap *Subchapter) SetShowNumbering(show bool)
- type Table
- func (table *Table) CurCol() int
- func (table *Table) CurRow() int
- func (table *Table) GeneratePageBlocks(ctx DrawContext) ([]*Block, DrawContext, error)
- func (table *Table) GetMargins() (float64, float64, float64, float64)
- func (table *Table) Height() float64
- func (table *Table) NewCell() *TableCell
- func (table *Table) SetColumnWidths(widths ...float64) error
- func (table *Table) SetMargins(left, right, top, bottom float64)
- func (table *Table) SetPos(x, y float64)
- func (table *Table) SetRowHeight(row int, h float64) error
- func (table *Table) SkipCells(num int)
- func (table *Table) SkipOver(rows, cols int)
- func (table *Table) SkipRows(num int)
- type TableCell
- func (cell *TableCell) SetBackgroundColor(col Color)
- func (cell *TableCell) SetBorder(style CellBorderStyle, width float64)
- func (cell *TableCell) SetBorderColor(col Color)
- func (cell *TableCell) SetContent(vd VectorDrawable) error
- func (cell *TableCell) SetHorizontalAlignment(halign CellHorizontalAlignment)
- func (cell *TableCell) SetIndent(indent float64)
- func (cell *TableCell) SetVerticalAlignment(valign CellVerticalAlignment)
- func (cell *TableCell) Width(ctx DrawContext) float64
- type TableOfContents
- type TableOfContentsEntry
- type TextAlignment
- type VectorDrawable
Constants ¶
This section is empty.
Variables ¶
var ( ColorBlack = ColorRGBFromArithmetic(0, 0, 0) ColorWhite = ColorRGBFromArithmetic(1, 1, 1) ColorRed = ColorRGBFromArithmetic(1, 0, 0) ColorGreen = ColorRGBFromArithmetic(0, 1, 0) ColorBlue = ColorRGBFromArithmetic(0, 0, 1) ColorYellow = ColorRGBFromArithmetic(1, 1, 0) )
Commonly used colors.
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} )
Commonly used page sizes
var PPI float64 = 72 // Points per inch. (Default resolution).
PPI specifies the default PDF resolution in points/inch.
var PPMM float64 = 72 * 1.0 / 25.4 // Points per mm. (Default resolution).
PPMM specifies the default PDF resolution in points/mm.
Functions ¶
This section is empty.
Types ¶
type Block ¶
type Block struct {
// contains filtered or unexported fields
}
Block contains a portion of PDF Page contents. It has a width and a position and can be placed anywhere on a Page. It can even contain a whole Page, and is used in the creator where each Drawable object can output one or more blocks, each representing content for separate pages (typically needed when Page breaks occur).
func NewBlockFromPage ¶
NewBlockFromPage creates a Block from a PDF Page. Useful for loading template pages as blocks from a PDF document and additional content with the creator.
func (*Block) Draw ¶
Draw the drawable d on the block. Note that the drawable must not wrap, i.e. only return one block. Otherwise an error is returned.
func (*Block) DrawWithContext ¶
func (blk *Block) DrawWithContext(d Drawable, ctx DrawContext) error
DrawWithContext draws the Block using the specified drawing context.
func (*Block) GeneratePageBlocks ¶
func (blk *Block) GeneratePageBlocks(ctx DrawContext) ([]*Block, DrawContext, error)
GeneratePageBlocks draws the block contents on a template Page block. Implements the Drawable interface.
func (*Block) GetMargins ¶
GetMargins returns the Block's margins: left, right, top, bottom.
func (*Block) ScaleToHeight ¶
ScaleToHeight scales the Block to a specified height, maintaining the same aspect ratio.
func (*Block) ScaleToWidth ¶
ScaleToWidth scales the Block to a specified width, maintaining the same aspect ratio.
func (*Block) SetMargins ¶
SetMargins sets the Block's left, right, top, bottom, margins.
type CellBorderStyle ¶
type CellBorderStyle int
CellBorderStyle defines the table cell's border style.
const ( // No border CellBorderStyleNone CellBorderStyle = iota // Borders along all sides (boxed). CellBorderStyleBox )
Currently supported table styles are: None (no border) and boxed (line along each side).
type CellHorizontalAlignment ¶
type CellHorizontalAlignment int
CellHorizontalAlignment defines the table cell's horizontal alignment.
const ( // Align cell content on the left (with specified indent); unused space on the right. CellHorizontalAlignmentLeft CellHorizontalAlignment = iota // Align cell content in the middle (unused space divided equally on the left/right). CellHorizontalAlignmentCenter // Align the cell content on the right; unsued space on the left. CellHorizontalAlignmentRight )
Table cells have three horizontal alignment modes: left, center and right.
type CellVerticalAlignment ¶
type CellVerticalAlignment int
CellVerticalAlignment defines the table cell's vertical alignment.
const ( // Align cell content vertically to the top; unused space below. CellVerticalAlignmentTop CellVerticalAlignment = iota // Align cell content in the middle; unused space divided equally above and below. CellVerticalAlignmentMiddle // Align cell content on the bottom; unused space above. CellVerticalAlignmentBottom )
Table cells have three vertical alignment modes: top, middle and bottom.
type Chapter ¶
type Chapter struct {
// contains filtered or unexported fields
}
Chapter is used to arrange multiple drawables (paragraphs, images, etc) into a single section. The concept is the same as a book or a report chapter.
func (*Chapter) GeneratePageBlocks ¶
func (chap *Chapter) GeneratePageBlocks(ctx DrawContext) ([]*Block, DrawContext, error)
GeneratePageBlocks generate the Page blocks. Multiple blocks are generated if the contents wrap over multiple pages.
func (*Chapter) GetHeading ¶
GetHeading returns the chapter heading paragraph. Used to give access to address style: font, sizing etc.
func (*Chapter) GetMargins ¶
GetMargins returns the Chapter's margin: left, right, top, bottom.
func (*Chapter) SetIncludeInTOC ¶
SetIncludeInTOC sets a flag to indicate whether or not to include in tOC.
func (*Chapter) SetMargins ¶
SetMargins sets the Chapter margins: left, right, top, bottom. Typically not needed as the creator's page margins are used.
func (*Chapter) SetShowNumbering ¶
SetShowNumbering sets a flag to indicate whether or not to show chapter numbers as part of title.
type Color ¶
Color interface represents colors in the PDF creator.
func ColorRGBFrom8bit ¶
ColorRGBFrom8bit creates a Color from 8bit (0-255) r,g,b values. Example:
red := ColorRGBFrom8Bit(255, 0, 0)
func ColorRGBFromArithmetic ¶
ColorRGBFromArithmetic creates a Color from arithmetic (0-1.0) color values. Example:
green := ColorRGBFromArithmetic(0, 1.0, 0)
func ColorRGBFromHex ¶
ColorRGBFromHex converts color hex code to rgb color for using with creator. NOTE: If there is a problem interpreting the string, then will use black color and log a debug message. Example hex code: #ffffff -> (1,1,1) white.
type Creator ¶
type Creator struct {
// contains filtered or unexported fields
}
Creator is a wrapper around functionality for creating PDF reports and/or adding new content onto imported PDF pages, etc.
func (*Creator) Context ¶
func (c *Creator) Context() DrawContext
Context returns the current drawing context.
func (*Creator) CreateFrontPage ¶
func (c *Creator) CreateFrontPage(genFrontPageFunc func(args FrontpageFunctionArgs))
CreateFrontPage sets a function to generate a front Page.
func (*Creator) CreateTableOfContents ¶
func (c *Creator) CreateTableOfContents(genTOCFunc func(toc *TableOfContents) (*Chapter, error))
CreateTableOfContents sets a function to generate table of contents.
func (*Creator) Draw ¶
Draw draws the Drawable widget to the document. This can span over 1 or more pages. Additional pages are added if the contents go over the current Page.
func (*Creator) DrawFooter ¶
func (c *Creator) DrawFooter(drawFooterFunc func(footer *Block, args FooterFunctionArgs))
DrawFooter sets a function to draw a footer on created output pages.
func (*Creator) DrawHeader ¶
func (c *Creator) DrawHeader(drawHeaderFunc func(header *Block, args HeaderFunctionArgs))
DrawHeader sets a function to draw a header on created output pages.
func (*Creator) MoveDown ¶
MoveDown moves the drawing context down by relative displacement dy (negative goes up).
func (*Creator) MoveRight ¶
MoveRight moves the drawing context right by relative displacement dx (negative goes left).
func (*Creator) NewChapter ¶
NewChapter creates a new chapter with the specified title as the heading.
func (*Creator) NewPage ¶
func (c *Creator) NewPage()
NewPage adds a new Page to the Creator and sets as the active Page.
func (*Creator) NewSubchapter ¶
func (c *Creator) NewSubchapter(ch *Chapter, title string) *Subchapter
NewSubchapter creates a new Subchapter under Chapter ch with specified title. All other parameters are set to their defaults.
func (*Creator) RotateDeg ¶
RotateDeg rotates the current active page by angle degrees. An error is returned on failure, which can be if there is no currently active page, or the angleDeg is not a multiple of 90 degrees.
func (*Creator) SetForms ¶
func (c *Creator) SetForms(form *model.PdfAcroForm) error
SetForms Add Acroforms to a PDF file. Sets the specified form for writing.
func (*Creator) SetPageMargins ¶
SetPageMargins sets the page margins: left, right, top, bottom. The default page margins are 10% of document width.
func (*Creator) SetPageSize ¶
SetPageSize sets the Creator's page size. Pages that are added after this will be created with this Page size. Does not affect pages already created.
Common page sizes are defined as constants. Examples: 1. c.SetPageSize(creator.PageSizeA4) 2. c.SetPageSize(creator.PageSizeA3) 3. c.SetPageSize(creator.PageSizeLegal) 4. c.SetPageSize(creator.PageSizeLetter)
For custom sizes: Use the PPMM (points per mm) and PPI (points per inch) when defining those based on physical page sizes:
Examples: 1. 10x15 sq. mm: SetPageSize(PageSize{10*creator.PPMM, 15*creator.PPMM}) where PPMM is points per mm. 2. 3x2 sq. inches: SetPageSize(PageSize{3*creator.PPI, 2*creator.PPI}) where PPI is points per inch.
func (*Creator) SetPdfWriterAccessFunc ¶
SetPdfWriterAccessFunc sets a PdfWriter access function/hook. Exposes the PdfWriter just prior to writing the PDF. Can be used to encrypt the output PDF, etc.
Example of encrypting with a user/owner password "password" Prior to calling c.WriteFile():
c.SetPdfWriterAccessFunc(func(w *model.PdfWriter) error { userPass := []byte("password") ownerPass := []byte("password") err := w.Encrypt(userPass, ownerPass, nil) return err })
func (*Creator) Write ¶
func (c *Creator) Write(ws io.WriteSeeker) error
Write output of creator to io.WriteSeeker interface.
func (*Creator) WriteToFile ¶
WriteToFile writes the Creator output to file specified by path.
type DrawContext ¶
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 }
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 Drawable ¶
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) }
Drawable is a widget that can be used to draw with the Creator.
type Ellipse ¶
type Ellipse struct {
// contains filtered or unexported fields
}
Ellipse defines an ellipse with a center at (xc,yc) and a specified width and height. The ellipse can have a colored fill and/or border with a specified width. Implements the Drawable interface and can be drawn on PDF using the Creator.
func NewEllipse ¶
NewEllipse creates a new ellipse centered at (xc,yc) with a width and height specified.
func (*Ellipse) GeneratePageBlocks ¶
func (ell *Ellipse) GeneratePageBlocks(ctx DrawContext) ([]*Block, DrawContext, error)
GeneratePageBlocks draws the rectangle on a new block representing the page.
func (*Ellipse) SetBorderColor ¶
SetBorderColor sets the border color.
func (*Ellipse) SetBorderWidth ¶
SetBorderWidth sets the border width.
func (*Ellipse) SetFillColor ¶
SetFillColor sets the fill color.
type FooterFunctionArgs ¶
type FooterFunctionArgs struct {}
FooterFunctionArgs holds the input arguments to a footer drawing function. It is designed as a struct, so additional parameters can be added in the future with backwards compatibility.
type FrontpageFunctionArgs ¶
FrontpageFunctionArgs holds the input arguments to a front page drawing function. It is designed as a struct, so additional parameters can be added in the future with backwards compatibility.
type HeaderFunctionArgs ¶
HeaderFunctionArgs holds the input arguments to a header drawing function. It is designed as a struct, so additional parameters can be added in the future with backwards compatibility.
type Image ¶
type Image struct {
// contains filtered or unexported fields
}
The Image type is used to draw an image onto PDF.
func NewImageFromData ¶
NewImageFromData creates an Image from image data.
func NewImageFromFile ¶
NewImageFromFile creates an Image from a file.
func NewImageFromGoImage ¶
NewImageFromGoImage creates an Image from a go image.Image datastructure.
func (*Image) GeneratePageBlocks ¶
func (img *Image) GeneratePageBlocks(ctx DrawContext) ([]*Block, DrawContext, error)
GeneratePageBlocks generate the Page blocks. Draws the Image on a block, implementing the Drawable interface.
func (*Image) GetMargins ¶
GetMargins returns the Image's margins: left, right, top, bottom.
func (*Image) ScaleToHeight ¶
ScaleToHeight scale Image to a specified height h, maintaining the aspect ratio.
func (*Image) ScaleToWidth ¶
ScaleToWidth scale Image to a specified width w, maintaining the aspect ratio.
func (*Image) SetEncoder ¶
func (img *Image) SetEncoder(encoder core.StreamEncoder)
SetEncoder sets the encoding/compression mechanism for the image.
func (*Image) SetMargins ¶
SetMargins sets the margins for the Image (in relative mode): left, right, top, bottom.
func (*Image) SetOpacity ¶
SetOpacity sets opacity for Image.
type Line ¶
type Line struct {
// contains filtered or unexported fields
}
Line defines a line between point 1 (X1,Y1) and point 2 (X2,Y2). The line ending styles can be none (regular line), or arrows at either end. The line also has a specified width, color and opacity. Implements the Drawable interface and can be drawn on PDF using the Creator.
func (*Line) GeneratePageBlocks ¶
func (l *Line) GeneratePageBlocks(ctx DrawContext) ([]*Block, DrawContext, error)
GeneratePageBlocks draws the line on a new block representing the page. Implements the Drawable interface.
func (*Line) SetColor ¶
SetColor sets the line color. Use ColorRGBFromHex, ColorRGBFrom8bit or ColorRGBFromArithmetic to make the color object.
func (*Line) SetLineWidth ¶
SetLineWidth sets the line width.
type PageBreak ¶
type PageBreak struct { }
PageBreak represents a page break for a chapter.
func (*PageBreak) GeneratePageBlocks ¶
func (p *PageBreak) GeneratePageBlocks(ctx DrawContext) ([]*Block, DrawContext, error)
GeneratePageBlocks generates a page break block.
type PageSize ¶
type PageSize [2]float64
PageSize represents the page size as a 2 element array representing the width and height in PDF document units (points).
type Paragraph ¶
type Paragraph struct {
// contains filtered or unexported fields
}
Paragraph represents text drawn with a specified font and can wrap across lines and pages. By default occupies the available width in the drawing context.
func NewParagraph ¶
NewParagraph create a new text paragraph. Uses default parameters: Helvetica, WinAnsiEncoding and wrap enabled with a wrap width of 100 points.
func (*Paragraph) GeneratePageBlocks ¶
func (p *Paragraph) GeneratePageBlocks(ctx DrawContext) ([]*Block, DrawContext, error)
GeneratePageBlocks generates the page blocks. Multiple blocks are generated if the contents wrap over multiple pages. Implements the Drawable interface.
func (*Paragraph) GetMargins ¶
GetMargins returns the Paragraph's margins: left, right, top, bottom.
func (*Paragraph) Height ¶
Height returns the height of the Paragraph. The height is calculated based on the input text and how it is wrapped within the container. Does not include Margins.
func (*Paragraph) SetColor ¶
SetColor set the color of the Paragraph text.
Example:
- p := NewParagraph("Red paragraph") // Set to red color with a hex code: p.SetColor(creator.ColorRGBFromHex("#ff0000"))
- Make Paragraph green with 8-bit rgb values (0-255 each component) p.SetColor(creator.ColorRGBFrom8bit(0, 255, 0)
- Make Paragraph blue with arithmetic (0-1) rgb components. p.SetColor(creator.ColorRGBFromArithmetic(0, 0, 1.0)
func (*Paragraph) SetEnableWrap ¶
SetEnableWrap sets the line wrapping enabled flag.
func (*Paragraph) SetEncoder ¶
func (p *Paragraph) SetEncoder(encoder textencoding.TextEncoder)
SetEncoder sets the text encoding.
func (*Paragraph) SetFontSize ¶
SetFontSize sets the font size in document units (points).
func (*Paragraph) SetLineHeight ¶
SetLineHeight sets the line height (1.0 default).
func (*Paragraph) SetMargins ¶
SetMargins sets the Paragraph's margins.
func (*Paragraph) SetTextAlignment ¶
func (p *Paragraph) SetTextAlignment(align TextAlignment)
SetTextAlignment sets the horizontal alignment of the text within the space provided.
func (*Paragraph) SetWidth ¶
SetWidth sets the the Paragraph width. This is essentially the wrapping width, i.e. the width the text can extend to prior to wrapping over to next line.
type Rectangle ¶
type Rectangle struct {
// contains filtered or unexported fields
}
Rectangle defines a rectangle with upper left corner at (x,y) and a specified width and height. The rectangle can have a colored fill and/or border with a specified width. Implements the Drawable interface and can be drawn on PDF using the Creator.
func NewRectangle ¶
NewRectangle creates a new Rectangle with default parameters with left corner at (x,y) and width, height as specified.
func (*Rectangle) GeneratePageBlocks ¶
func (rect *Rectangle) GeneratePageBlocks(ctx DrawContext) ([]*Block, DrawContext, error)
GeneratePageBlocks draws the rectangle on a new block representing the page. Implements the Drawable interface.
func (*Rectangle) GetCoords ¶
GetCoords returns coordinates of the Rectangle's upper left corner (x,y).
func (*Rectangle) SetBorderColor ¶
SetBorderColor sets border color.
func (*Rectangle) SetBorderWidth ¶
SetBorderWidth sets the border width.
func (*Rectangle) SetFillColor ¶
SetFillColor sets the fill color.
type Subchapter ¶
type Subchapter struct {
// contains filtered or unexported fields
}
Subchapter simply represents a sub chapter pertaining to a specific Chapter. It can contain multiple Drawables, just like a chapter.
func (*Subchapter) Add ¶
func (subchap *Subchapter) Add(d Drawable)
Add adds a new Drawable to the chapter. The currently supported Drawables are: *Paragraph, *Image, *Block, *Table.
func (*Subchapter) GeneratePageBlocks ¶
func (subchap *Subchapter) GeneratePageBlocks(ctx DrawContext) ([]*Block, DrawContext, error)
GeneratePageBlocks generates the page blocks. Multiple blocks are generated if the contents wrap over multiple pages. Implements the Drawable interface.
func (*Subchapter) GetHeading ¶
func (subchap *Subchapter) GetHeading() *Paragraph
GetHeading returns the Subchapter's heading Paragraph to address style (font type, size, etc).
func (*Subchapter) GetMargins ¶
func (subchap *Subchapter) GetMargins() (float64, float64, float64, float64)
GetMargins returns the Subchapter's margins: left, right, top, bottom.
func (*Subchapter) SetIncludeInTOC ¶
func (subchap *Subchapter) SetIncludeInTOC(includeInTOC bool)
SetIncludeInTOC sets a flag to indicate whether or not to include in the table of contents.
func (*Subchapter) SetMargins ¶
func (subchap *Subchapter) SetMargins(left, right, top, bottom float64)
SetMargins sets the Subchapter's margins (left, right, top, bottom). These margins are typically not needed as the Creator's page margins are used preferably.
func (*Subchapter) SetShowNumbering ¶
func (subchap *Subchapter) SetShowNumbering(show bool)
SetShowNumbering sets a flag to indicate whether or not to show chapter numbers as part of title.
type Table ¶
type Table struct {
// contains filtered or unexported fields
}
Table allows organizing content in an rows X columns matrix, which can spawn across multiple pages.
func (*Table) GeneratePageBlocks ¶
func (table *Table) GeneratePageBlocks(ctx DrawContext) ([]*Block, DrawContext, error)
GeneratePageBlocks generate the page blocks. Multiple blocks are generated if the contents wrap over multiple pages. Implements the Drawable interface.
func (*Table) GetMargins ¶
GetMargins returns the left, right, top, bottom Margins.
func (*Table) NewCell ¶
NewCell makes a new cell and inserts into the table at current position in the table.
func (*Table) SetColumnWidths ¶
SetColumnWidths sets the fractional column widths. Each width should be in the range 0-1 and is a fraction of the table width. The number of width inputs must match number of columns, otherwise an error is returned.
func (*Table) SetMargins ¶
SetMargins sets the Table's left, right, top, bottom margins.
func (*Table) SetPos ¶
SetPos sets the Table's positioning to absolute mode and specifies the upper-left corner coordinates as (x,y). Note that this is only sensible to use when the table does not wrap over multiple pages. TODO: Should be able to set width too (not just based on context/relative positioning mode).
func (*Table) SetRowHeight ¶
SetRowHeight sets the height for a specified row.
type TableCell ¶
type TableCell struct {
// contains filtered or unexported fields
}
TableCell defines a table cell which can contain a Drawable as content.
func (*TableCell) SetBackgroundColor ¶
SetBackgroundColor sets the cell's background color.
func (*TableCell) SetBorder ¶
func (cell *TableCell) SetBorder(style CellBorderStyle, width float64)
SetBorder sets the cell's border style.
func (*TableCell) SetBorderColor ¶
SetBorderColor sets the cell's border color.
func (*TableCell) SetContent ¶
func (cell *TableCell) SetContent(vd VectorDrawable) error
SetContent sets the cell's content. The content is a VectorDrawable, i.e. a Drawable with a known height and width. The currently supported VectorDrawable is: *Paragraph. TODO: Add support for *Image, *Block.
func (*TableCell) SetHorizontalAlignment ¶
func (cell *TableCell) SetHorizontalAlignment(halign CellHorizontalAlignment)
SetHorizontalAlignment sets the cell's horizontal alignment of content. Can be one of: - CellHorizontalAlignmentLeft - CellHorizontalAlignmentCenter - CellHorizontalAlignmentRight
func (*TableCell) SetVerticalAlignment ¶
func (cell *TableCell) SetVerticalAlignment(valign CellVerticalAlignment)
SetVerticalAlignment set the cell's vertical alignment of content. Can be one of: - CellHorizontalAlignmentTop - CellHorizontalAlignmentMiddle - CellHorizontalAlignmentBottom
func (*TableCell) Width ¶
func (cell *TableCell) Width(ctx DrawContext) float64
Width returns the cell's width based on the input draw context.
type TableOfContents ¶
type TableOfContents struct {
// contains filtered or unexported fields
}
TableOfContents provides an overview over chapters and subchapters when creating a document with Creator.
func (*TableOfContents) Entries ¶
func (toc *TableOfContents) Entries() []TableOfContentsEntry
Entries returns the table of content entries.
type TableOfContentsEntry ¶
type TableOfContentsEntry struct { Title string Chapter int Subchapter int // 0 if chapter PageNumber int // Page number }
TableOfContentsEntry defines a single entry in the TableOfContents. Each entry has a title, chapter number, sub chapter (0 if chapter) and the page number.
type TextAlignment ¶
type TextAlignment int
TextAlignment options for paragraph.
const ( TextAlignmentLeft TextAlignment = iota TextAlignmentRight TextAlignmentCenter TextAlignmentJustify )
The options supported for text alignment are: left - TextAlignmentLeft right - TextAlignmentRight center - TextAlignmentCenter justify - TextAlignmentJustify
type VectorDrawable ¶
VectorDrawable is a Drawable with a specified width and height.