env = env # noqa import re rep = env.ref('fusion_plating_reports.action_report_fp_bol_portrait') dlv = env['fusion.plating.delivery'].search([], order='id desc', limit=1) html, _ = rep.with_context(force_report_rendering=True )._render_qweb_html(rep.report_name, [dlv.id]) out = html.decode() if isinstance(html, bytes) else str(html) # Extract the sig-table block + 200 chars before and after m = re.search(r'(.{0,400})()(.{0,200})', out, re.S) if m: print('=== before ===') print(m.group(1)[-300:]) print('=== sig-table ===') print(m.group(2)) else: print('NOT FOUND. Looking for any sig-table:') for m in re.finditer(r']*sig[^>]*>', out): print(' ', m.group(0)) # Also search for the labels for label in ['Shipper (Signature', 'sig-cell', 'sig-table', 'sig-box']: i = out.find(label) print(f' {label!r}: pos={i}')