From fa86d296f68a2cafc77b903cbcce4bde79199f50 Mon Sep 17 00:00:00 2001 From: Aaron Louie Date: Mon, 9 Nov 2020 16:15:30 -0500 Subject: [PATCH] Adds rectangular label layouts with support for DataMatrix Rectangular Extension 2D barcodes. --- angular.json | 5 +++ package-lock.json | 5 +++ package.json | 1 + src/app/app.module.ts | 2 + .../barcode-data-matrix.component.html | 2 + .../barcode-data-matrix.component.scss | 4 ++ .../barcode-data-matrix.component.spec.ts | 25 +++++++++++++ .../barcode-data-matrix.component.ts | 35 ++++++++++++++++++ src/app/config/defaults.ts | 21 +++++++++++ .../label-layout/label-layout.component.html | 11 +++++- .../label-layout/label-layout.component.scss | 6 +-- .../label-layout/label-layout.component.ts | 19 ++++++++++ src/app/models/cssStyle.interface.ts | 1 + src/app/models/labelLayout.interface.ts | 26 +++++++++---- src/assets/bwip-fonts/Inconsolata.otf | Bin 0 -> 58464 bytes src/assets/bwip-fonts/OCRA7.ttf | Bin 0 -> 13284 bytes src/assets/bwip-fonts/OCRB7.ttf | Bin 0 -> 14768 bytes 17 files changed, 151 insertions(+), 12 deletions(-) create mode 100644 src/app/barcode-data-matrix/barcode-data-matrix.component.html create mode 100644 src/app/barcode-data-matrix/barcode-data-matrix.component.scss create mode 100644 src/app/barcode-data-matrix/barcode-data-matrix.component.spec.ts create mode 100644 src/app/barcode-data-matrix/barcode-data-matrix.component.ts create mode 100644 src/app/models/cssStyle.interface.ts create mode 100644 src/assets/bwip-fonts/Inconsolata.otf create mode 100644 src/assets/bwip-fonts/OCRA7.ttf create mode 100644 src/assets/bwip-fonts/OCRB7.ttf diff --git a/angular.json b/angular.json index 787312f..cccea8a 100644 --- a/angular.json +++ b/angular.json @@ -29,6 +29,11 @@ ], "styles": [ "src/styles.scss" + ], + "allowedCommonJsDependencies": [ + "bwip-js", + "qrcode", + "serialize-javascript" ] }, "configurations": { diff --git a/package-lock.json b/package-lock.json index 1dffd24..b26f519 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2959,6 +2959,11 @@ "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", "dev": true }, + "bwip-js": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/bwip-js/-/bwip-js-2.0.11.tgz", + "integrity": "sha512-8hAwUM+5FrGguKRaFi2QxKF9SxQM4fAfTy5TVAkeBODH6Eq3Q8MMEoBN+ymIBxiGKL+wNHB1Z1pv5f9oWGLUKQ==" + }, "bytes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", diff --git a/package.json b/package.json index 1388ce1..87a5df0 100644 --- a/package.json +++ b/package.json @@ -35,6 +35,7 @@ "@angular/router": "~11.0.0-next.2", "@ngx-formly/core": "^5.8.0", "@ngx-formly/material": "^5.8.0", + "bwip-js": "^2.0.11", "lodash.isequal": "^4.5.0", "ngx-qrcode-svg": "^2.0.0", "rfdc": "^1.1.4", diff --git a/src/app/app.module.ts b/src/app/app.module.ts index eca5125..e59adca 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -31,6 +31,7 @@ import {ApiService} from './services/api.service'; import {CacheService} from './services/cache.service'; import {SettingsService} from './services/settings.service'; import {SettingsComponent} from './settings/settings.component'; +import { BarcodeDataMatrixComponent } from './barcode-data-matrix/barcode-data-matrix.component'; /** * This function is used internal to get a string instance of the `` value from `index.html`. @@ -60,6 +61,7 @@ export function getBaseHref(platformLocation: PlatformLocation): string { PrintLayoutComponent, SampleComponent, SettingsComponent, + BarcodeDataMatrixComponent, ], imports: [ BrowserAnimationsModule, diff --git a/src/app/barcode-data-matrix/barcode-data-matrix.component.html b/src/app/barcode-data-matrix/barcode-data-matrix.component.html new file mode 100644 index 0000000..ea3b8af --- /dev/null +++ b/src/app/barcode-data-matrix/barcode-data-matrix.component.html @@ -0,0 +1,2 @@ + +
diff --git a/src/app/barcode-data-matrix/barcode-data-matrix.component.scss b/src/app/barcode-data-matrix/barcode-data-matrix.component.scss new file mode 100644 index 0000000..50c653f --- /dev/null +++ b/src/app/barcode-data-matrix/barcode-data-matrix.component.scss @@ -0,0 +1,4 @@ +#barcodeCanvas { + width: 100%; + height: 100%; +} diff --git a/src/app/barcode-data-matrix/barcode-data-matrix.component.spec.ts b/src/app/barcode-data-matrix/barcode-data-matrix.component.spec.ts new file mode 100644 index 0000000..4929e0d --- /dev/null +++ b/src/app/barcode-data-matrix/barcode-data-matrix.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { BarcodeDataMatrixComponent } from './barcode-data-matrix.component'; + +describe('BarcodeDataMatrixComponent', () => { + let component: BarcodeDataMatrixComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ BarcodeDataMatrixComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(BarcodeDataMatrixComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/barcode-data-matrix/barcode-data-matrix.component.ts b/src/app/barcode-data-matrix/barcode-data-matrix.component.ts new file mode 100644 index 0000000..1465f31 --- /dev/null +++ b/src/app/barcode-data-matrix/barcode-data-matrix.component.ts @@ -0,0 +1,35 @@ +import {Component, Input, OnInit} from '@angular/core'; +import bwipjs from 'bwip-js'; +import {AppDefaults} from '../models/appDefaults.interface'; + +@Component({ + selector: 'app-barcode-data-matrix', + templateUrl: './barcode-data-matrix.component.html', + styleUrls: ['./barcode-data-matrix.component.scss'] +}) +export class BarcodeDataMatrixComponent implements OnInit { + @Input() format: string; + @Input() value: string; + @Input() settings: AppDefaults; + + constructor() { + } + + ngOnInit() { + this.renderBarcode(); + } + + renderBarcode(): void { + bwipjs.toCanvas('barcodeCanvas', { + bcid: this.format, + text: this.value, + scale: 2, + width: this.settings.labelLayout.labelWidth, + height: this.settings.labelLayout.labelHeight, + includetext: false, + textalign: 'center', + version: '8x96', + padding: this.settings.labelLayout.marginSize, + }); + } +} diff --git a/src/app/config/defaults.ts b/src/app/config/defaults.ts index 1c89e70..9bd0293 100644 --- a/src/app/config/defaults.ts +++ b/src/app/config/defaults.ts @@ -4,16 +4,37 @@ import {LabelLayout} from '../models/labelLayout.interface'; export const labelLayouts = { round_32mm_1up: new LabelLayout({ name: '32mm Round Label - 1up', + barcodeType: 'qrcode', type: 'round_32mm_1up', numCols: 1, columnGap: 0, }), round_32mm_2up: new LabelLayout({ name: '32mm Round Label - 2up', + barcodeType: 'qrcode', type: 'round_32mm_2up', numCols: 2, columnGap: 3.4, }), + rectangular_lg: new LabelLayout({ + name: '2in x 1.25in Rectangular Label', + barcodeType: 'qrcode', + type: 'rectangular_lg', + numCols: 1, + columnGap: 0, + labelWidth: 38, + labelHeight: 38, + }), + rectangular_sm: new LabelLayout({ + name: '96mm x 15mm Rectangular Label', + barcodeType: 'datamatrixrectangularextension', + type: 'rectangular_sm', + numCols: 1, + columnGap: 0, + labelWidth: 96, + labelHeight: 8, + marginSize: 4, + }), }; export const defaultOptions: AppDefaultsOptions = { diff --git a/src/app/label-layout/label-layout.component.html b/src/app/label-layout/label-layout.component.html index b82526c..8f796ca 100644 --- a/src/app/label-layout/label-layout.component.html +++ b/src/app/label-layout/label-layout.component.html @@ -1,4 +1,4 @@ -
+
{{dateCreated | date:'yyMMdd'}}{{initials}}
T
@@ -6,9 +6,18 @@ {{dateCreated | date:'mm'}}
+
L
{{settings.locationId.slice(0, 2)}}
diff --git a/src/app/label-layout/label-layout.component.scss b/src/app/label-layout/label-layout.component.scss index d529d40..98f2f96 100644 --- a/src/app/label-layout/label-layout.component.scss +++ b/src/app/label-layout/label-layout.component.scss @@ -13,9 +13,9 @@ position: relative; width: 24.6mm; height: 24.6mm; - border: 2mm solid white; + border: 2mm solid transparent; border-radius: 100%; - background-color: white; + background-color: transparent; padding: 0; margin: 0; @@ -39,7 +39,7 @@ right: 0; } - qrcode-svg { + qrcode-svg, app-barcode-data-matrix { position: absolute; left: 50%; top: 50%; diff --git a/src/app/label-layout/label-layout.component.ts b/src/app/label-layout/label-layout.component.ts index ace9cb4..ad3a2b0 100644 --- a/src/app/label-layout/label-layout.component.ts +++ b/src/app/label-layout/label-layout.component.ts @@ -1,6 +1,7 @@ import {Component, Input, OnInit} from '@angular/core'; import {createQrCodeValue} from '../_util/qrCode'; import {AppDefaults} from '../models/appDefaults.interface'; +import {CssStyle} from '../models/cssStyle.interface'; import {SettingsService} from '../services/settings.service'; @Component({ @@ -13,9 +14,27 @@ export class LabelLayoutComponent implements OnInit { @Input() barCode: string; @Input() initials: string; settings: AppDefaults; + pageStyle: CssStyle; + labelStyle: CssStyle; constructor(private settingsService: SettingsService) { this.settings = this.settingsService.getSettings(); + const d = this.settings.labelLayout.dimensions; + + this.pageStyle = { + width: d.pageWidth, + height: d.pageHeight + }; + + this.labelStyle = { + width: d.labelWidth, + height: d.labelHeight, + marginTop: `-${this.settings.labelLayout.labelHeight / 2}mm`, + marginLeft: `-${this.settings.labelLayout.labelWidth / 2}mm`, + }; + + + } get qrCodeValue(): string { diff --git a/src/app/models/cssStyle.interface.ts b/src/app/models/cssStyle.interface.ts new file mode 100644 index 0000000..cee2834 --- /dev/null +++ b/src/app/models/cssStyle.interface.ts @@ -0,0 +1 @@ +export interface CssStyle { [klass: string]: any; } diff --git a/src/app/models/labelLayout.interface.ts b/src/app/models/labelLayout.interface.ts index 72fb750..00d292c 100644 --- a/src/app/models/labelLayout.interface.ts +++ b/src/app/models/labelLayout.interface.ts @@ -1,9 +1,11 @@ export interface LayoutOptions { + barcodeType?: string; type?: string; name?: string; units?: string; pointsPerUnit?: number; - labelSize?: number; + labelWidth?: number; + labelHeight?: number; marginSize?: number; numCols?: number; columnGap?: number; @@ -17,11 +19,13 @@ export interface LayoutOptions { } export class LabelLayout { + barcodeType = 'qrcode'; type = 'round_32mm_1up'; name = '32mm Round Label - 1up'; units = 'mm'; pointsPerUnit = 0.3528; - labelSize = 28.6; + labelHeight = 28.6; + labelWidth = 28.6; marginSize = 1.7; numCols = 1; columnGap = 4; @@ -45,8 +49,10 @@ export class LabelLayout { bottomTextMargin: this._toUnits(this.bottomTextMargin), columnGap: this._toUnits(this.columnGap), fontSize: this._toUnits(this.fontSize), - labelSize: this._toUnits(this.labelSize), - labelSizeWithMargins: this._toUnits(this.labelSizeWithMargins), + labelWidth: this._toUnits(this.labelWidth), + labelWidthWithMargins: this._toUnits(this.labelWidthWithMargins), + labelHeight: this._toUnits(this.labelHeight), + labelHeightWithMargins: this._toUnits(this.labelHeightWithMargins), marginWidth: this._toUnits(this.marginSize), pageHeight: this._toUnits(this.pageHeight), pageWidth: this._toUnits(this.pageWidth), @@ -57,16 +63,20 @@ export class LabelLayout { }; } - get labelSizeWithMargins(): number { - return (this.labelSize + (this.marginSize * 2)); + get labelWidthWithMargins(): number { + return (this.labelWidth + (this.marginSize * 2)); + } + + get labelHeightWithMargins(): number { + return (this.labelHeight + (this.marginSize * 2)); } get pageWidth(): number { - return (this.labelSizeWithMargins * this.numCols); + return (this.labelWidthWithMargins * this.numCols); } get pageHeight(): number { - return (this.labelSizeWithMargins * this.numCopies); + return (this.labelHeightWithMargins * this.numCopies); } get fontSize(): number { diff --git a/src/assets/bwip-fonts/Inconsolata.otf b/src/assets/bwip-fonts/Inconsolata.otf new file mode 100644 index 0000000000000000000000000000000000000000..348889828d894b9b57fb6435497d5c034448cb1b GIT binary patch literal 58464 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 Klm0KuQ~wKU>RQ48 literal 0 HcmV?d00001 diff --git a/src/assets/bwip-fonts/OCRB7.ttf b/src/assets/bwip-fonts/OCRB7.ttf new file mode 100644 index 0000000000000000000000000000000000000000..693690ca7954a1c54c64d7bd4366c76f12e19114 GIT binary patch literal 14768 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 literal 0 HcmV?d00001