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 }