From aa54d493850f0cf336346c1203e0009b8692d955 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Peter=20Sch=C3=A4r?= Date: Wed, 18 Dec 2024 15:46:20 +0100 Subject: [PATCH] Toc length calculation adapted to changed templates and bugfixes (#2038) --- .../print_proxy/mapfish_print/toc_pages.py | 65 ++++++++++--------- 1 file changed, 35 insertions(+), 30 deletions(-) diff --git a/pyramid_oereb/contrib/print_proxy/mapfish_print/toc_pages.py b/pyramid_oereb/contrib/print_proxy/mapfish_print/toc_pages.py index d9a9f62f3b..2799289348 100644 --- a/pyramid_oereb/contrib/print_proxy/mapfish_print/toc_pages.py +++ b/pyramid_oereb/contrib/print_proxy/mapfish_print/toc_pages.py @@ -15,16 +15,16 @@ def __init__(self, extract): 842 - self.header_height - self.footer_height ) # A4 size - (footer + header) self.d1_height = 77 # toc.jrxml - self.d2_height = 29 # toc.jrxml - self.d3_height = 61 # toc.jrxml + self.d2_height = 32 # toc.jrxml + self.d3_height = 58 # toc.jrxml self.d4_height = 44 # toc.jrxml - self.d5_height = 93 # toc.jrxml - self.d6_height = 38 # toc.jrxml + self.d5_height = 15 # toc.jrxml + self.d6_height = 64 # toc.jrxml self.d6_left_height = 38 # toc.jrxml self.d6_right_height = 20 # toc.jrxml self.extract = extract self.display_qrcode = self.extract["Display_QRCode"] - self.total_length = self.compute_total_lenght() + self.total_length = self.compute_total_length() def compute_header(self): total_size = 0 @@ -39,7 +39,7 @@ def compute_footer(self): page_bottom_margin = 20 # toc.jrxml footer_height = 10 # toc.jrxml total_size += page_bottom_margin + footer_height - log.debug(f"header total_size: {total_size}") + log.debug(f"footer total_size: {total_size}") return total_size def compute_d1(self): @@ -54,36 +54,34 @@ def compute_d2(self): blank_space_above = 2 # toc.jrxml page_label_height = 10 # toc.jrxml total_size += blank_space_above + page_label_height - toc_item_height = 17 # toc.jrxml (20 in tocConcernedTheme.jrxml) + toc_item_height = 20 # toc.jrxml (20 in tocConcernedTheme.jrxml) unique_concerned_themes = [] for concerned_theme in self.extract["ConcernedTheme"]: if concerned_theme not in unique_concerned_themes: unique_concerned_themes.append(concerned_theme) total_size += len(unique_concerned_themes) * toc_item_height - log.debug(f"d2 total_size: {total_size}") if total_size > self.d2_height: + log.debug(f"d2 total_size: {total_size}") return total_size else: + log.debug(f"d2 total_size: {self.d2_height}") return self.d2_height def compute_d3(self): total_size = 0 blank_space_above = 26 # toc.jrxml not_concerned_themes_title_height = 15 # toc.jrxml - blank_space_between = 5 # toc.jrxml - not_concerned_themes_first_item_height = 15 # toc.jrxml - not_concerned_themes_further_items_height = 12 # themelist.jrxml + blank_space_between = 2 # toc.jrxml + not_concerned_themes_item_height = 12 # toc.jrxml (12 in themelist.jrxml) total_size += ( blank_space_above + not_concerned_themes_title_height + blank_space_between ) - total_size += not_concerned_themes_first_item_height + ( - (len(self.extract["NotConcernedTheme"]) - 1) - * not_concerned_themes_further_items_height - ) - log.debug(f"d3 total_size: {total_size}") + total_size += len(self.extract["NotConcernedTheme"]) * not_concerned_themes_item_height if total_size > self.d3_height: + log.debug(f"d3 total_size: {total_size}") return total_size else: + log.debug(f"d3 total_size: {self.d3_height}") return self.d3_height def compute_d4(self): @@ -95,16 +93,16 @@ def compute_d4(self): def compute_d5(self): total_size = 0 - theme_without_data_first_item_height = 15 # toc.jrxml - theme_without_data_further_items_height = 12 # themelist.jrxml - total_size += theme_without_data_first_item_height + ( - (len(self.extract["ThemeWithoutData"]) - 1) - * theme_without_data_further_items_height + theme_without_data_item_height = 12 # themelist.jrxml + total_size += ( + (len(self.extract["ThemeWithoutData"])) + * theme_without_data_item_height ) - log.debug(f"d5 total_size: {total_size}") if total_size > self.d5_height: + log.debug(f"d5 total_size: {total_size}") return total_size else: + log.debug(f"d5 total_size: {self.d5_height}") return self.d5_height def compute_d6_left(self): @@ -116,8 +114,12 @@ def compute_d6_left(self): total_size += general_information_title_height for i in self.extract.get("GeneralInformation", []): total_size += self.compute_length_of_wrapped_text( - i["Info"], 78, general_information_item_line_heigth + i["Info"], 73, general_information_item_line_heigth ) + + space_between_info_and_disclaimer = 6 # general_info_and_disclaimer.jrxml + total_size += space_between_info_and_disclaimer + # LandRegister-Disclaimer (1 title, 1 item) land_register_disclaimer_title_line_height = ( 8 # general_info_and_disclaimer.jrxml @@ -133,13 +135,14 @@ def compute_d6_left(self): ) total_size += self.compute_length_of_wrapped_text( self.extract.get("DisclaimerLandRegister_Content", ""), - 78, + 73, land_register_disclaimer_item_line_height, ) - log.debug("d6 left total_size : {}".format(total_size)) if total_size > self.d6_left_height: + log.debug("d6 left total_size: {}".format(total_size)) return total_size else: + log.debug("d6 left total_size: {}".format(self.d6_left_height)) return self.d6_left_height @staticmethod @@ -162,29 +165,31 @@ def compute_d6_right(self): i["Title"], 65, disclaimer_title_line_height ) total_size += self.compute_length_of_wrapped_text( - i["Content"], 78, disclaimer_item_line_height + i["Content"], 73, disclaimer_item_line_height ) - total_size += blank_space_below_disclaimers + total_size += blank_space_below_disclaimers # QR-Code (optional) if self.display_qrcode: total_size += blank_space_above_qrcode + qr_code_size - log.debug("d6 right total_size : {}".format(total_size)) if total_size > self.d6_right_height: + log.debug("d6 right total_size: {}".format(total_size)) return total_size else: + log.debug("d6 right total_size: {}".format(self.d6_right_height)) return self.d6_right_height def compute_d6(self): total_size = max(self.compute_d6_left(), self.compute_d6_right()) - log.debug(f"d6 total_size: {total_size}") if total_size > self.d6_height: + log.debug(f"d6 total_size: {total_size}") return total_size else: + log.debug(f"d6 total_size: {self.d6_height}") return self.d6_height - def compute_total_lenght(self): + def compute_total_length(self): x = ( self.compute_d1() + self.compute_d2()