mirror of
https://github.com/unidoc/unipdf.git
synced 2025-04-27 13:48:51 +08:00
32 lines
953 B
Go
32 lines
953 B
Go
package creator
|
|
|
|
// PageBreak represents a page break for a chapter.
|
|
type PageBreak struct {
|
|
}
|
|
|
|
// newPageBreak create a new page break.
|
|
func newPageBreak() *PageBreak {
|
|
return &PageBreak{}
|
|
}
|
|
|
|
// GeneratePageBlocks generates a page break block.
|
|
func (p *PageBreak) GeneratePageBlocks(ctx DrawContext) ([]*Block, DrawContext, error) {
|
|
// Return two empty blocks. First one simply means that there is nothing more to add at the current page.
|
|
// The second one starts a new page.
|
|
blocks := []*Block{
|
|
NewBlock(ctx.PageWidth, ctx.PageHeight-ctx.Y),
|
|
NewBlock(ctx.PageWidth, ctx.PageHeight),
|
|
}
|
|
|
|
// New Page. Place context in upper left corner (with margins).
|
|
ctx.Page++
|
|
newContext := ctx
|
|
newContext.Y = ctx.Margins.top
|
|
newContext.X = ctx.Margins.left
|
|
newContext.Height = ctx.PageHeight - ctx.Margins.top - ctx.Margins.bottom
|
|
newContext.Width = ctx.PageWidth - ctx.Margins.left - ctx.Margins.right
|
|
ctx = newContext
|
|
|
|
return blocks, ctx, nil
|
|
}
|