Files
wfrp4-actor-sheet-print/src/elements/separator.ts
Matthieu CAILLEAUX b16967c351 feat: base html sheet
2022-04-26 21:11:35 +02:00

52 lines
1.2 KiB
TypeScript

import { AbstractElement } from './abstract-element';
import jsPDF from 'jspdf';
import { MARGINS } from '../constants';
export class Separator extends AbstractElement {
constructor(x: number, y: number, maxWidth?: number | undefined) {
super(x, y, maxWidth);
}
public getHeight(_doc?: jsPDF): number {
return 0.5;
}
public getCheckNewPageHeight(doc?: jsPDF): number {
return this.getHeight(doc);
}
public prepareRender(doc: jsPDF, _maxWidth?: number): jsPDF {
return doc;
}
public render(doc: jsPDF, maxWidth?: number): jsPDF {
const pageWidth = doc.internal.pageSize.width;
const maxPageWidth = pageWidth - MARGINS.left - MARGINS.right;
const finalWidth = Math.min(
maxWidth ?? this.maxWidth ?? maxPageWidth,
maxPageWidth
);
doc.setLineWidth(0.25);
doc.line(this.x, this.y, this.x + finalWidth, this.y);
return doc;
}
public renderHtml(
doc: Document,
parent: HTMLElement,
_cssRules: string[],
_sheet: HTMLStyleElement
): Document {
const div = doc.createElement('div');
div.classList.add(`separator`);
parent.append(div);
return doc;
}
public getElements(): AbstractElement[] {
return [this];
}
}