feat: starting page number option
This commit is contained in:
@@ -18,18 +18,23 @@ export class PageNumber {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public render(ctx: CanvasRenderingContext2D, pageNo: number) {
|
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
|
let text = format
|
||||||
const pageNoReg = new RegExp(FORMAT_PLACEHOLDER.PAGE_NO)
|
const pageNoReg = new RegExp(FORMAT_PLACEHOLDER.PAGE_NO)
|
||||||
if (pageNoReg.test(text)) {
|
if (pageNoReg.test(text)) {
|
||||||
const realPageNo = pageNo + 1
|
const realPageNo = pageNo + startPageNo - fromPageNo
|
||||||
const pageNoText = numberType === NumberType.CHINESE ? convertNumberToChinese(realPageNo) : `${realPageNo}`
|
const pageNoText = numberType === NumberType.CHINESE ? convertNumberToChinese(realPageNo) : `${realPageNo}`
|
||||||
text = text.replace(pageNoReg, pageNoText)
|
text = text.replace(pageNoReg, pageNoText)
|
||||||
}
|
}
|
||||||
const pageCountReg = new RegExp(FORMAT_PLACEHOLDER.PAGE_COUNT)
|
const pageCountReg = new RegExp(FORMAT_PLACEHOLDER.PAGE_COUNT)
|
||||||
if (pageCountReg.test(text)) {
|
if (pageCountReg.test(text)) {
|
||||||
const pageCount = this.draw.getPageCount()
|
const pageCount = this.draw.getPageCount() - fromPageNo
|
||||||
const pageCountText = numberType === NumberType.CHINESE ? convertNumberToChinese(pageCount) : `${pageCount}`
|
const pageCountText = numberType === NumberType.CHINESE ? convertNumberToChinese(pageCount) : `${pageCount}`
|
||||||
text = text.replace(pageCountReg, pageCountText)
|
text = text.replace(pageCountReg, pageCountText)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,5 +15,7 @@ export const defaultPageNumberOption: Readonly<Required<IPageNumber>> = {
|
|||||||
rowFlex: RowFlex.CENTER,
|
rowFlex: RowFlex.CENTER,
|
||||||
format: FORMAT_PLACEHOLDER.PAGE_NO,
|
format: FORMAT_PLACEHOLDER.PAGE_NO,
|
||||||
numberType: NumberType.ARABIC,
|
numberType: NumberType.ARABIC,
|
||||||
disabled: false
|
disabled: false,
|
||||||
|
startPageNo: 1,
|
||||||
|
fromPageNo: 0
|
||||||
}
|
}
|
||||||
@@ -10,4 +10,6 @@ export interface IPageNumber {
|
|||||||
format?: string;
|
format?: string;
|
||||||
numberType?: NumberType;
|
numberType?: NumberType;
|
||||||
disabled?: boolean;
|
disabled?: boolean;
|
||||||
|
startPageNo?: number;
|
||||||
|
fromPageNo?: number;
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user