Add section properties to root File
This commit is contained in:
@ -1,8 +1,8 @@
|
|||||||
import { XmlComponent } from "file/xml-components";
|
import { XmlComponent } from "file/xml-components";
|
||||||
import { SectionProperties } from "./section-properties/section-properties";
|
import { SectionProperties, SectionPropertiesOptions } from "./section-properties/section-properties";
|
||||||
|
|
||||||
export class Body extends XmlComponent {
|
export class Body extends XmlComponent {
|
||||||
constructor() {
|
constructor(sectionPropertiesOptions?: SectionPropertiesOptions) {
|
||||||
super("w:body");
|
super("w:body");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -12,10 +12,29 @@ import { PageSize } from "./page-size/page-size";
|
|||||||
export type SectionPropertiesOptions = IPageSizeAttributes & IPageMarginAttributes & IColumnsAttributes & IDocGridAttributesProperties;
|
export type SectionPropertiesOptions = IPageSizeAttributes & IPageMarginAttributes & IColumnsAttributes & IDocGridAttributesProperties;
|
||||||
|
|
||||||
export class SectionProperties extends XmlComponent {
|
export class SectionProperties extends XmlComponent {
|
||||||
constructor(options: SectionPropertiesOptions) {
|
constructor(options?: SectionPropertiesOptions) {
|
||||||
super("w:sectPr");
|
super("w:sectPr");
|
||||||
|
|
||||||
this.root.push(new PageSize(11906, 16838));
|
const defaultOptions = {
|
||||||
|
width: 11906,
|
||||||
|
height: 16838,
|
||||||
|
top: 1440,
|
||||||
|
right: 1440,
|
||||||
|
bottom: 1440,
|
||||||
|
left: 1440,
|
||||||
|
header: 708,
|
||||||
|
footer: 708,
|
||||||
|
gutter: 0,
|
||||||
|
space: 708,
|
||||||
|
linePitch: 360,
|
||||||
|
};
|
||||||
|
|
||||||
|
const mergedOptions = {
|
||||||
|
...defaultOptions,
|
||||||
|
...options,
|
||||||
|
};
|
||||||
|
|
||||||
|
this.root.push(new PageSize(mergedOptions.width, mergedOptions.height));
|
||||||
this.root.push(new PageMargin(1440, 1440, 1440, 1440, 708, 708, 0));
|
this.root.push(new PageMargin(1440, 1440, 1440, 1440, 708, 708, 0));
|
||||||
this.root.push(new Columns(708));
|
this.root.push(new Columns(708));
|
||||||
this.root.push(new DocumentGrid(308));
|
this.root.push(new DocumentGrid(308));
|
||||||
|
@ -4,12 +4,13 @@ import { XmlComponent } from "file/xml-components";
|
|||||||
import { Paragraph, PictureRun } from "../paragraph";
|
import { Paragraph, PictureRun } from "../paragraph";
|
||||||
import { Table } from "../table";
|
import { Table } from "../table";
|
||||||
import { Body } from "./body";
|
import { Body } from "./body";
|
||||||
|
import { SectionPropertiesOptions } from "./body/section-properties/section-properties";
|
||||||
import { DocumentAttributes } from "./document-attributes";
|
import { DocumentAttributes } from "./document-attributes";
|
||||||
|
|
||||||
export class Document extends XmlComponent {
|
export class Document extends XmlComponent {
|
||||||
private body: Body;
|
private body: Body;
|
||||||
|
|
||||||
constructor() {
|
constructor(sectionPropertiesOptions?: SectionPropertiesOptions) {
|
||||||
super("w:document");
|
super("w:document");
|
||||||
this.root.push(
|
this.root.push(
|
||||||
new DocumentAttributes({
|
new DocumentAttributes({
|
||||||
@ -32,7 +33,7 @@ export class Document extends XmlComponent {
|
|||||||
Ignorable: "w14 w15 wp14",
|
Ignorable: "w14 w15 wp14",
|
||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
this.body = new Body();
|
this.body = new Body(sectionPropertiesOptions);
|
||||||
this.root.push(this.body);
|
this.root.push(this.body);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
import { Relationships } from "file/relationships";
|
import { Relationships } from "file/relationships";
|
||||||
import { Document } from "./document";
|
import { Document } from "./document";
|
||||||
|
import { SectionPropertiesOptions } from "./document/body/section-properties/section-properties";
|
||||||
import { Media } from "./media";
|
import { Media } from "./media";
|
||||||
import { Numbering } from "./numbering";
|
import { Numbering } from "./numbering";
|
||||||
import { Paragraph } from "./paragraph";
|
import { Paragraph } from "./paragraph";
|
||||||
@ -16,8 +17,8 @@ export class File {
|
|||||||
private media: Media;
|
private media: Media;
|
||||||
private relationships: Relationships;
|
private relationships: Relationships;
|
||||||
|
|
||||||
constructor(options?: IPropertiesOptions) {
|
constructor(options?: IPropertiesOptions, sectionPropertiesOptions?: SectionPropertiesOptions) {
|
||||||
this.document = new Document();
|
this.document = new Document(sectionPropertiesOptions);
|
||||||
const stylesFactory = new DefaultStylesFactory();
|
const stylesFactory = new DefaultStylesFactory();
|
||||||
this.styles = stylesFactory.newInstance();
|
this.styles = stylesFactory.newInstance();
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user