parent
4773a5f18c
commit
e92820e12f
@ -54,24 +54,29 @@ export class PdfCreator {
|
|||||||
* @param runner The runner you want to generate the contracts for.
|
* @param runner The runner you want to generate the contracts for.
|
||||||
* @param locale The locale used for the contracts (default:en)
|
* @param locale The locale used for the contracts (default:en)
|
||||||
*/
|
*/
|
||||||
public async generateSponsoringContract(runners: Runner[], locale: string = "en"): Promise<any> {
|
public async generateSponsoringContract(runners: Runner[], locale: string = "en"): Promise<Buffer> {
|
||||||
if (runners.length == 1 && Object.keys(runners[0]).length == 0) {
|
if (runners.length == 1 && Object.keys(runners[0]).length == 0) {
|
||||||
runners[0] = this.generateEmptyRunner();
|
runners[0] = this.generateEmptyRunner();
|
||||||
}
|
}
|
||||||
if (runners.length > 100) {
|
if (runners.length > 100) {
|
||||||
let pdfs: Buffer[] = new Array<Buffer>();
|
let pdf_promises = new Array<Promise<Buffer>>();
|
||||||
let i, j;
|
let i, j;
|
||||||
for (i = 0, j = runners.length; i < j; i += 100) {
|
for (i = 0, j = runners.length; i < j; i += 100) {
|
||||||
let chunk = runners.slice(i, i + 100);
|
let chunk = runners.slice(i, i + 100);
|
||||||
pdfs.push(await this.generateSponsoringContract(chunk, locale));
|
pdf_promises.push(this.generateSponsoringContract(chunk, locale));
|
||||||
}
|
}
|
||||||
|
const pdfs = await Promise.all(pdf_promises);
|
||||||
return await this.mergePdfs(pdfs);
|
return await this.mergePdfs(pdfs);
|
||||||
}
|
}
|
||||||
|
console.log("triggered")
|
||||||
await i18next.changeLanguage(locale);
|
await i18next.changeLanguage(locale);
|
||||||
const template_source = fs.readFileSync(`${this.templateDir}/sponsoring_contract.html`, 'utf8');
|
const template_source = fs.readFileSync(`${this.templateDir}/sponsoring_contract.html`, 'utf8');
|
||||||
const template = Handlebars.compile(template_source);
|
const template = Handlebars.compile(template_source);
|
||||||
const result = template({ runners })
|
const result = template({ runners })
|
||||||
return await this.renderPdf(result, { format: "A5", landscape: true });
|
console.log("finished: bars")
|
||||||
|
const pdf = await this.renderPdf(result, { format: "A5", landscape: true });
|
||||||
|
console.log("finished: puppet")
|
||||||
|
return pdf
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
x
Reference in New Issue
Block a user