From 7bfc26f5e6032fff2a4b5efbdb229289a1db1d54 Mon Sep 17 00:00:00 2001 From: rangelbruno Date: Wed, 25 Mar 2026 09:40:58 -0300 Subject: [PATCH] =?UTF-8?q?Fix(Assinatura):=20Alinhar=20tamanho=20da=20bor?= =?UTF-8?q?da=20dos=20stamps=20com=20os=20blocos=20da=20p=C3=A1gina=20de?= =?UTF-8?q?=20autentica=C3=A7=C3=A3o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A borda era desenhada no TextBoxStyle (tamanho do texto), ficando menor que o bloco. Movida para o TextStampStyle (tamanho da annotation box) para coincidir com os blocos do ReportLab. Texto alinhado topo-esquerdo. --- sapl/materia/views_assinatura.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/sapl/materia/views_assinatura.py b/sapl/materia/views_assinatura.py index 744b755cc..4ed6641ba 100644 --- a/sapl/materia/views_assinatura.py +++ b/sapl/materia/views_assinatura.py @@ -316,6 +316,7 @@ def _criar_stamp_style(nome_assinante, cargo, hash_doc=''): na primeira assinatura (Helvetica, borda simples, mesmo layout). """ from pyhanko.stamp import TextStampStyle, TextBoxStyle + from pyhanko.pdf_utils.layout import SimpleBoxLayoutRule, AxisAlignment, Margins # Monta texto do carimbo com cargo (se houver) + hash linhas = ['Assinado digitalmente por', '%(signer)s'] @@ -340,10 +341,19 @@ def _criar_stamp_style(nome_assinante, cargo, hash_doc=''): text_box_style=TextBoxStyle( font_size=7, leading=10, - border_width=1, + border_width=0, **font_kwargs, ), - border_width=0, + # Borda externa = tamanho completo da annotation box (mesmo tamanho + # dos blocos desenhados pelo ReportLab na página de autenticação) + border_width=1, + # Texto alinhado no topo-esquerdo com margem interna, + # consistente com o layout do ReportLab + inner_content_layout=SimpleBoxLayoutRule( + x_align=AxisAlignment.ALIGN_MIN, + y_align=AxisAlignment.ALIGN_MAX, + margins=Margins(left=8, right=8, top=5, bottom=5), + ), background=None, background_opacity=0, timestamp_format='%d/%m/%Y %H:%M',