- Page size and appearance
- MultiplePage and PageBreaks
- Boundary Constraints
Contact Support
Page Settings
19 Jul 20176 minutes to read
Page settings enable to customize the appearance, width, and height of the Diagram page.
Page size and appearance
The size and appearance of the Diagram pages can be customized with the pageSettings
property.
The pageWidth
and pageHeight
properties of page settings define the size of the page. In addition to that, you can customize the appearance of the page with backgroundImage
and set of appearance specific properties.
To explore those properties, refer Page Settings.
You can also customize the appearance of off-page regions with the property backgroundColor
.
NOTE
When the pageWidth and pageHeight are not specified, the rectangular region that completely fits all nodes and connectors are considered as page size.
BackgroundImage
You can stretch and align the background image anywhere over the diagram area.
The source
property of backgroundImage
allows you to set the path of the image. The scale
and the align
properties help to stretch/align the background images.
To explore the backgroundImage properties, refer Background Image.
The following code illustrates how to stretch and align the background image.
<div>
<ej-diagram id="diagram" width="100%" height="600" [pageSettings]="pageSettings">
</ej-diagram>
</div>
import { Component, ViewChild} from '@angular/core';
import { EJComponents } from './../../ej/core';
@Component({
selector: 'ej-app',
templateUrl: 'app/components/diagram/pagesettings.component.html',
})
export class PageSettingsComponent {
@ViewChild('diagram') diagram: EJComponents<any, any>;
pageSettings: Object;
constructor() {
this.pageSettings = {
pageHeight: 500,
pageWidth: 500,
pageBorderWidth: 2,
pageBackgroundColor: 'white',
pageOrientation: 'landscape',
boundaryConstraints: 'diagram',
pageBorderColor: 'lightgray',
pageMargin: 25,
scrollLimit: 'diagram',
};
}
ngAfterViewInit() {
this.diagram.widget.fitToPage();
}
}
MultiplePage and PageBreaks
When MultiplePage is enabled, size of the page dynamically increases or decreases in multiples of page width and height and completely fits diagram within the page boundaries. Page Breaks is used as a visual guide to see how pages are split into multiple pages.
multiplePage
and showPageBreak
properties of page settings allow you to enable/disable multiple pages and page breaks respectively.
The following code illustrates how to enable multiple page and page break lines.
<div>
<ej-diagram #diagram width="100%" height="600" [pageSettings]="pageSettings">
</ej-diagram>
</div>
import { Component, ViewChild} from '@angular/core';
import { EJComponents } from './../../ej/core';
@Component({
selector: 'ej-app',
templateUrl: 'app/components/diagram/pagesettings.component.html',
})
export class PageSettingsComponent {
@ViewChild('diagram') diagram: EJComponents<any, any>;
pageSettings: Object;
constructor() {
this.pageSettings = {
pageHeight: 500,
pageWidth: 500,
showPageBreak: true,
multiplePage: true,
};
}
ngAfterViewInit() {
this.diagram.widget.fitToPage();
}
}
Boundary Constraints
Diagram provides support to restrict/customize the interactive region, out of which the elements cannot be dragged, resized or rotated.
boundaryConstraints
property of page settings allows you to customize the interactive region. To explore the boundary constraints, refer refer Boundary Constraints.
The following code example illustrates how to define boundaryConstraints.
<div>
<ej-diagram #diagram width="100%" height="600" [pageSettings]="pageSettings">
</ej-diagram>
</div>
import { Component, ViewChild} from '@angular/core';
import { EJComponents } from './../../ej/core';
@Component({
selector: 'ej-app',
templateUrl: 'app/components/diagram/pagesettings.component.html',
})
export class PageSettingsComponent {
@ViewChild('diagram') diagram: EJComponents<any, any>;
pageSettings: Object;
constructor() {
this.pageSettings = {
pageHeight: 500,
pageWidth: 500,
//Allows to drag within the diagram content
boundaryConstraints: 'diagram'
};
}
ngAfterViewInit() {
this.diagram.widget.fitToPage();
}
}