Add the pageref element
This instruction is useful if you want to get the number of the page containing a specific bookmark.
This commit is contained in:
25
src/file/paragraph/links/pageref-field-instruction.ts
Normal file
25
src/file/paragraph/links/pageref-field-instruction.ts
Normal file
@ -0,0 +1,25 @@
|
||||
import { SpaceType } from "file/space-type";
|
||||
import { XmlAttributeComponent, XmlComponent } from "file/xml-components";
|
||||
import { IPageRefOptions } from "./pageref-properties";
|
||||
|
||||
class TextAttributes extends XmlAttributeComponent<{ readonly space: SpaceType }> {
|
||||
protected readonly xmlKeys = { space: "xml:space" };
|
||||
}
|
||||
|
||||
export class PageRefFieldInstruction extends XmlComponent {
|
||||
constructor(bookmarkId: string, options: IPageRefOptions = {}) {
|
||||
super("w:instrText");
|
||||
this.root.push(new TextAttributes({ space: SpaceType.PRESERVE }));
|
||||
|
||||
let instruction = `PAGEREF ${bookmarkId}`;
|
||||
|
||||
if (options.hyperlink) {
|
||||
instruction = `${instruction} \\h`;
|
||||
}
|
||||
if (options.useRelativePosition) {
|
||||
instruction = `${instruction} \\p`;
|
||||
}
|
||||
|
||||
this.root.push(instruction);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user