From 8e683e157bebd8e94142c1e584036d2ebd56848c Mon Sep 17 00:00:00 2001 From: Tyler Trine Date: Mon, 14 Jun 2021 16:28:45 -0400 Subject: [PATCH 1/2] Fix bug preventing rendering of some documents whose base PDF pages have no MediaBox field --- rmrl/render.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/rmrl/render.py b/rmrl/render.py index 475b1da..99a40a0 100644 --- a/rmrl/render.py +++ b/rmrl/render.py @@ -439,9 +439,13 @@ def merge_pages(basepage, rmpage, changed_page, expand_pages): # MediaBox, so one must be taken from the parent. The # rM adds a bit to the width AND the height on this # file. - bpage_box = list(map(float, basepage.CropBox - or basepage.MediaBox - or basepage.Parent.MediaBox)) + # Sometimes the direct parent does not have a MediaBox. + # In this situation, look one extra level above. + box_data = basepage.CropBox or basepage.MediaBox or basepage.Parent.MediaBox + if not box_data and hasattr(basepage.Parent,'Parent'): + box_data = basepage.Parent.Parent.MediaBox + + bpage_box = list(map(float, box_data)) # Fix any malformed PDF that has a CropBox extending outside of # the MediaBox, by limiting the area to the intersection. From 148089d350308e205f2ff777b1db76170c75b19a Mon Sep 17 00:00:00 2001 From: Tyler Trine Date: Mon, 14 Jun 2021 18:11:25 -0400 Subject: [PATCH 2/2] Add more descriptive error message when base page dimensions cannot be found in merge_pages --- rmrl/render.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/rmrl/render.py b/rmrl/render.py index 99a40a0..6b18c6f 100644 --- a/rmrl/render.py +++ b/rmrl/render.py @@ -445,6 +445,10 @@ def merge_pages(basepage, rmpage, changed_page, expand_pages): if not box_data and hasattr(basepage.Parent,'Parent'): box_data = basepage.Parent.Parent.MediaBox + # If we still can't find it, raise an exception that describes the problem + if not box_data: + raise TypeError("Could not find the dimensions of the base PDF page.") + bpage_box = list(map(float, box_data)) # Fix any malformed PDF that has a CropBox extending outside of