@syncfusion/ej2-pdf-export 23.2.4 → 24.1.41

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (165) hide show
  1. package/CHANGELOG.md +0 -18
  2. package/dist/ej2-pdf-export.min.js +2 -2
  3. package/dist/ej2-pdf-export.umd.min.js +2 -2
  4. package/dist/ej2-pdf-export.umd.min.js.map +1 -1
  5. package/dist/es6/ej2-pdf-export.es2015.js +6 -1
  6. package/dist/es6/ej2-pdf-export.es2015.js.map +1 -1
  7. package/dist/es6/ej2-pdf-export.es5.js +6 -1
  8. package/dist/es6/ej2-pdf-export.es5.js.map +1 -1
  9. package/dist/global/ej2-pdf-export.min.js +2 -2
  10. package/dist/global/ej2-pdf-export.min.js.map +1 -1
  11. package/dist/global/index.d.ts +1 -1
  12. package/dist/ts/implementation/actions/action.ts +76 -0
  13. package/dist/ts/implementation/actions/uri-action.ts +52 -0
  14. package/dist/ts/implementation/annotations/action-link-annotation.ts +43 -0
  15. package/dist/ts/implementation/annotations/annotation-collection.ts +159 -0
  16. package/dist/ts/implementation/annotations/annotation.ts +241 -0
  17. package/dist/ts/implementation/annotations/document-link-annotation.ts +118 -0
  18. package/dist/ts/implementation/annotations/link-annotation.ts +32 -0
  19. package/dist/ts/implementation/annotations/pdf-text-web-link.ts +265 -0
  20. package/dist/ts/implementation/annotations/uri-annotation.ts +86 -0
  21. package/dist/ts/implementation/collections/dictionary.ts +150 -0
  22. package/dist/ts/implementation/collections/object-object-pair/dictionary.ts +125 -0
  23. package/dist/ts/implementation/collections/utils.ts +38 -0
  24. package/dist/ts/implementation/document/automatic-fields/automatic-field-info-collection.ts +39 -0
  25. package/dist/ts/implementation/document/automatic-fields/automatic-field-info.ts +108 -0
  26. package/dist/ts/implementation/document/automatic-fields/automatic-field.ts +127 -0
  27. package/dist/ts/implementation/document/automatic-fields/composite-field.ts +76 -0
  28. package/dist/ts/implementation/document/automatic-fields/multiple-value-field.ts +37 -0
  29. package/dist/ts/implementation/document/automatic-fields/page-count-field.ts +75 -0
  30. package/dist/ts/implementation/document/automatic-fields/pdf-numbers-convertor.ts +157 -0
  31. package/dist/ts/implementation/document/automatic-fields/pdf-page-number-field.ts +82 -0
  32. package/dist/ts/implementation/document/automatic-fields/pdf-template-value-pair.ts +60 -0
  33. package/dist/ts/implementation/document/automatic-fields/single-value-field.ts +48 -0
  34. package/dist/ts/implementation/document/pdf-catalog.ts +65 -0
  35. package/dist/ts/implementation/document/pdf-document-base.ts +180 -0
  36. package/dist/ts/implementation/document/pdf-document-template.ts +310 -0
  37. package/dist/ts/implementation/document/pdf-document.ts +342 -0
  38. package/dist/ts/implementation/document/pdf-viewer-preferences.ts +578 -0
  39. package/dist/ts/implementation/drawing/pdf-drawing.ts +218 -0
  40. package/dist/ts/implementation/general/enum.ts +21 -0
  41. package/dist/ts/implementation/general/functions/pdf-function.ts +66 -0
  42. package/dist/ts/implementation/general/functions/pdf-sampled-function.ts +63 -0
  43. package/dist/ts/implementation/general/pdf-cache-collection.ts +97 -0
  44. package/dist/ts/implementation/general/pdf-collection.ts +41 -0
  45. package/dist/ts/implementation/general/pdf-destination.ts +170 -0
  46. package/dist/ts/implementation/graphics/brushes/enum.ts +237 -0
  47. package/dist/ts/implementation/graphics/brushes/pdf-blend.ts +294 -0
  48. package/dist/ts/implementation/graphics/brushes/pdf-brush.ts +68 -0
  49. package/dist/ts/implementation/graphics/brushes/pdf-brushes.ts +2438 -0
  50. package/dist/ts/implementation/graphics/brushes/pdf-color-blend.ts +295 -0
  51. package/dist/ts/implementation/graphics/brushes/pdf-gradient-brush.ts +311 -0
  52. package/dist/ts/implementation/graphics/brushes/pdf-linear-gradient-brush.ts +406 -0
  53. package/dist/ts/implementation/graphics/brushes/pdf-radial-gradient-brush.ts +290 -0
  54. package/dist/ts/implementation/graphics/brushes/pdf-solid-brush.ts +107 -0
  55. package/dist/ts/implementation/graphics/brushes/pdf-tiling-brush.ts +304 -0
  56. package/dist/ts/implementation/graphics/constants.ts +31 -0
  57. package/dist/ts/implementation/graphics/enum.ts +413 -0
  58. package/dist/ts/implementation/graphics/figures/arc.ts +133 -0
  59. package/dist/ts/implementation/graphics/figures/base/draw-element.ts +59 -0
  60. package/dist/ts/implementation/graphics/figures/base/element-layouter.ts +260 -0
  61. package/dist/ts/implementation/graphics/figures/base/fill-element.ts +72 -0
  62. package/dist/ts/implementation/graphics/figures/base/graphics-element.ts +34 -0
  63. package/dist/ts/implementation/graphics/figures/base/pdf-shape-element.ts +69 -0
  64. package/dist/ts/implementation/graphics/figures/base/shape-layouter.ts +276 -0
  65. package/dist/ts/implementation/graphics/figures/base/text-layouter.ts +205 -0
  66. package/dist/ts/implementation/graphics/figures/ellipse-part.ts +76 -0
  67. package/dist/ts/implementation/graphics/figures/enum.ts +80 -0
  68. package/dist/ts/implementation/graphics/figures/layout-element.ts +132 -0
  69. package/dist/ts/implementation/graphics/figures/path.ts +646 -0
  70. package/dist/ts/implementation/graphics/figures/pdf-template.ts +205 -0
  71. package/dist/ts/implementation/graphics/figures/rectangle-area.ts +108 -0
  72. package/dist/ts/implementation/graphics/figures/text-element.ts +445 -0
  73. package/dist/ts/implementation/graphics/fonts/enum.ts +385 -0
  74. package/dist/ts/implementation/graphics/fonts/pdf-font-metrics.ts +248 -0
  75. package/dist/ts/implementation/graphics/fonts/pdf-font.ts +316 -0
  76. package/dist/ts/implementation/graphics/fonts/pdf-standard-font-metrics-factory.ts +606 -0
  77. package/dist/ts/implementation/graphics/fonts/pdf-standard-font.ts +243 -0
  78. package/dist/ts/implementation/graphics/fonts/pdf-string-format.ts +474 -0
  79. package/dist/ts/implementation/graphics/fonts/pdf-true-type-font.ts +165 -0
  80. package/dist/ts/implementation/graphics/fonts/rtl/rtl-bidirectional.ts +958 -0
  81. package/dist/ts/implementation/graphics/fonts/rtl/rtl-text-shape.ts +374 -0
  82. package/dist/ts/implementation/graphics/fonts/rtl-renderer.ts +255 -0
  83. package/dist/ts/implementation/graphics/fonts/string-layouter.ts +617 -0
  84. package/dist/ts/implementation/graphics/fonts/string-tokenizer.ts +275 -0
  85. package/dist/ts/implementation/graphics/fonts/ttf-OS2-Table.ts +206 -0
  86. package/dist/ts/implementation/graphics/fonts/ttf-apple-cmap-sub-table.ts +18 -0
  87. package/dist/ts/implementation/graphics/fonts/ttf-cmap-sub-table.ts +18 -0
  88. package/dist/ts/implementation/graphics/fonts/ttf-cmap-table.ts +14 -0
  89. package/dist/ts/implementation/graphics/fonts/ttf-glyph-header.ts +26 -0
  90. package/dist/ts/implementation/graphics/fonts/ttf-glyph-info.ts +35 -0
  91. package/dist/ts/implementation/graphics/fonts/ttf-head-table.ts +94 -0
  92. package/dist/ts/implementation/graphics/fonts/ttf-horizontal-header-table.ts +56 -0
  93. package/dist/ts/implementation/graphics/fonts/ttf-loca-table.ts +10 -0
  94. package/dist/ts/implementation/graphics/fonts/ttf-long-hor-metric.ts +14 -0
  95. package/dist/ts/implementation/graphics/fonts/ttf-metrics.ts +106 -0
  96. package/dist/ts/implementation/graphics/fonts/ttf-microsoft-cmap-sub-table.ts +58 -0
  97. package/dist/ts/implementation/graphics/fonts/ttf-name-record.ts +33 -0
  98. package/dist/ts/implementation/graphics/fonts/ttf-name-table.ts +22 -0
  99. package/dist/ts/implementation/graphics/fonts/ttf-post-table.ts +42 -0
  100. package/dist/ts/implementation/graphics/fonts/ttf-reader.ts +1254 -0
  101. package/dist/ts/implementation/graphics/fonts/ttf-table-info.ts +26 -0
  102. package/dist/ts/implementation/graphics/fonts/ttf-trimmed-cmap-sub-table.ts +26 -0
  103. package/dist/ts/implementation/graphics/fonts/unicode-true-type-font.ts +577 -0
  104. package/dist/ts/implementation/graphics/images/byte-array.ts +137 -0
  105. package/dist/ts/implementation/graphics/images/image-decoder.ts +439 -0
  106. package/dist/ts/implementation/graphics/images/pdf-bitmap.ts +110 -0
  107. package/dist/ts/implementation/graphics/images/pdf-image.ts +132 -0
  108. package/dist/ts/implementation/graphics/pdf-color.ts +478 -0
  109. package/dist/ts/implementation/graphics/pdf-graphics.ts +2429 -0
  110. package/dist/ts/implementation/graphics/pdf-margins.ts +124 -0
  111. package/dist/ts/implementation/graphics/pdf-pen.ts +370 -0
  112. package/dist/ts/implementation/graphics/pdf-resources.ts +300 -0
  113. package/dist/ts/implementation/graphics/pdf-transformation-matrix.ts +246 -0
  114. package/dist/ts/implementation/graphics/pdf-transparency.ts +93 -0
  115. package/dist/ts/implementation/graphics/unit-convertor.ts +96 -0
  116. package/dist/ts/implementation/input-output/big-endian-writer.ts +121 -0
  117. package/dist/ts/implementation/input-output/cross-table.ts +21 -0
  118. package/dist/ts/implementation/input-output/enum.ts +16 -0
  119. package/dist/ts/implementation/input-output/pdf-cross-table.ts +524 -0
  120. package/dist/ts/implementation/input-output/pdf-dictionary-properties.ts +571 -0
  121. package/dist/ts/implementation/input-output/pdf-main-object-collection.ts +194 -0
  122. package/dist/ts/implementation/input-output/pdf-operators.ts +363 -0
  123. package/dist/ts/implementation/input-output/pdf-stream-writer.ts +681 -0
  124. package/dist/ts/implementation/input-output/pdf-writer.ts +88 -0
  125. package/dist/ts/implementation/pages/enum.ts +201 -0
  126. package/dist/ts/implementation/pages/page-added-event-arguments.ts +39 -0
  127. package/dist/ts/implementation/pages/pdf-document-page-collection.ts +180 -0
  128. package/dist/ts/implementation/pages/pdf-page-base.ts +181 -0
  129. package/dist/ts/implementation/pages/pdf-page-layer-collection.ts +348 -0
  130. package/dist/ts/implementation/pages/pdf-page-layer.ts +271 -0
  131. package/dist/ts/implementation/pages/pdf-page-settings.ts +192 -0
  132. package/dist/ts/implementation/pages/pdf-page-size.ts +162 -0
  133. package/dist/ts/implementation/pages/pdf-page-template-element.ts +663 -0
  134. package/dist/ts/implementation/pages/pdf-page.ts +235 -0
  135. package/dist/ts/implementation/pages/pdf-section-collection.ts +187 -0
  136. package/dist/ts/implementation/pages/pdf-section-page-collection.ts +61 -0
  137. package/dist/ts/implementation/pages/pdf-section-templates.ts +96 -0
  138. package/dist/ts/implementation/pages/pdf-section.ts +644 -0
  139. package/dist/ts/implementation/primitives/pdf-array.ts +386 -0
  140. package/dist/ts/implementation/primitives/pdf-boolean.ts +119 -0
  141. package/dist/ts/implementation/primitives/pdf-dictionary.ts +513 -0
  142. package/dist/ts/implementation/primitives/pdf-name.ts +218 -0
  143. package/dist/ts/implementation/primitives/pdf-number.ts +165 -0
  144. package/dist/ts/implementation/primitives/pdf-reference.ts +430 -0
  145. package/dist/ts/implementation/primitives/pdf-stream.ts +306 -0
  146. package/dist/ts/implementation/primitives/pdf-string.ts +397 -0
  147. package/dist/ts/implementation/structured-elements/grid/layout/grid-layouter.ts +2027 -0
  148. package/dist/ts/implementation/structured-elements/grid/pdf-grid-cell.ts +1193 -0
  149. package/dist/ts/implementation/structured-elements/grid/pdf-grid-column.ts +206 -0
  150. package/dist/ts/implementation/structured-elements/grid/pdf-grid-row.ts +470 -0
  151. package/dist/ts/implementation/structured-elements/grid/pdf-grid.ts +853 -0
  152. package/dist/ts/implementation/structured-elements/grid/styles/pdf-borders.ts +240 -0
  153. package/dist/ts/implementation/structured-elements/grid/styles/style.ts +424 -0
  154. package/dist/ts/implementation/structured-elements/tables/light-tables/enum.ts +16 -0
  155. package/dist/ts/interfaces/i-pdf-cache.ts +23 -0
  156. package/dist/ts/interfaces/i-pdf-changable.ts +17 -0
  157. package/dist/ts/interfaces/i-pdf-clonable.ts +12 -0
  158. package/dist/ts/interfaces/i-pdf-primitives.ts +45 -0
  159. package/dist/ts/interfaces/i-pdf-true-type-font.ts +48 -0
  160. package/dist/ts/interfaces/i-pdf-wrapper.ts +13 -0
  161. package/dist/ts/interfaces/i-pdf-writer.ts +29 -0
  162. package/package.json +7 -7
  163. package/src/implementation/document/pdf-document-base.js +1 -2
  164. package/src/implementation/graphics/pdf-graphics.js +7 -2
  165. package/src/implementation/graphics/pdf-transformation-matrix.d.ts +1 -1
@@ -0,0 +1,107 @@
1
+ import { PdfColor } from './../pdf-color';
2
+ import { PdfStreamWriter } from './../../input-output/pdf-stream-writer';
3
+ import { GetResourceEventHandler } from './../pdf-graphics';
4
+ import { PdfColorSpace } from './../enum';
5
+ import { PdfBrush } from './pdf-brush';
6
+ /**
7
+ * Represents a brush that fills any object with a solid color.
8
+ * ```typescript
9
+ * // create a new PDF document
10
+ * let document : PdfDocument = new PdfDocument();
11
+ * // add a pages to the document
12
+ * let page1 : PdfPage = document.pages.add();
13
+ * // set font
14
+ * let font : PdfStandardFont = new PdfStandardFont(PdfFontFamily.Helvetica, 20);
15
+ * // set brush
16
+ * let blackBrush : PdfSolidBrush = new PdfSolidBrush(new PdfColor(0, 0, 0));
17
+ * // draw the text
18
+ * page1.graphics.drawString('Hello World', font, blackBrush, new PointF(10, 10));
19
+ * // save the document
20
+ * document.save('output.pdf');
21
+ * // destroy the document
22
+ * document.destroy();
23
+ * ```
24
+ */
25
+ export class PdfSolidBrush extends PdfBrush {
26
+ //Fields
27
+ /**
28
+ * The `colour` of the brush.
29
+ * @private
30
+ */
31
+ public pdfColor : PdfColor;
32
+ /**
33
+ * Indicates if the brush is `immutable`.
34
+ * @private
35
+ */
36
+ private bImmutable : boolean;
37
+ /**
38
+ * The `color space` of the brush.
39
+ * @private
40
+ */
41
+ private colorSpace : PdfColorSpace;
42
+ //Constructors
43
+ /**
44
+ * Initializes a new instance of the `PdfSolidBrush` class.
45
+ * ```typescript
46
+ * // create a new PDF document
47
+ * let document : PdfDocument = new PdfDocument();
48
+ * // add a pages to the document
49
+ * let page1 : PdfPage = document.pages.add();
50
+ * // set font
51
+ * let font : PdfStandardFont = new PdfStandardFont(PdfFontFamily.Helvetica, 20);
52
+ * // set brush
53
+ * let blackBrush : PdfSolidBrush = new PdfSolidBrush(new PdfColor(0, 0, 0));
54
+ * // draw the text
55
+ * page1.graphics.drawString('Hello World', font, blackBrush, new PointF(10, 10));
56
+ * // save the document
57
+ * document.save('output.pdf');
58
+ * // destroy the document
59
+ * document.destroy();
60
+ * ```
61
+ * @param color color of the brush
62
+ */
63
+ public constructor(color : PdfColor) {
64
+ super();
65
+ this.pdfColor = color;
66
+ }
67
+ //Properties
68
+ /**
69
+ * Gets or sets the `color` of the brush.
70
+ * @private
71
+ */
72
+ public get color() : PdfColor {
73
+ return this.pdfColor;
74
+ }
75
+ public set color(value : PdfColor) {
76
+ this.pdfColor = value;
77
+ }
78
+ //Implementation
79
+ /**
80
+ * `Monitors` the changes of the brush and modify PDF state respectively.
81
+ * @private
82
+ */
83
+ public monitorChanges(brush : PdfBrush, streamWriter : PdfStreamWriter, getResources : GetResourceEventHandler,
84
+ saveChanges : boolean, currentColorSpace : PdfColorSpace) : boolean {
85
+ if (streamWriter == null) {
86
+ throw new Error('ArgumentNullException:streamWriter');
87
+ }
88
+ let diff : boolean = false;
89
+ if (brush == null) {
90
+ diff = true;
91
+ streamWriter.setColorAndSpace(this.pdfColor, currentColorSpace, false);
92
+ return diff;
93
+ } else {
94
+ let sBrush : PdfSolidBrush = brush as PdfSolidBrush;
95
+ diff = true;
96
+ streamWriter.setColorAndSpace(this.pdfColor, currentColorSpace, false);
97
+ return diff;
98
+ }
99
+ }
100
+ /**
101
+ * `Resets` the changes, which were made by the brush.
102
+ * @private
103
+ */
104
+ public resetChanges(streamWriter : PdfStreamWriter) : void {
105
+ streamWriter.setColorAndSpace(new PdfColor(0, 0, 0), PdfColorSpace.Rgb, false);
106
+ }
107
+ }
@@ -0,0 +1,304 @@
1
+ /**
2
+ * PdfTilingBrush.ts class for EJ2-PDF
3
+ */
4
+ import { PdfStreamWriter } from './../../input-output/pdf-stream-writer';
5
+ import { GetResourceEventHandler } from './../pdf-graphics';
6
+ import { PdfColorSpace } from './../enum';
7
+ import { PdfBrush } from './pdf-brush';
8
+ import { PointF, SizeF, RectangleF, Rectangle } from './../../drawing/pdf-drawing';
9
+ import { IPdfWrapper } from '../../../interfaces/i-pdf-wrapper';
10
+ import { PdfTransformationMatrix } from './../pdf-transformation-matrix';
11
+ import { DictionaryProperties } from './../../input-output/pdf-dictionary-properties';
12
+ import { PdfArray } from './../../primitives/pdf-array';
13
+ import { PdfName } from '../../../../src/implementation/primitives/pdf-name';
14
+ import { PdfNumber } from './../../primitives/pdf-number';
15
+ import { PdfGraphics } from './../pdf-graphics';
16
+ import { PdfResources} from './../pdf-resources';
17
+ import { PdfStream } from './../../primitives/pdf-stream';
18
+ import { PdfPage } from './../../pages/pdf-page';
19
+ import { IPdfPrimitive } from './../../../interfaces/i-pdf-primitives';
20
+ /**
21
+ * `PdfTilingBrush` Implements a colored tiling brush.
22
+ */
23
+ export class PdfTilingBrush extends PdfBrush implements IPdfWrapper {
24
+ //Fields
25
+ /**
26
+ * Local variable to store rectanble box.
27
+ * @private
28
+ */
29
+ private mBox: Rectangle;
30
+ /**
31
+ * Local variable to store graphics.
32
+ * @private
33
+ */
34
+ private mGraphics: PdfGraphics;
35
+ /**
36
+ * Local variable to store brush Stream.
37
+ * @private
38
+ */
39
+ private brushStream: PdfStream;
40
+ /**
41
+ * Local variable to store brush Stream.
42
+ * @private
43
+ */
44
+ private tempBrushStream: PdfStream;
45
+ /**
46
+ * Local variable to store resources.
47
+ * @private
48
+ */
49
+ private mResources: PdfResources;
50
+ /**
51
+ * Local variable to store Stroking.
52
+ * @private
53
+ */
54
+ private mStroking: boolean = false;
55
+ /**
56
+ * Local variable to store the page.
57
+ * @private
58
+ */
59
+ private mPage: PdfPage;
60
+ /**
61
+ * Local variable to store the tile start location.
62
+ * @private
63
+ */
64
+ private mLocation: PointF = new PointF(0, 0);
65
+ /**
66
+ * Local variable to store the Matrix.
67
+ * @private
68
+ */
69
+ private mTransformationMatrix: PdfTransformationMatrix;
70
+ /**
71
+ * Local variable to store the dictionary properties.
72
+ * @private
73
+ */
74
+ private mDictionaryProperties : DictionaryProperties = new DictionaryProperties();
75
+ //Constructor
76
+ /**
77
+ * Initializes a new instance of the `PdfTilingBrush` class.
78
+ * @public
79
+ */
80
+ public constructor(rectangle: Rectangle)
81
+ /**
82
+ * Initializes a new instance of the `PdfTilingBrush` class.
83
+ * @public
84
+ */
85
+ public constructor(size: SizeF)
86
+ /**
87
+ * Initializes a new instance of the `PdfTilingBrush` class.
88
+ * @public
89
+ */
90
+ public constructor(size: SizeF, page: PdfPage)
91
+ /**
92
+ * Initializes a new instance of the `PdfTilingBrush` class.
93
+ * @public
94
+ */
95
+ public constructor(rectangle: Rectangle, page: PdfPage)
96
+ /**
97
+ * Initializes a new instance of the `PdfTilingBrush` class.
98
+ * @public
99
+ */
100
+ public constructor(arg1?: Rectangle|SizeF, arg2?: PdfPage) {
101
+ super();
102
+ let rect : Rectangle = null;
103
+ if (arg1 instanceof Rectangle) {
104
+ rect = arg1;
105
+ } else if (arg1 instanceof SizeF) {
106
+ rect = new Rectangle(0, 0, arg1.width, arg1.height);
107
+ }
108
+ if (arg2 !== null && arg2 instanceof PdfPage) {
109
+ this.mPage = arg2;
110
+ }
111
+ this.brushStream = new PdfStream();
112
+ this.mResources = new PdfResources();
113
+ this.brushStream.items.setValue(this.mDictionaryProperties.resources , this.mResources);
114
+ this.setBox(rect);
115
+ this.setObligatoryFields();
116
+ if (arg2 !== null && arg2 instanceof PdfPage) {
117
+ this.mPage = arg2;
118
+ this.graphics.colorSpace = arg2.document.colorSpace;
119
+ }
120
+ }
121
+ /**
122
+ * Initializes a new instance of the `PdfTilingBrush` class.
123
+ * @private
124
+ * @param rectangle The size of the smallest brush cell.
125
+ * @param page The Current Page Object.
126
+ * @param location The Tile start location.
127
+ * @param matrix The matrix.
128
+ */
129
+ private initialize(rectangle: Rectangle, page: PdfPage, location: PointF, matrix: PdfTransformationMatrix) : PdfTilingBrush {
130
+ this.mPage = page;
131
+ this.mLocation = location;
132
+ this.mTransformationMatrix = matrix;
133
+ this.tempBrushStream = this.brushStream;
134
+ this.brushStream = new PdfStream();
135
+ let tempResource : PdfResources = new PdfResources();
136
+ this.brushStream.items.setValue(this.mDictionaryProperties.resources, tempResource);
137
+ this.setBox(rectangle);
138
+ this.setObligatoryFields();
139
+ return this;
140
+ }
141
+ //Properties
142
+ /**
143
+ * Location representing the start position of the tiles.
144
+ * @public
145
+ */
146
+ public get location(): PointF {
147
+ return this.mLocation;
148
+ }
149
+ public set location(value: PointF) {
150
+ this.mLocation = value;
151
+ }
152
+ /**
153
+ * Sets the obligatory fields.
154
+ * @private
155
+ */
156
+ private setObligatoryFields() : void {
157
+ this.brushStream.items.setValue(this.mDictionaryProperties.patternType, new PdfNumber(1));
158
+ // Tiling brush.
159
+ this.brushStream.items.setValue(this.mDictionaryProperties.paintType, new PdfNumber(1));
160
+ // Coloured.
161
+ this.brushStream.items.setValue(this.mDictionaryProperties.tilingType , new PdfNumber(1));
162
+ // Constant spacing.
163
+ this.brushStream.items.setValue(this.mDictionaryProperties.xStep , new PdfNumber((this.mBox.right - this.mBox.left)));
164
+ this.brushStream.items.setValue(this.mDictionaryProperties.yStep , new PdfNumber((this.mBox.bottom - this.mBox.top)));
165
+ if ((this.mPage != null) && (this.mLocation != null)) {
166
+ if ((this.mTransformationMatrix == null && typeof this.mTransformationMatrix === 'undefined')) {
167
+ // Transform the tile origin to fit the location
168
+ let tileTransform: number = (this.mPage.size.height % this.rectangle.size.height) - (this.mLocation.y);
169
+ /* tslint:disable-next-line:max-line-length */
170
+ this.brushStream.items.setValue(this.mDictionaryProperties.matrix, new PdfArray([1, 0, 0, 1, this.mLocation.x, tileTransform]));
171
+ } else {
172
+ let tileTransform: number = 0;
173
+ // Transform the tile origin to fit the location
174
+ let elements: number[] = this.mTransformationMatrix.matrix.elements;
175
+ if ((this.mPage.size.height > this.rectangle.size.height)) {
176
+ tileTransform = (this.mTransformationMatrix.matrix.offsetY
177
+ - (this.mPage.size.height % this.rectangle.size.height));
178
+ } else {
179
+ tileTransform = ((this.mPage.size.height % this.rectangle.size.height) + this.mTransformationMatrix.matrix.offsetY);
180
+ }
181
+ this.brushStream.items.setValue(this.mDictionaryProperties.matrix, new PdfArray([
182
+ elements[0], elements[1], elements[2], elements[3], elements[4], tileTransform]));
183
+ }
184
+ }
185
+ }
186
+ /**
187
+ * Sets the BBox coordinates.
188
+ * @private
189
+ */
190
+ private setBox(box: Rectangle) : void {
191
+ this.mBox = box;
192
+ let rect : RectangleF = new RectangleF(this.mBox.left, this.mBox.top, this.mBox.right, this.mBox.bottom);
193
+ this.brushStream.items.setValue(this.mDictionaryProperties.bBox, PdfArray.fromRectangle(rect));
194
+ }
195
+ //Properties
196
+ /**
197
+ * Gets the boundary box of the smallest brush cell.
198
+ * @public
199
+ */
200
+ public get rectangle(): Rectangle {
201
+ return this.mBox;
202
+ }
203
+ /**
204
+ * Gets the size of the smallest brush cell.
205
+ * @public
206
+ */
207
+ public get size(): SizeF {
208
+ return this.mBox.size;
209
+ }
210
+ /**
211
+ * Gets Graphics context of the brush.
212
+ */
213
+ public get graphics(): PdfGraphics {
214
+ if ((this.mGraphics == null && typeof this.mGraphics === 'undefined')) {
215
+ let gr : GetResourceEventHandler = new GetResourceEventHandler(this);
216
+ let g : PdfGraphics = new PdfGraphics(this.size, gr, this.brushStream);
217
+ this.mGraphics = g;
218
+ this.mResources = this.getResources();
219
+ this.mGraphics.initializeCoordinates();
220
+ }
221
+ return this.mGraphics;
222
+ }
223
+ /**
224
+ * Gets the resources and modifies the template dictionary.
225
+ * @public
226
+ */
227
+ public getResources() : PdfResources {
228
+ return this.mResources;
229
+ }
230
+ /**
231
+ * Gets or sets a value indicating whether this PdfTilingBrush
232
+ * is used for stroking operations.
233
+ */
234
+ public get stroking(): boolean {
235
+ return this.mStroking;
236
+ }
237
+ public set stroking(value: boolean) {
238
+ this.mStroking = value;
239
+ }
240
+ //PdfBrush methods
241
+ /**
242
+ * Creates a new copy of a brush.
243
+ * @public
244
+ */
245
+ public clone(): PdfBrush {
246
+ let brush: PdfTilingBrush = this.initialize(this.rectangle, this.mPage, this.location, this.mTransformationMatrix);
247
+ if ((this.mTransformationMatrix != null) && (this.mTransformationMatrix.matrix != null)) {
248
+ /* tslint:disable-next-line:max-line-length */
249
+ brush.brushStream.items.setValue(this.mDictionaryProperties.matrix , new PdfArray(this.mTransformationMatrix.matrix.elements));
250
+ }
251
+ brush.brushStream.data = this.tempBrushStream.data;
252
+ brush.mResources = new PdfResources(this.mResources);
253
+ brush.brushStream.items.setValue(this.mDictionaryProperties.resources, brush.mResources);
254
+ return brush;
255
+ }
256
+ /**
257
+ * Monitors the changes of the brush and modify PDF state respectfully.
258
+ * @param brush The brush
259
+ * @param streamWriter The stream writer
260
+ * @param getResources The get resources delegate.
261
+ * @param saveChanges if set to true the changes should be saved anyway.
262
+ * @param currentColorSpace The current color space.
263
+ */
264
+ /* tslint:disable-next-line:max-line-length */
265
+ public monitorChanges(brush: PdfBrush, streamWriter: PdfStreamWriter, getResources: GetResourceEventHandler, saveChanges: boolean, currentColorSpace: PdfColorSpace): boolean {
266
+ let diff: boolean = false;
267
+ if (brush !== this) {
268
+ // Set the Pattern colour space.
269
+ streamWriter.setColorSpace('Pattern', this.mStroking);
270
+ // Set the pattern for non-stroking operations.
271
+ let resources1 : PdfResources = getResources.getResources();
272
+ let name1 : PdfName = resources1.getName(this);
273
+ streamWriter.setColourWithPattern(null, name1, this.mStroking);
274
+ diff = true;
275
+ } else if (brush instanceof PdfTilingBrush) {
276
+ // Set the /Pattern colour space.
277
+ streamWriter.setColorSpace('Pattern', this.mStroking);
278
+ // Set the pattern for non-stroking operations.
279
+ let resources : PdfResources = getResources.getResources();
280
+ let name: PdfName = resources.getName(this);
281
+ streamWriter.setColourWithPattern(null, name, this.mStroking);
282
+ diff = true;
283
+ }
284
+ return diff;
285
+ }
286
+ /**
287
+ * Resets the changes, which were made by the brush.
288
+ * In other words resets the state to the initial one.
289
+ * @param streamWriter The stream writer.
290
+ */
291
+ public resetChanges(streamWriter: PdfStreamWriter) : void {
292
+ // We shouldn't do anything to reset changes.
293
+ // All changes will be reset automatically by setting a new colour space.
294
+ }
295
+ /* tslint:enable */
296
+ // IPdfWrapper Members
297
+ /**
298
+ * Gets the `element`.
299
+ * @public
300
+ */
301
+ public get element() : IPdfPrimitive {
302
+ return this.brushStream;
303
+ }
304
+ }
@@ -0,0 +1,31 @@
1
+ /**
2
+ * `constants.ts` class for EJ2-PDF
3
+ * @private
4
+ */
5
+ export class ProcedureSets {
6
+ /**
7
+ * Specifies the `PDF` procedure set.
8
+ * @private
9
+ */
10
+ public readonly pdf : string = 'PDF';
11
+ /**
12
+ * Specifies the `Text` procedure set.
13
+ * @private
14
+ */
15
+ public readonly text : string = 'Text';
16
+ /**
17
+ * Specifies the `ImageB` procedure set.
18
+ * @private
19
+ */
20
+ public readonly imageB : string = 'ImageB';
21
+ /**
22
+ * Specifies the `ImageC` procedure set.
23
+ * @private
24
+ */
25
+ public readonly imageC : string = 'ImageC';
26
+ /**
27
+ * Specifies the `ImageI` procedure set.
28
+ * @private
29
+ */
30
+ public readonly imageI : string = 'ImageI';
31
+ }