fix: afficher le nom du signataire BAP même sans image de signature (fallback texte)

This commit is contained in:
Manus
2026-05-05 05:58:18 -04:00
parent 37cc9442da
commit 699e245cf0

View File

@@ -183,17 +183,20 @@ export async function drawBapCartouche(
}); });
// ── Signature ───────────────────────────────────────────────────────────── // ── Signature ─────────────────────────────────────────────────────────────
if (data.signatureImageBytes && data.signatureName) { if (data.signatureName) {
try { try {
const sigWidth = Math.min(rightColW - 10, 110);
const sigX = rightColX + (rightColW - sigWidth) / 2;
// Afficher l'image si disponible
if (data.signatureImageBytes) {
const mimeType = data.signatureMimeType || "image/png"; const mimeType = data.signatureMimeType || "image/png";
const embeddedSig = const embeddedSig =
mimeType === "image/png" mimeType === "image/png"
? await pdfDoc.embedPng(data.signatureImageBytes) ? await pdfDoc.embedPng(data.signatureImageBytes)
: await pdfDoc.embedJpg(data.signatureImageBytes); : await pdfDoc.embedJpg(data.signatureImageBytes);
const sigWidth = Math.min(rightColW - 10, 110);
const sigHeight = Math.round(sigWidth * 0.45); const sigHeight = Math.round(sigWidth * 0.45);
const sigX = rightColX + (rightColW - sigWidth) / 2;
const sigY = zoneY + 35; const sigY = zoneY + 35;
targetPage.drawImage(embeddedSig, { targetPage.drawImage(embeddedSig, {
@@ -202,15 +205,27 @@ export async function drawBapCartouche(
width: sigWidth, width: sigWidth,
height: sigHeight, height: sigHeight,
}); });
}
const nameW = fontNormal.widthOfTextAtSize(data.signatureName, 8); // Toujours afficher le nom du signataire
const nameW = fontNormal.widthOfTextAtSize(data.signatureName, 9);
targetPage.drawText(data.signatureName, { targetPage.drawText(data.signatureName, {
x: sigX + (sigWidth - nameW) / 2, x: rightColX + (rightColW - nameW) / 2,
y: zoneY + 22, y: zoneY + 22,
size: 8, size: 9,
font: fontNormal, font: fontNormal,
color: rgb(0.3, 0.3, 0.3), color: rgb(0.1, 0.1, 0.4),
}); });
// Ligne de signature si pas d'image
if (!data.signatureImageBytes) {
targetPage.drawLine({
start: { x: rightColX + 10, y: zoneY + 35 },
end: { x: rightColX + rightColW - 10, y: zoneY + 35 },
thickness: 0.5,
color: rgb(0.5, 0.5, 0.5),
});
}
} catch (_) { } catch (_) {
/* ignore signature errors */ /* ignore signature errors */
} }