fix: пустые страницы в руководстве — подписи к высокому рисунку переносятся на новую страницу, высокие снимки уменьшаются
This commit is contained in:
Binary file not shown.
@@ -191,6 +191,9 @@ class Guide(FPDF):
|
|||||||
self.set_font("D", "", 9.5)
|
self.set_font("D", "", 9.5)
|
||||||
lines = self.mc(w - 8, 4.9, t, dry_run=True, output="LINES")
|
lines = self.mc(w - 8, 4.9, t, dry_run=True, output="LINES")
|
||||||
h = max(len(lines) * 4.9, 5.6) + 1.8
|
h = max(len(lines) * 4.9, 5.6) + 1.8
|
||||||
|
if y + h > 282: # не влезает — пункт на следующую страницу (иначе автоперенос даёт пустые страницы)
|
||||||
|
self.add_page()
|
||||||
|
y = self.get_y()
|
||||||
self._badge(x, y + 0.2, n)
|
self._badge(x, y + 0.2, n)
|
||||||
self.set_xy(x + 8, y)
|
self.set_xy(x + 8, y)
|
||||||
self.set_text_color(*DARK)
|
self.set_text_color(*DARK)
|
||||||
@@ -202,16 +205,20 @@ class Guide(FPDF):
|
|||||||
def wide(self, name, caption, width=174):
|
def wide(self, name, caption, width=174):
|
||||||
"""Рисунок на всю ширину + легенда под ним."""
|
"""Рисунок на всю ширину + легенда под ним."""
|
||||||
buf, (w, h) = self._jpg(name)
|
buf, (w, h) = self._jpg(name)
|
||||||
ih = width * h / w
|
|
||||||
labels = LABELS.get(name, [])
|
labels = LABELS.get(name, [])
|
||||||
|
max_ih = 150 if labels else 230 # высокий снимок уменьшаем, чтобы с подписями уместился на странице
|
||||||
|
if width * h / w > max_ih:
|
||||||
|
width = max_ih * w / h
|
||||||
|
ih = width * h / w
|
||||||
|
x0 = 18 + (174 - width) / 2
|
||||||
need = ih + 8 + len(labels) * 7
|
need = ih + 8 + len(labels) * 7
|
||||||
if self.get_y() + need > 276:
|
if self.get_y() + need > 276:
|
||||||
self.add_page()
|
self.add_page()
|
||||||
self.fig += 1
|
self.fig += 1
|
||||||
y = self.get_y()
|
y = self.get_y()
|
||||||
self.set_draw_color(205, 210, 220)
|
self.set_draw_color(205, 210, 220)
|
||||||
self.image(buf, 18, y, w=width)
|
self.image(buf, x0, y, w=width)
|
||||||
self.rect(18, y, width, ih)
|
self.rect(x0, y, width, ih)
|
||||||
y += ih + 2
|
y += ih + 2
|
||||||
self.set_xy(18, y)
|
self.set_xy(18, y)
|
||||||
self.set_font("D", "B", 9)
|
self.set_font("D", "B", 9)
|
||||||
|
|||||||
Reference in New Issue
Block a user