Skip to content

Commit

Permalink
Fix pagebreak generate page blocks. Support pagebreak in subchapter.
Browse files Browse the repository at this point in the history
  • Loading branch information
gunnsth committed Mar 20, 2018
1 parent d951275 commit e71bb34
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 3 deletions.
16 changes: 14 additions & 2 deletions pdf/creator/pagebreak.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,21 @@ func NewPageBreak() *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.Width, ctx.PageHeight),
NewBlock(ctx.PageWidth, ctx.PageHeight-ctx.Y),
NewBlock(ctx.PageWidth, ctx.PageHeight),
}
ctx.Y = 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
}
2 changes: 1 addition & 1 deletion pdf/creator/subchapter.go
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@ func (subchap *Subchapter) Add(d Drawable) {
switch d.(type) {
case *Chapter, *Subchapter:
common.Log.Debug("Error: Cannot add chapter or subchapter to a subchapter")
case *Paragraph, *Image, *Block, *Table:
case *Paragraph, *Image, *Block, *Table, *PageBreak:
subchap.contents = append(subchap.contents, d)
default:
common.Log.Debug("Unsupported: %T", d)
Expand Down

0 comments on commit e71bb34

Please sign in to comment.