feature: generate pdf from actor

This commit is contained in:
Matthieu CAILLEAUX
2021-10-18 00:35:13 +02:00
parent f96372b236
commit 145207a1c5
14 changed files with 391 additions and 138 deletions

View File

@@ -9,20 +9,24 @@ export class Column extends AbstractElement {
this.elements = elements;
}
public render(doc: jsPDF, _maxWidth?: number): jsPDF {
public prepareRender(doc: jsPDF, _maxWidth?: number): jsPDF {
const elements = this.elements ?? [];
let currentY = this.y;
for (let i = 0; i < elements.length; i++) {
const element = elements[i];
element.x = this.x;
element.x = Math.max(element.x, this.x);
element.y = currentY;
element.render(doc);
element.prepareRender(doc);
currentY += element.getHeight(doc) + 2;
}
return doc;
}
public render(doc: jsPDF, _maxWidth?: number): jsPDF {
return doc;
}
public getHeight(doc): number {
return this.elements
.map((e) => e.getHeight(doc))
@@ -33,4 +37,18 @@ export class Column extends AbstractElement {
return p + c + 2;
});
}
public getCheckNewPageHeight(doc?: jsPDF): number {
return this.elements.length > 0
? this.elements[0].getCheckNewPageHeight(doc)
: 0;
}
public getElements(): AbstractElement[] {
const elements: AbstractElement[] = [];
for (const element of this.elements) {
elements.push(...element.getElements());
}
return elements;
}
}