feat: add maximum page number option #617

pr675
Hufe921 2 years ago
parent ac795b0bc4
commit afce688249

@ -117,6 +117,7 @@ interface IPageNumber {
disabled?: boolean // Whether to disable
startPageNo?: number // Start page number.default: 1
fromPageNo?: number // Page numbers appear from page number.default: 0
maxPageNo?: number | null // Max page numberstarting from 0.default: null
}
```

@ -117,6 +117,7 @@ interface IPageNumber {
disabled?: boolean // 是否禁用
startPageNo?: number // 起始页码。默认1
fromPageNo?: number // 从第几页开始出现页码。默认0
maxPageNo?: number | null // 最大页码从0开始。默认null
}
```

@ -1681,7 +1681,10 @@ export class Draw {
private _computePageList(): IRow[][] {
const pageRowList: IRow[][] = [[]]
const { pageMode } = this.options
const {
pageMode,
pageNumber: { maxPageNo }
} = this.options
const height = this.getHeight()
const marginHeight = this.getMainOuterHeight()
let pageHeight = marginHeight
@ -1709,6 +1712,10 @@ export class Draw {
row.height + pageHeight > height ||
this.rowList[i - 1]?.isPageBreak
) {
if (Number.isInteger(maxPageNo) && pageNo >= maxPageNo!) {
this.elementList = this.elementList.slice(0, row.startIndex)
break
}
pageHeight = marginHeight + row.height
pageRowList.push([row])
pageNo++

@ -17,5 +17,6 @@ export const defaultPageNumberOption: Readonly<Required<IPageNumber>> = {
numberType: NumberType.ARABIC,
disabled: false,
startPageNo: 1,
fromPageNo: 0
fromPageNo: 0,
maxPageNo: null
}

@ -12,4 +12,5 @@ export interface IPageNumber {
disabled?: boolean
startPageNo?: number
fromPageNo?: number
maxPageNo?: number | null
}

Loading…
Cancel
Save