Skip to content

[Document] fix: keep company logo aspect ratio in ODT documents - #1400

Open
evarisk-kilyan wants to merge 1 commit into
Evarisk:developfrom
evarisk-kilyan:fix/803-odt-company-logo-ratio
Open

[Document] fix: keep company logo aspect ratio in ODT documents#1400
evarisk-kilyan wants to merge 1 commit into
Evarisk:developfrom
evarisk-kilyan:fix/803-odt-company-logo-ratio

Conversation

@evarisk-kilyan

Copy link
Copy Markdown
Contributor

Contexte

Refs Evarisk/dolimeet#803 (« logo écrasé feuille de présence »)

Le logo société était inséré dans les documents ODT via setTmpArrayVars() :

  • rétrogradé en miniature _mini (≤128×72 px, basse résolution) à modules_saturne.php:909 ;
  • puis passé à setImage($key, $val) sans boîte englobante.

Résultat : un logo large (ex. ellipse) est rendu en fine bande aplatie et pixelisée dans l'en-tête (cf. la feuille de présence DoliMeet). Contrairement aux signatures (gérées juste en dessous), le logo n'avait aucune maîtrise de taille/ratio.

Correctif

Dans SaturneDocumentModel (core/modules/saturne/modules_saturne.php) :

  1. Logo uniquement : insertion dans une boîte englobante 128×72 px (l'empreinte de l'ancien _mini) en conservant le ratio, via le 3ᵉ paramètre $ratio de setImage() (déjà supporté par Odf et Segment). Les clés photo/picto gardent leur comportement.
  2. Suppression de la rétrogradation _small_mini : on garde la miniature _small (plus nette), la taille étant désormais bornée à l'insertion.

Effet : logo net et jamais déformé, à empreinte identique à l'existant → aucun décalage de mise en page pour les logos déjà corrects.

Portée

Code partagé Saturne → s'applique à tous les documents ODT de tous les modules (DoliMeet, Digirisk, DigiQuali…). Changement volontairement minimal et iso-empreinte. Aucun asset .min impacté (PHP pur).

Test

  1. Société avec un logo non carré (ex. large) dans Configuration > Société.
  2. Générer une feuille de présence DoliMeet (ou tout autre ODT avec {mycompany_logo}).
  3. Vérifier que le logo est net et à son ratio d'origine (plus aplati).

The company logo was inserted in ODT documents through setImage() using the
forced _mini thumbnail and with no bounding box, so a wide logo ended up
rendered as a flattened, low-resolution strip in the document header (e.g.
the DoliMeet attendance sheet — "logo écrasé").

Insert the logo from the sharper _small thumbnail and scale it into a
128x72 px bounding box (the previous _mini footprint) while preserving its
aspect ratio via setImage()'s $ratio parameter. Photos and pictos keep
their previous behavior.

Refs Evarisk/dolimeet#803

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants