github.com/signintech/pdft@v0.5.0/minigopdf/device_rgb_obj.go (about) 1 package gopdf 2 3 import ( 4 "bytes" 5 "strconv" 6 ) 7 8 // DeviceRGBObj DeviceRGB 9 type DeviceRGBObj struct { 10 buffer bytes.Buffer 11 data []byte 12 getRoot func() *GoPdf 13 } 14 15 func (d *DeviceRGBObj) init(funcGetRoot func() *GoPdf) { 16 d.getRoot = funcGetRoot 17 } 18 19 func (d *DeviceRGBObj) protection() *PDFProtection { 20 return d.getRoot().protection() 21 } 22 23 func (d *DeviceRGBObj) getType() string { 24 return "devicergb" 25 } 26 func (d *DeviceRGBObj) getObjBuff() *bytes.Buffer { 27 return &d.buffer 28 } 29 30 // สร้าง ข้อมูลใน pdf 31 func (d *DeviceRGBObj) build(objID int) error { 32 33 d.buffer.WriteString("<<\n") 34 d.buffer.WriteString("/Length " + strconv.Itoa(len(d.data)) + "\n") 35 d.buffer.WriteString(">>\n") 36 d.buffer.WriteString("stream\n") 37 if d.protection() != nil { 38 tmp, err := rc4Cip(d.protection().objectkey(objID), d.data) 39 if err != nil { 40 return err 41 } 42 d.buffer.Write(tmp) 43 d.buffer.WriteString("\n") 44 } else { 45 d.buffer.Write(d.data) 46 } 47 d.buffer.WriteString("endstream\n") 48 49 return nil 50 }