feat: make PDF QR codes clickable
Check card layouts / check (push) Has been cancelled

This commit is contained in:
2026-07-19 18:04:13 +02:00
parent 36d8dae1fc
commit 111041672e
2 changed files with 14 additions and 4 deletions
+2
View File
@@ -154,6 +154,8 @@ def check_render() -> None:
raise AssertionError(f"brak adresu nagłówka {expected_url!r}")
if tex.count(r"\qrcode[level=L,height=22mm]") < 2:
raise AssertionError("TeX nie zawiera obu kodów QR nagłówka")
if tex.count(r"}{\qrcode[level=L,height=22mm]") < 2:
raise AssertionError("oba kody QR PDF muszą być aktywnymi hiperłączami")
for marker in ("resource-qr-repository", "resource-qr-page"):
if marker not in html:
raise AssertionError(f"HTML nie zawiera komórki {marker!r}")
+12 -4
View File
@@ -4193,11 +4193,15 @@ def render_page_header_tex_macro(data: dict) -> list[str]:
f"title_block.{field_name} zawiera znaki nieobsługiwane przez nagłówek TeX"
)
page_qr = (
rf"\qrcode[level=L,height=22mm]{{{url}}}"
rf"\href{{{url}}}{{\qrcode[level=L,height=22mm]{{{url}}}}}"
if fields["show_qr"]
else r"{\tiny QR wyłączony}"
)
source_qr = rf"\qrcode[level=L,height=22mm]{{{source_url}}}" if dual_qr else ""
source_qr = (
rf"\href{{{source_url}}}{{\qrcode[level=L,height=22mm]{{{source_url}}}}}"
if dual_qr
else ""
)
layout = resource_header_layout(data, r"\thepage/\pageref{LastPage}")
row_units = [3, 3, 3, 2, 2]
unit_height_mm = (
@@ -5465,11 +5469,15 @@ def render_page_header_5x_tex(data: dict, page: int, total: int) -> list[str]:
f"title_block.{field_name} zawiera znaki nieobsługiwane przez nagłówek TeX"
)
page_qr = (
rf"\qrcode[level=L,height=22mm]{{{url}}}"
rf"\href{{{url}}}{{\qrcode[level=L,height=22mm]{{{url}}}}}"
if fields["show_qr"]
else r"{\tiny QR wyłączony}"
)
source_qr = rf"\qrcode[level=L,height=22mm]{{{source_url}}}" if dual_qr else ""
source_qr = (
rf"\href{{{source_url}}}{{\qrcode[level=L,height=22mm]{{{source_url}}}}}"
if dual_qr
else ""
)
title = f"{card_prefix(card)}: {card.get('title', '')}"
card_number = f"{card.get('number', '')}/{card.get('count', '')}"
primary_width = r"\dimexpr\linewidth-111mm\relax" if dual_qr else r"\dimexpr\linewidth-85mm\relax"