From b0b8818a41652bc54c13d4643649c04f5a353f0e Mon Sep 17 00:00:00 2001 From: speedplane Date: Mon, 13 Jun 2016 23:35:11 -0400 Subject: [PATCH] Fix a bug with pdfminer which occurs when two or more filters are applied to a stream, even though no parameters are specified. The code would previously drop all of the streams after the first due to misapplication of the zip function. --- pdfminer/pdftypes.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/pdfminer/pdftypes.py b/pdfminer/pdftypes.py index 10c0777..af1435b 100644 --- a/pdfminer/pdftypes.py +++ b/pdfminer/pdftypes.py @@ -223,8 +223,13 @@ class PDFStream(PDFObject): return [] if not isinstance(filters, list): filters = [filters] - if not isinstance(params, list): + if not params: + # Make sure the parameters list is the same as filters. + params = [{}]*len(filters) + elif not isinstance(params, list): params = [params] + if STRICT and len(params) != len(filters): + raise PDFException("Parameters len filter mismatch") return zip(filters, params) def decode(self):