2021-03-19 18:38:22 +02:00
|
|
|
import { DocGridType } from ".";
|
2021-11-24 18:49:27 +02:00
|
|
|
import { Footer } from "./footer";
|
2021-11-25 17:06:16 +02:00
|
|
|
import { Header } from "./header";
|
2021-03-19 18:38:22 +02:00
|
|
|
|
|
|
|
export type DocGrid = {
|
|
|
|
gridType: DocGridType;
|
|
|
|
linePitch?: number;
|
|
|
|
charSpace?: number;
|
|
|
|
};
|
|
|
|
|
2020-10-09 14:30:55 +03:00
|
|
|
export class SectionProperty {
|
2021-03-24 09:51:11 +02:00
|
|
|
_pageSize: PageSize = {
|
|
|
|
w: 11906,
|
|
|
|
h: 16838,
|
|
|
|
};
|
2020-10-09 14:30:55 +03:00
|
|
|
_pageMargin: PageMargin | null = null;
|
2023-06-16 06:53:47 +03:00
|
|
|
_docGrid: DocGrid | null = null;
|
2021-11-25 17:06:16 +02:00
|
|
|
_header: Header | null = null;
|
2021-11-27 12:12:06 +02:00
|
|
|
_firstHeader: Header | null = null;
|
|
|
|
_evenHeader: Header | null = null;
|
2021-11-24 18:49:27 +02:00
|
|
|
_footer: Footer | null = null;
|
2021-11-27 12:12:06 +02:00
|
|
|
_firstFooter: Footer | null = null;
|
|
|
|
_evenFooter: Footer | null = null;
|
2020-10-09 14:30:55 +03:00
|
|
|
|
|
|
|
pageSize(w: number, h: number) {
|
2021-03-24 09:51:11 +02:00
|
|
|
this._pageSize.w = w;
|
|
|
|
this._pageSize.h = h;
|
2020-10-09 14:30:55 +03:00
|
|
|
return this;
|
|
|
|
}
|
|
|
|
|
|
|
|
pageMargin(margin: Partial<PageMargin>) {
|
|
|
|
this._pageMargin = { ...defaultPageMargin(), ...margin };
|
|
|
|
return this;
|
|
|
|
}
|
2021-03-19 18:38:22 +02:00
|
|
|
|
2021-03-24 09:51:11 +02:00
|
|
|
pageOrientation(orient: PageOrientationType) {
|
|
|
|
this._pageSize.orient = orient;
|
|
|
|
return this;
|
|
|
|
}
|
|
|
|
|
2021-03-19 18:38:22 +02:00
|
|
|
docGrid(gridType: DocGridType, linePitch?: number, charSpace?: number) {
|
|
|
|
this._docGrid = { gridType, linePitch, charSpace };
|
|
|
|
return this;
|
|
|
|
}
|
2021-11-24 18:49:27 +02:00
|
|
|
|
2021-11-25 17:06:16 +02:00
|
|
|
header(header: Header) {
|
|
|
|
this._header = header;
|
|
|
|
return this;
|
|
|
|
}
|
|
|
|
|
2021-11-27 12:12:06 +02:00
|
|
|
firstHeader(header: Header) {
|
|
|
|
this._firstHeader = header;
|
|
|
|
return this;
|
|
|
|
}
|
|
|
|
|
|
|
|
evenHeader(header: Header) {
|
|
|
|
this._evenHeader = header;
|
|
|
|
return this;
|
|
|
|
}
|
|
|
|
|
2021-11-24 18:49:27 +02:00
|
|
|
footer(footer: Footer) {
|
|
|
|
this._footer = footer;
|
|
|
|
return this;
|
|
|
|
}
|
2021-11-27 12:12:06 +02:00
|
|
|
|
|
|
|
firstFooter(footer: Footer) {
|
|
|
|
this._firstFooter = footer;
|
|
|
|
return this;
|
|
|
|
}
|
|
|
|
|
|
|
|
evenFooter(footer: Footer) {
|
|
|
|
this._evenFooter = footer;
|
|
|
|
return this;
|
|
|
|
}
|
2020-10-09 14:30:55 +03:00
|
|
|
}
|
|
|
|
|
2021-03-24 09:51:11 +02:00
|
|
|
export type PageOrientationType = "landscape" | "portrait";
|
|
|
|
|
|
|
|
export type PageSize = { w: number; h: number; orient?: PageOrientationType };
|
2020-10-09 14:30:55 +03:00
|
|
|
|
|
|
|
export type PageMargin = {
|
|
|
|
top: number;
|
|
|
|
right: number;
|
|
|
|
bottom: number;
|
|
|
|
left: number;
|
|
|
|
header: number;
|
|
|
|
footer: number;
|
|
|
|
gutter: number;
|
|
|
|
};
|
|
|
|
|
|
|
|
export const defaultPageMargin = () => {
|
|
|
|
return {
|
|
|
|
top: 1985,
|
|
|
|
left: 1701,
|
|
|
|
bottom: 1701,
|
|
|
|
right: 1701,
|
|
|
|
header: 851,
|
|
|
|
footer: 992,
|
|
|
|
gutter: 0,
|
|
|
|
};
|
|
|
|
};
|