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