From f34d8e836ad2d8e7585f12b00fe35e2976ae247f Mon Sep 17 00:00:00 2001 From: Arne Vlaeminck Date: Tue, 21 Nov 2023 11:51:37 +0100 Subject: [PATCH] Added support for printing --- config.json | 10 +++++++- .../multiples/multiples.component.scss | 25 +++++++++++++++++++ workspaces/angular-app/src/styles.scss | 9 +++++++ .../electron-app/main/components/window.ts | 5 ++-- .../main/services/door-service.ts | 18 +++++++------ .../main/services/print-service.ts | 2 +- 6 files changed, 57 insertions(+), 12 deletions(-) diff --git a/config.json b/config.json index 4421082..09e1cc8 100644 --- a/config.json +++ b/config.json @@ -1,5 +1,13 @@ { "filePaths": [ "./assets" - ] + ], + "mapping": { + "lr": ["L/R"], + "krukSlot": ["Kruk/\r\nSLOT"], + "pivot": ["SCHARNIER"], + "type": ["SOORT"], + "modelKruk": ["MODEL\r\nKRUK"], + "remark": ["OPMERKING"] + } } \ No newline at end of file diff --git a/workspaces/angular-app/src/app/components/multiples/multiples.component.scss b/workspaces/angular-app/src/app/components/multiples/multiples.component.scss index 1f1a7b7..cd45830 100644 --- a/workspaces/angular-app/src/app/components/multiples/multiples.component.scss +++ b/workspaces/angular-app/src/app/components/multiples/multiples.component.scss @@ -24,3 +24,28 @@ .print-button { margin-left: 2rem; } + +@media print { + mat-form-field { + display: none; + } + + button { + display: none; + } + + + .door { + flex-direction: column; + } + + .specs { + flex-direction: row; + + p { + display: inline-block; + width: 220px; + } + } + +} \ No newline at end of file diff --git a/workspaces/angular-app/src/styles.scss b/workspaces/angular-app/src/styles.scss index 1927393..650998f 100644 --- a/workspaces/angular-app/src/styles.scss +++ b/workspaces/angular-app/src/styles.scss @@ -1,2 +1,11 @@ /* You can add global styles to this file, and also import other style files */ @import '~@angular/material/prebuilt-themes/indigo-pink.css'; + +@media print { + html { + height: 530px; + width: 460px; + overflow: hidden; + zoom: 0.25; + } +} \ No newline at end of file diff --git a/workspaces/electron-app/main/components/window.ts b/workspaces/electron-app/main/components/window.ts index be6caeb..bc58238 100644 --- a/workspaces/electron-app/main/components/window.ts +++ b/workspaces/electron-app/main/components/window.ts @@ -22,7 +22,8 @@ export class Window { const fileListService = new FileListService(); this.registerService(fileListService); - this.registerService(new DoorService()); + const doorService = new DoorService(); + this.registerService(doorService); readFile('./config.json', 'utf8', (error, data) => { if(error){ @@ -31,7 +32,7 @@ export class Window { } const config = JSON.parse(data); fileListService.setPaths(config.filePaths); - + doorService.setMapping(config.mapping); }); } diff --git a/workspaces/electron-app/main/services/door-service.ts b/workspaces/electron-app/main/services/door-service.ts index a71b0c0..dc4ecc2 100644 --- a/workspaces/electron-app/main/services/door-service.ts +++ b/workspaces/electron-app/main/services/door-service.ts @@ -12,6 +12,11 @@ export class DoorService extends AbstractService { sendingChannel(): string { return WindowApiConst.PROJECT_OUTPUT; } + private _mapping: any = {}; + + public setMapping(mapping: any): void { + this._mapping = mapping; + } process(input: {name: string, path: string}): Promise { return new Promise((resolve) => { @@ -24,14 +29,11 @@ export class DoorService extends AbstractService { // get header values for (let index = 65; index <= 90; index++) { const currentValue = workingSheet[`${String.fromCodePoint(index)}3`]?.v; - switch(currentValue) { - case 'L/R': this.setObjectWithChar(headers, 'lr', index); break; - case 'KRUK/\r\nSLOT': this.setObjectWithChar(headers, 'krukSlot', index); break; - case 'SCHARNIER': this.setObjectWithChar(headers, 'pivot', index); break; - case 'SOORT DEUR': this.setObjectWithChar(headers, 'type', index); break; - case 'MODEL\r\nKRUK': this.setObjectWithChar(headers, 'modelKruk', index); break; - case 'OPMERKING': this.setObjectWithChar(headers, 'remark', index); break; - default: break; + + for (const [key, value] of Object.entries(this._mapping)) { + if ((value as string[]).find((x: string) => x.includes(currentValue)) != undefined) { + this.setObjectWithChar(headers, key, index); + } } } diff --git a/workspaces/electron-app/main/services/print-service.ts b/workspaces/electron-app/main/services/print-service.ts index 07a9b44..729d58c 100644 --- a/workspaces/electron-app/main/services/print-service.ts +++ b/workspaces/electron-app/main/services/print-service.ts @@ -15,7 +15,7 @@ export class PrintService extends AbstractService { process(): Promise { return new Promise((resolve) => { if (this._browserWindow) { - this._browserWindow.webContents.print({ silent: true }); + this._browserWindow.webContents.print({ silent: false }); } resolve(); });