From 7a042275de3709df5296857cd8cefc298bc44b2a Mon Sep 17 00:00:00 2001 From: Peter Williams Date: Thu, 19 Mar 2020 19:12:05 +1100 Subject: [PATCH] Write out multi-encoder filters correctly --- core/encoding.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/core/encoding.go b/core/encoding.go index b268e970..68beb7c5 100644 --- a/core/encoding.go +++ b/core/encoding.go @@ -2372,7 +2372,12 @@ func (enc *MultiEncoder) AddEncoder(encoder StreamEncoder) { // MakeStreamDict makes a new instance of an encoding dictionary for a stream object. func (enc *MultiEncoder) MakeStreamDict() *PdfObjectDictionary { dict := MakeDict() - dict.Set("Filter", MakeName(enc.GetFilterName())) + + names := make([]PdfObject, len(enc.encoders)) + for i, e := range enc.encoders { + names[i] = MakeName(e.GetFilterName()) + } + dict.Set("Filter", MakeArray(names...)) // Pass all values from children, except Filter and DecodeParms. for _, encoder := range enc.encoders {