MCPcopy Create free account
hub / github.com/CScorza/IntelOSINT / _pdf_table

Method _pdf_table

IntelOSINT.py:19006–19038  ·  view source on GitHub ↗
(self, pdf, title, rows)

Source from the content-addressed store, hash-verified

19004 self._mc(pdf, 6, f"- {w}")
19005
19006 def _pdf_table(self, pdf, title, rows):
19007 pdf.ln(2)
19008 pdf.set_font("Helvetica", "B", 11)
19009 pdf.cell(0, 7, self._latin1(title), new_x=XPos.LMARGIN, new_y=YPos.NEXT)
19010 pdf.set_font("Helvetica", "B", 9)
19011 key_w = 52
19012 val_w = max(30, pdf.w - pdf.l_margin - pdf.r_margin - key_w)
19013 pdf.cell(key_w, 7, self._latin1("Campo"), border=1)
19014 pdf.cell(val_w, 7, self._latin1("Valore"), border=1, new_x=XPos.LMARGIN, new_y=YPos.NEXT)
19015 pdf.set_font("Helvetica", "", 9)
19016 for k, v in rows:
19017 k_txt = self._latin1(str(k))
19018 v_txt = self._latin1(str(v))
19019 x0 = pdf.l_margin
19020 y0 = pdf.get_y()
19021 # Stima linee per mantenere entrambe le celle allineate e senza overflow orizzontale.
19022 k_lines = max(1, len(pdf.multi_cell(key_w, 6, k_txt, dry_run=True, output="LINES")))
19023 v_lines = max(1, len(pdf.multi_cell(val_w, 6, v_txt, dry_run=True, output="LINES")))
19024 row_h = 6 * max(k_lines, v_lines)
19025 if y0 + row_h > (pdf.h - pdf.b_margin):
19026 pdf.add_page()
19027 pdf.set_font("Helvetica", "B", 9)
19028 pdf.cell(key_w, 7, self._latin1("Campo"), border=1)
19029 pdf.cell(val_w, 7, self._latin1("Valore"), border=1, new_x=XPos.LMARGIN, new_y=YPos.NEXT)
19030 pdf.set_font("Helvetica", "", 9)
19031 y0 = pdf.get_y()
19032 pdf.rect(x0, y0, key_w, row_h)
19033 pdf.rect(x0 + key_w, y0, val_w, row_h)
19034 pdf.set_xy(x0, y0)
19035 pdf.multi_cell(key_w, 6, k_txt)
19036 pdf.set_xy(x0 + key_w, y0)
19037 pdf.multi_cell(val_w, 6, v_txt)
19038 pdf.set_xy(x0, y0 + row_h)
19039
19040 def _pdf_footer_credentials(self, pdf, creds: dict):
19041 pdf.ln(5)

Callers 2

tg_export_reportFunction · 0.95
generateMethod · 0.95

Calls 1

_latin1Method · 0.95

Tested by

no test coverage detected