From 5c075bce8b94ff4482448c3cd56bdc28cbe0a7d9 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Tue, 9 Feb 2021 19:15:08 +0100 Subject: [PATCH] Added barcode generatin ref #19 --- src/PdfCreator.ts | 5 +++-- src/asyncHelpers.ts | 3 ++- src/templates/runner_card.html | 13 +++++++++---- 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/src/PdfCreator.ts b/src/PdfCreator.ts index 025e7f8..ce3d430 100644 --- a/src/PdfCreator.ts +++ b/src/PdfCreator.ts @@ -123,7 +123,7 @@ export class PdfCreator { * @param cards The runner cars you want to generate the cards for. * @param locale The locale used for the cards (default:en) */ - public async generateRunnerCards(cards: RunnerCard[], locale: string = "en"): Promise { + public async generateRunnerCards(cards: RunnerCard[], locale: string = "en", codeformat: string = config.codeformat): Promise { if (cards.length > 10) { let pdf_promises = new Array>(); let i, j; @@ -138,7 +138,8 @@ export class PdfCreator { await i18next.changeLanguage(locale); const template_source = fs.readFileSync(`${this.templateDir}/runner_card.html`, 'utf8'); const template = Handlebars.compile(template_source); - const result = template({ cards, cards_swapped, eventname: "LfK! 2069" }) + let result = template({ cards, cards_swapped, eventname: "LfK! 2069", codeformat: "qrcode" }) + result = await awaitAsyncHandlebarHelpers(result); const pdf = await this.renderPdf(result, { format: "A4", landscape: false }); return pdf } diff --git a/src/asyncHelpers.ts b/src/asyncHelpers.ts index 881bbe6..53a9f16 100644 --- a/src/asyncHelpers.ts +++ b/src/asyncHelpers.ts @@ -3,6 +3,7 @@ import bwipjs from "bwip-js"; export const asyncHelpers = new AsyncHelpers(); async function generateBarcode(str, options, emtpy, cb) { + if (str == null) { cb(null, "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+P+/HgAFhAJ/wlseKgAAAABJRU5ErkJggg=="); return; } let res = await generateBase64Barcode(options.toString(), str.toString()); cb(null, res); } @@ -18,7 +19,7 @@ export async function generateBase64Barcode(type: string, content: string): Prom height: 10, width: 10, includetext: true, - textxalign: 'center', + textxalign: 'center' } if (type != "qrcode") { delete options.width; diff --git a/src/templates/runner_card.html b/src/templates/runner_card.html index 987194e..09f6eb8 100644 --- a/src/templates/runner_card.html +++ b/src/templates/runner_card.html @@ -38,15 +38,17 @@
- +
- +

{{this.runner.lastname}}, {{this.runner.firstname}} {{this.runner.middlename}}

-

{{this.runner.group.name}} {{this.id}}

+

{{this.runner.group.name}}

{{/each}} @@ -55,9 +57,12 @@
{{#each cards_swapped}}
-

{{this.id}}

+ +
{{/each}}