From 4f79294a52dd8f5a98df18930fe5fc9d1290cf24 Mon Sep 17 00:00:00 2001 From: bolasse1234 <99745165+bolasse1234@users.noreply.github.com> Date: Wed, 13 May 2026 19:37:20 +0200 Subject: [PATCH] Constrain avatar size in printed messages --- .../singlemailviewer.component.spec.ts | 9 ++++++++ .../mailviewer/singlemailviewer.component.ts | 22 ++++++++++++++++++- 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/src/app/mailviewer/singlemailviewer.component.spec.ts b/src/app/mailviewer/singlemailviewer.component.spec.ts index d4bc44f93..7be7f765c 100644 --- a/src/app/mailviewer/singlemailviewer.component.spec.ts +++ b/src/app/mailviewer/singlemailviewer.component.spec.ts @@ -231,6 +231,15 @@ describe('SingleMailViewerComponent', () => { expect(component.mailObj.attachments[1].downloadURL.indexOf('blob:')).toBe(0); })); + it('adds avatar sizing to printed messages', () => { + const printStyles = component.printableMessageStyles(); + + expect(printStyles).toContain('app-avatar-bar img'); + expect(printStyles).toContain('width: 32px'); + expect(printStyles).toContain('max-width: 32px'); + expect(printStyles).toContain('max-height: 32px'); + }); + describe('mailto: link interceptor', () => { let messageContentsElement: HTMLElement; let mailtoLink: HTMLAnchorElement; diff --git a/src/app/mailviewer/singlemailviewer.component.ts b/src/app/mailviewer/singlemailviewer.component.ts index 1bb81b032..4a73fc85d 100644 --- a/src/app/mailviewer/singlemailviewer.component.ts +++ b/src/app/mailviewer/singlemailviewer.component.ts @@ -688,6 +688,26 @@ export class SingleMailViewerComponent implements OnInit, DoCheck, AfterViewInit } } + printableMessageStyles() { + return ` + + `; + } + print() { // Can't access print view inside iFrame, so we need to // temporary hide buttons while the view is rendering @@ -713,7 +733,7 @@ export class SingleMailViewerComponent implements OnInit, DoCheck, AfterViewInit ); } this.printFrame.nativeElement.onload = () => this.printFrame.nativeElement.contentWindow.print(); - this.printFrame.nativeElement.src = URL.createObjectURL(new Blob([printablecontent], + this.printFrame.nativeElement.src = URL.createObjectURL(new Blob([this.printableMessageStyles(), printablecontent], { type: 'text/html' } ) );