github.com/signintech/pdft@v0.5.0/minigopdf/pages_obj.go (about)

     1  package gopdf
     2  
     3  import (
     4  	"bytes"
     5  	"fmt"
     6  	"strconv"
     7  )
     8  
     9  // PagesObj pdf pages object
    10  type PagesObj struct { //impl IObj
    11  	buffer    bytes.Buffer
    12  	PageCount int
    13  	Kids      string
    14  	getRoot   func() *GoPdf
    15  }
    16  
    17  func (p *PagesObj) init(funcGetRoot func() *GoPdf) {
    18  	p.PageCount = 0
    19  	p.getRoot = funcGetRoot
    20  }
    21  
    22  func (p *PagesObj) build(objID int) error {
    23  
    24  	height := fmt.Sprintf("%0.2f", p.getRoot().config.PageSize.H)
    25  	width := fmt.Sprintf("%0.2f", p.getRoot().config.PageSize.W)
    26  	p.buffer.WriteString("<<\n")
    27  	p.buffer.WriteString("  /Type /" + p.getType() + "\n")
    28  	p.buffer.WriteString("  /MediaBox [ 0 0 " + width + " " + height + " ]\n")
    29  	p.buffer.WriteString("  /Count " + strconv.Itoa(p.PageCount) + "\n")
    30  	p.buffer.WriteString("  /Kids [ " + p.Kids + " ]\n") //sample Kids [ 3 0 R ]
    31  	p.buffer.WriteString(">>\n")
    32  	return nil
    33  }
    34  
    35  func (p *PagesObj) getType() string {
    36  	return "Pages"
    37  }
    38  
    39  func (p *PagesObj) getObjBuff() *bytes.Buffer {
    40  	return &(p.buffer)
    41  }
    42  
    43  func (p *PagesObj) test() {
    44  	fmt.Print(p.getType() + "\n")
    45  }