Skip to content

Commit

Permalink
Toc length calculation adapted to changed templates and bugfixes (#2038)
Browse files Browse the repository at this point in the history
  • Loading branch information
peterschaer committed Dec 18, 2024
1 parent 36f687d commit aa54d49
Showing 1 changed file with 35 additions and 30 deletions.
65 changes: 35 additions & 30 deletions pyramid_oereb/contrib/print_proxy/mapfish_print/toc_pages.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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):
Expand All @@ -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):
Expand All @@ -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):
Expand All @@ -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
Expand All @@ -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
Expand All @@ -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()
Expand Down

0 comments on commit aa54d49

Please sign in to comment.