feat: starting page number option

pr675
Hufe921 3 years ago
parent c58362cf90
commit bfc61a8a06

@ -18,18 +18,23 @@ export class PageNumber {
}
public render(ctx: CanvasRenderingContext2D, pageNo: number) {
const { pageNumber: { size, font, color, rowFlex, numberType, format }, scale, pageMode } = this.options
const {
scale,
pageMode,
pageNumber: { size, font, color, rowFlex, numberType, format, startPageNo, fromPageNo }
} = this.options
if (pageNo < fromPageNo) return
// 处理页码格式
let text = format
const pageNoReg = new RegExp(FORMAT_PLACEHOLDER.PAGE_NO)
if (pageNoReg.test(text)) {
const realPageNo = pageNo + 1
const realPageNo = pageNo + startPageNo - fromPageNo
const pageNoText = numberType === NumberType.CHINESE ? convertNumberToChinese(realPageNo) : `${realPageNo}`
text = text.replace(pageNoReg, pageNoText)
}
const pageCountReg = new RegExp(FORMAT_PLACEHOLDER.PAGE_COUNT)
if (pageCountReg.test(text)) {
const pageCount = this.draw.getPageCount()
const pageCount = this.draw.getPageCount() - fromPageNo
const pageCountText = numberType === NumberType.CHINESE ? convertNumberToChinese(pageCount) : `${pageCount}`
text = text.replace(pageCountReg, pageCountText)
}

@ -15,5 +15,7 @@ export const defaultPageNumberOption: Readonly<Required<IPageNumber>> = {
rowFlex: RowFlex.CENTER,
format: FORMAT_PLACEHOLDER.PAGE_NO,
numberType: NumberType.ARABIC,
disabled: false
disabled: false,
startPageNo: 1,
fromPageNo: 0
}

@ -10,4 +10,6 @@ export interface IPageNumber {
format?: string;
numberType?: NumberType;
disabled?: boolean;
startPageNo?: number;
fromPageNo?: number;
}
Loading…
Cancel
Save