feat: starting page number option
This commit is contained in:
@@ -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;
|
||||
}
|
||||
Reference in New Issue
Block a user