From 53b9e8b99caee7c34eb265b8e1fbaf8cc256d55d Mon Sep 17 00:00:00 2001 From: Gunnsteinn Hall Date: Wed, 28 Jun 2017 15:14:25 +0000 Subject: [PATCH] Convenience functions to create streams and indirect objects. --- pdf/core/primitives.go | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/pdf/core/primitives.go b/pdf/core/primitives.go index 9121e05d..86af5627 100644 --- a/pdf/core/primitives.go +++ b/pdf/core/primitives.go @@ -98,6 +98,27 @@ func MakeNull() *PdfObjectNull { return &null } +func MakeIndirectObject(obj PdfObject) *PdfIndirectObject { + ind := &PdfIndirectObject{} + ind.PdfObject = obj + return ind +} + +func MakeStream(contents []byte, encoder StreamEncoder) (*PdfObjectStream, error) { + stream := &PdfObjectStream{} + + stream.PdfObjectDictionary = encoder.MakeStreamDict() + + encoded, err := encoder.EncodeBytes(contents) + if err != nil { + return nil, err + } + stream.PdfObjectDictionary.Set("Length", MakeInteger(int64(len(encoded)))) + + stream.Stream = encoded + return stream, nil +} + func (this *PdfObjectBool) String() string { if *this { return "true"