From bfc61a8a06b6c2c09fd968767f2a6ccbe280fe55 Mon Sep 17 00:00:00 2001 From: Hufe921 Date: Thu, 18 May 2023 16:33:34 +0800 Subject: [PATCH] feat: starting page number option --- src/editor/core/draw/frame/PageNumber.ts | 11 ++++++++--- src/editor/dataset/constant/PageNumber.ts | 4 +++- src/editor/interface/PageNumber.ts | 2 ++ 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/editor/core/draw/frame/PageNumber.ts b/src/editor/core/draw/frame/PageNumber.ts index f00f2fd..f57a4bf 100644 --- a/src/editor/core/draw/frame/PageNumber.ts +++ b/src/editor/core/draw/frame/PageNumber.ts @@ -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) } diff --git a/src/editor/dataset/constant/PageNumber.ts b/src/editor/dataset/constant/PageNumber.ts index 29ff43e..b21d1bc 100644 --- a/src/editor/dataset/constant/PageNumber.ts +++ b/src/editor/dataset/constant/PageNumber.ts @@ -15,5 +15,7 @@ export const defaultPageNumberOption: Readonly> = { rowFlex: RowFlex.CENTER, format: FORMAT_PLACEHOLDER.PAGE_NO, numberType: NumberType.ARABIC, - disabled: false + disabled: false, + startPageNo: 1, + fromPageNo: 0 } \ No newline at end of file diff --git a/src/editor/interface/PageNumber.ts b/src/editor/interface/PageNumber.ts index 17955ae..9ef2495 100644 --- a/src/editor/interface/PageNumber.ts +++ b/src/editor/interface/PageNumber.ts @@ -10,4 +10,6 @@ export interface IPageNumber { format?: string; numberType?: NumberType; disabled?: boolean; + startPageNo?: number; + fromPageNo?: number; } \ No newline at end of file