@syncfusion/ej2-pdf-export 24.1.41 → 24.2.3

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 (164) hide show
  1. package/CHANGELOG.md +10 -0
  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 +157 -28
  6. package/dist/es6/ej2-pdf-export.es2015.js.map +1 -1
  7. package/dist/es6/ej2-pdf-export.es5.js +157 -28
  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/package.json +6 -6
  13. package/src/implementation/graphics/pdf-graphics.d.ts +35 -0
  14. package/src/implementation/graphics/pdf-graphics.js +157 -29
  15. package/dist/ts/implementation/actions/action.ts +0 -76
  16. package/dist/ts/implementation/actions/uri-action.ts +0 -52
  17. package/dist/ts/implementation/annotations/action-link-annotation.ts +0 -43
  18. package/dist/ts/implementation/annotations/annotation-collection.ts +0 -159
  19. package/dist/ts/implementation/annotations/annotation.ts +0 -241
  20. package/dist/ts/implementation/annotations/document-link-annotation.ts +0 -118
  21. package/dist/ts/implementation/annotations/link-annotation.ts +0 -32
  22. package/dist/ts/implementation/annotations/pdf-text-web-link.ts +0 -265
  23. package/dist/ts/implementation/annotations/uri-annotation.ts +0 -86
  24. package/dist/ts/implementation/collections/dictionary.ts +0 -150
  25. package/dist/ts/implementation/collections/object-object-pair/dictionary.ts +0 -125
  26. package/dist/ts/implementation/collections/utils.ts +0 -38
  27. package/dist/ts/implementation/document/automatic-fields/automatic-field-info-collection.ts +0 -39
  28. package/dist/ts/implementation/document/automatic-fields/automatic-field-info.ts +0 -108
  29. package/dist/ts/implementation/document/automatic-fields/automatic-field.ts +0 -127
  30. package/dist/ts/implementation/document/automatic-fields/composite-field.ts +0 -76
  31. package/dist/ts/implementation/document/automatic-fields/multiple-value-field.ts +0 -37
  32. package/dist/ts/implementation/document/automatic-fields/page-count-field.ts +0 -75
  33. package/dist/ts/implementation/document/automatic-fields/pdf-numbers-convertor.ts +0 -157
  34. package/dist/ts/implementation/document/automatic-fields/pdf-page-number-field.ts +0 -82
  35. package/dist/ts/implementation/document/automatic-fields/pdf-template-value-pair.ts +0 -60
  36. package/dist/ts/implementation/document/automatic-fields/single-value-field.ts +0 -48
  37. package/dist/ts/implementation/document/pdf-catalog.ts +0 -65
  38. package/dist/ts/implementation/document/pdf-document-base.ts +0 -180
  39. package/dist/ts/implementation/document/pdf-document-template.ts +0 -310
  40. package/dist/ts/implementation/document/pdf-document.ts +0 -342
  41. package/dist/ts/implementation/document/pdf-viewer-preferences.ts +0 -578
  42. package/dist/ts/implementation/drawing/pdf-drawing.ts +0 -218
  43. package/dist/ts/implementation/general/enum.ts +0 -21
  44. package/dist/ts/implementation/general/functions/pdf-function.ts +0 -66
  45. package/dist/ts/implementation/general/functions/pdf-sampled-function.ts +0 -63
  46. package/dist/ts/implementation/general/pdf-cache-collection.ts +0 -97
  47. package/dist/ts/implementation/general/pdf-collection.ts +0 -41
  48. package/dist/ts/implementation/general/pdf-destination.ts +0 -170
  49. package/dist/ts/implementation/graphics/brushes/enum.ts +0 -237
  50. package/dist/ts/implementation/graphics/brushes/pdf-blend.ts +0 -294
  51. package/dist/ts/implementation/graphics/brushes/pdf-brush.ts +0 -68
  52. package/dist/ts/implementation/graphics/brushes/pdf-brushes.ts +0 -2438
  53. package/dist/ts/implementation/graphics/brushes/pdf-color-blend.ts +0 -295
  54. package/dist/ts/implementation/graphics/brushes/pdf-gradient-brush.ts +0 -311
  55. package/dist/ts/implementation/graphics/brushes/pdf-linear-gradient-brush.ts +0 -406
  56. package/dist/ts/implementation/graphics/brushes/pdf-radial-gradient-brush.ts +0 -290
  57. package/dist/ts/implementation/graphics/brushes/pdf-solid-brush.ts +0 -107
  58. package/dist/ts/implementation/graphics/brushes/pdf-tiling-brush.ts +0 -304
  59. package/dist/ts/implementation/graphics/constants.ts +0 -31
  60. package/dist/ts/implementation/graphics/enum.ts +0 -413
  61. package/dist/ts/implementation/graphics/figures/arc.ts +0 -133
  62. package/dist/ts/implementation/graphics/figures/base/draw-element.ts +0 -59
  63. package/dist/ts/implementation/graphics/figures/base/element-layouter.ts +0 -260
  64. package/dist/ts/implementation/graphics/figures/base/fill-element.ts +0 -72
  65. package/dist/ts/implementation/graphics/figures/base/graphics-element.ts +0 -34
  66. package/dist/ts/implementation/graphics/figures/base/pdf-shape-element.ts +0 -69
  67. package/dist/ts/implementation/graphics/figures/base/shape-layouter.ts +0 -276
  68. package/dist/ts/implementation/graphics/figures/base/text-layouter.ts +0 -205
  69. package/dist/ts/implementation/graphics/figures/ellipse-part.ts +0 -76
  70. package/dist/ts/implementation/graphics/figures/enum.ts +0 -80
  71. package/dist/ts/implementation/graphics/figures/layout-element.ts +0 -132
  72. package/dist/ts/implementation/graphics/figures/path.ts +0 -646
  73. package/dist/ts/implementation/graphics/figures/pdf-template.ts +0 -205
  74. package/dist/ts/implementation/graphics/figures/rectangle-area.ts +0 -108
  75. package/dist/ts/implementation/graphics/figures/text-element.ts +0 -445
  76. package/dist/ts/implementation/graphics/fonts/enum.ts +0 -385
  77. package/dist/ts/implementation/graphics/fonts/pdf-font-metrics.ts +0 -248
  78. package/dist/ts/implementation/graphics/fonts/pdf-font.ts +0 -316
  79. package/dist/ts/implementation/graphics/fonts/pdf-standard-font-metrics-factory.ts +0 -606
  80. package/dist/ts/implementation/graphics/fonts/pdf-standard-font.ts +0 -243
  81. package/dist/ts/implementation/graphics/fonts/pdf-string-format.ts +0 -474
  82. package/dist/ts/implementation/graphics/fonts/pdf-true-type-font.ts +0 -165
  83. package/dist/ts/implementation/graphics/fonts/rtl/rtl-bidirectional.ts +0 -958
  84. package/dist/ts/implementation/graphics/fonts/rtl/rtl-text-shape.ts +0 -374
  85. package/dist/ts/implementation/graphics/fonts/rtl-renderer.ts +0 -255
  86. package/dist/ts/implementation/graphics/fonts/string-layouter.ts +0 -617
  87. package/dist/ts/implementation/graphics/fonts/string-tokenizer.ts +0 -275
  88. package/dist/ts/implementation/graphics/fonts/ttf-OS2-Table.ts +0 -206
  89. package/dist/ts/implementation/graphics/fonts/ttf-apple-cmap-sub-table.ts +0 -18
  90. package/dist/ts/implementation/graphics/fonts/ttf-cmap-sub-table.ts +0 -18
  91. package/dist/ts/implementation/graphics/fonts/ttf-cmap-table.ts +0 -14
  92. package/dist/ts/implementation/graphics/fonts/ttf-glyph-header.ts +0 -26
  93. package/dist/ts/implementation/graphics/fonts/ttf-glyph-info.ts +0 -35
  94. package/dist/ts/implementation/graphics/fonts/ttf-head-table.ts +0 -94
  95. package/dist/ts/implementation/graphics/fonts/ttf-horizontal-header-table.ts +0 -56
  96. package/dist/ts/implementation/graphics/fonts/ttf-loca-table.ts +0 -10
  97. package/dist/ts/implementation/graphics/fonts/ttf-long-hor-metric.ts +0 -14
  98. package/dist/ts/implementation/graphics/fonts/ttf-metrics.ts +0 -106
  99. package/dist/ts/implementation/graphics/fonts/ttf-microsoft-cmap-sub-table.ts +0 -58
  100. package/dist/ts/implementation/graphics/fonts/ttf-name-record.ts +0 -33
  101. package/dist/ts/implementation/graphics/fonts/ttf-name-table.ts +0 -22
  102. package/dist/ts/implementation/graphics/fonts/ttf-post-table.ts +0 -42
  103. package/dist/ts/implementation/graphics/fonts/ttf-reader.ts +0 -1254
  104. package/dist/ts/implementation/graphics/fonts/ttf-table-info.ts +0 -26
  105. package/dist/ts/implementation/graphics/fonts/ttf-trimmed-cmap-sub-table.ts +0 -26
  106. package/dist/ts/implementation/graphics/fonts/unicode-true-type-font.ts +0 -577
  107. package/dist/ts/implementation/graphics/images/byte-array.ts +0 -137
  108. package/dist/ts/implementation/graphics/images/image-decoder.ts +0 -439
  109. package/dist/ts/implementation/graphics/images/pdf-bitmap.ts +0 -110
  110. package/dist/ts/implementation/graphics/images/pdf-image.ts +0 -132
  111. package/dist/ts/implementation/graphics/pdf-color.ts +0 -478
  112. package/dist/ts/implementation/graphics/pdf-graphics.ts +0 -2429
  113. package/dist/ts/implementation/graphics/pdf-margins.ts +0 -124
  114. package/dist/ts/implementation/graphics/pdf-pen.ts +0 -370
  115. package/dist/ts/implementation/graphics/pdf-resources.ts +0 -300
  116. package/dist/ts/implementation/graphics/pdf-transformation-matrix.ts +0 -246
  117. package/dist/ts/implementation/graphics/pdf-transparency.ts +0 -93
  118. package/dist/ts/implementation/graphics/unit-convertor.ts +0 -96
  119. package/dist/ts/implementation/input-output/big-endian-writer.ts +0 -121
  120. package/dist/ts/implementation/input-output/cross-table.ts +0 -21
  121. package/dist/ts/implementation/input-output/enum.ts +0 -16
  122. package/dist/ts/implementation/input-output/pdf-cross-table.ts +0 -524
  123. package/dist/ts/implementation/input-output/pdf-dictionary-properties.ts +0 -571
  124. package/dist/ts/implementation/input-output/pdf-main-object-collection.ts +0 -194
  125. package/dist/ts/implementation/input-output/pdf-operators.ts +0 -363
  126. package/dist/ts/implementation/input-output/pdf-stream-writer.ts +0 -681
  127. package/dist/ts/implementation/input-output/pdf-writer.ts +0 -88
  128. package/dist/ts/implementation/pages/enum.ts +0 -201
  129. package/dist/ts/implementation/pages/page-added-event-arguments.ts +0 -39
  130. package/dist/ts/implementation/pages/pdf-document-page-collection.ts +0 -180
  131. package/dist/ts/implementation/pages/pdf-page-base.ts +0 -181
  132. package/dist/ts/implementation/pages/pdf-page-layer-collection.ts +0 -348
  133. package/dist/ts/implementation/pages/pdf-page-layer.ts +0 -271
  134. package/dist/ts/implementation/pages/pdf-page-settings.ts +0 -192
  135. package/dist/ts/implementation/pages/pdf-page-size.ts +0 -162
  136. package/dist/ts/implementation/pages/pdf-page-template-element.ts +0 -663
  137. package/dist/ts/implementation/pages/pdf-page.ts +0 -235
  138. package/dist/ts/implementation/pages/pdf-section-collection.ts +0 -187
  139. package/dist/ts/implementation/pages/pdf-section-page-collection.ts +0 -61
  140. package/dist/ts/implementation/pages/pdf-section-templates.ts +0 -96
  141. package/dist/ts/implementation/pages/pdf-section.ts +0 -644
  142. package/dist/ts/implementation/primitives/pdf-array.ts +0 -386
  143. package/dist/ts/implementation/primitives/pdf-boolean.ts +0 -119
  144. package/dist/ts/implementation/primitives/pdf-dictionary.ts +0 -513
  145. package/dist/ts/implementation/primitives/pdf-name.ts +0 -218
  146. package/dist/ts/implementation/primitives/pdf-number.ts +0 -165
  147. package/dist/ts/implementation/primitives/pdf-reference.ts +0 -430
  148. package/dist/ts/implementation/primitives/pdf-stream.ts +0 -306
  149. package/dist/ts/implementation/primitives/pdf-string.ts +0 -397
  150. package/dist/ts/implementation/structured-elements/grid/layout/grid-layouter.ts +0 -2027
  151. package/dist/ts/implementation/structured-elements/grid/pdf-grid-cell.ts +0 -1193
  152. package/dist/ts/implementation/structured-elements/grid/pdf-grid-column.ts +0 -206
  153. package/dist/ts/implementation/structured-elements/grid/pdf-grid-row.ts +0 -470
  154. package/dist/ts/implementation/structured-elements/grid/pdf-grid.ts +0 -853
  155. package/dist/ts/implementation/structured-elements/grid/styles/pdf-borders.ts +0 -240
  156. package/dist/ts/implementation/structured-elements/grid/styles/style.ts +0 -424
  157. package/dist/ts/implementation/structured-elements/tables/light-tables/enum.ts +0 -16
  158. package/dist/ts/interfaces/i-pdf-cache.ts +0 -23
  159. package/dist/ts/interfaces/i-pdf-changable.ts +0 -17
  160. package/dist/ts/interfaces/i-pdf-clonable.ts +0 -12
  161. package/dist/ts/interfaces/i-pdf-primitives.ts +0 -45
  162. package/dist/ts/interfaces/i-pdf-true-type-font.ts +0 -48
  163. package/dist/ts/interfaces/i-pdf-wrapper.ts +0 -13
  164. package/dist/ts/interfaces/i-pdf-writer.ts +0 -29
@@ -1,60 +0,0 @@
1
- /**
2
- * PdfTemplateValuePair.ts class for EJ2-PDF
3
- * @private
4
- */
5
- import { PdfTemplate } from './../../graphics/figures/pdf-template';
6
- /**
7
- * Represent class to store information about `template and value pairs`.
8
- * @private
9
- */
10
- export class PdfTemplateValuePair {
11
- // Fields
12
- /**
13
- * Internal variable to store template.
14
- * @default null
15
- * @private
16
- */
17
- private pdfTemplate : PdfTemplate = null;
18
- /**
19
- * Intenal variable to store value.
20
- * @private
21
- */
22
- private content : string = '';
23
-
24
- // Constructors
25
- /**
26
- * Initializes a new instance of the 'PdfTemplateValuePair' class.
27
- * @private
28
- */
29
- public constructor()
30
- public constructor(template : PdfTemplate, value : string)
31
- public constructor(template ?: PdfTemplate, value ?: string) {
32
- if (typeof template === 'undefined') {
33
- //
34
- } else {
35
- this.template = template;
36
- this.value = value;
37
- }
38
- }
39
- // Properties
40
- /**
41
- * Gets or sets the template.
42
- * @private
43
- */
44
- public get template() : PdfTemplate {
45
- return this.pdfTemplate;
46
- }
47
- public set template(value : PdfTemplate) {
48
- this.pdfTemplate = value;
49
- }
50
- /**
51
- * Gets or sets the value.
52
- * @private
53
- */
54
- public get value() : string {
55
- return this.content;
56
- }
57
- public set value(value : string) {
58
- this.content = value;
59
- }
60
- }
@@ -1,48 +0,0 @@
1
- /**
2
- * PdfSingleValueField.ts class for EJ2-PDF
3
- */
4
- import { PdfAutomaticField } from './automatic-field';
5
- import { PdfGraphics } from './../../graphics/pdf-graphics';
6
- import { TemporaryDictionary } from './../../collections/object-object-pair/dictionary';
7
- import { PdfTemplateValuePair } from './pdf-template-value-pair';
8
- import { PdfDocumentBase } from './../pdf-document-base';
9
- import { PdfDocument } from './../pdf-document';
10
- import { PdfPage } from './../../pages/pdf-page';
11
- import { PointF, SizeF} from './../../drawing/pdf-drawing';
12
- import { PdfTemplate } from './../../graphics/figures/pdf-template';
13
- /**
14
- * Represents automatic field which has the same value in the whole document.
15
- */
16
- export abstract class PdfSingleValueField extends PdfAutomaticField {
17
- // Fields
18
- /* tslint:disable */
19
- private list : TemporaryDictionary<PdfDocumentBase, PdfTemplateValuePair> = new TemporaryDictionary<PdfDocumentBase, PdfTemplateValuePair>();
20
- /* tslint:enable */
21
- private painterGraphics : PdfGraphics[] = [];
22
- // Constructors
23
- public constructor() {
24
- super();
25
- }
26
- public performDraw(graphics : PdfGraphics, location : PointF, scalingX : number, scalingY : number) : void {
27
- super.performDrawHelper(graphics, location, scalingX, scalingY);
28
- let page : PdfPage = this.getPageFromGraphics(graphics);
29
- let document : PdfDocument = page.document;
30
- let textValue : string = this.getValue(graphics);
31
- /* tslint:disable */
32
- if (this.list.containsKey(document)) {
33
- let pair : PdfTemplateValuePair = this.list.getValue(document) as PdfTemplateValuePair;
34
- let drawLocation : PointF = new PointF(location.x + this.location.x, location.y + this.location.y);
35
- graphics.drawPdfTemplate(pair.template, drawLocation, new SizeF(pair.template.width * scalingX, pair.template.height * scalingY));
36
- this.painterGraphics.push(graphics);
37
- } else {
38
- let size : SizeF = this.getSize();
39
- let template : PdfTemplate = new PdfTemplate(size);
40
- this.list.setValue(document, new PdfTemplateValuePair(template, textValue));
41
- template.graphics.drawString(textValue, this.getFont(), this.pen, this.getBrush(), 0, 0, size.width, size.height, this.stringFormat);
42
- let drawLocation : PointF = new PointF(location.x + this.location.x, location.y + this.location.y);
43
- graphics.drawPdfTemplate(template, drawLocation, new SizeF(template.width * scalingX, template.height * scalingY));
44
- this.painterGraphics.push(graphics);
45
- }
46
- /* tslint:enable */
47
- }
48
- }
@@ -1,65 +0,0 @@
1
- /**
2
- * PdfCatalog.ts class for EJ2-PDF
3
- */
4
- import { PdfDictionary } from './../primitives/pdf-dictionary';
5
- import { PdfSectionCollection } from './../pages/pdf-section-collection';
6
- import { DictionaryProperties } from './../input-output/pdf-dictionary-properties';
7
- import { PdfName } from './../primitives/pdf-name';
8
- import { PdfReferenceHolder } from './../primitives/pdf-reference';
9
- import { PdfViewerPreferences } from './pdf-viewer-preferences';
10
- /**
11
- * `PdfCatalog` class represents internal catalog of the Pdf document.
12
- * @private
13
- */
14
- export class PdfCatalog extends PdfDictionary {
15
- //fields
16
- /**
17
- * Internal variable to store collection of `sections`.
18
- * @default null
19
- * @private
20
- */
21
- private sections : PdfSectionCollection = null;
22
- /**
23
- * Internal variable for accessing fields from `DictionryProperties` class.
24
- * @private
25
- */
26
- private tempDictionaryProperties : DictionaryProperties = new DictionaryProperties();
27
- private _viewerPreferences: PdfViewerPreferences;
28
- //constructor
29
- /**
30
- * Initializes a new instance of the `PdfCatalog` class.
31
- * @private
32
- */
33
- public constructor() {
34
- super();
35
- this.items.setValue(new DictionaryProperties().type, new PdfName('Catalog'));
36
- }
37
- //Properties
38
- /**
39
- * Gets or sets the sections, which contain `pages`.
40
- * @private
41
- */
42
- public get pages() : PdfSectionCollection {
43
- return this.sections;
44
- }
45
- public set pages(value : PdfSectionCollection) {
46
- let dictionary : PdfDictionary = value.element as PdfDictionary;
47
- // if (this.sections !== value) {
48
- // this.sections = value;
49
- // this.Items.setValue(this.tempDictionaryProperties.pages, new PdfReferenceHolder(value));
50
- // }
51
- this.sections = value;
52
- this.items.setValue(this.tempDictionaryProperties.pages, new PdfReferenceHolder(value));
53
- }
54
- /**
55
- * Gets the viewer preferences of the PDF document.
56
- * @private
57
- */
58
- public get viewerPreferences() : PdfViewerPreferences {
59
- if (this._viewerPreferences === null || typeof this._viewerPreferences === 'undefined') {
60
- this._viewerPreferences = new PdfViewerPreferences(this);
61
- this.items.setValue(this.tempDictionaryProperties.viewerPreferences, new PdfReferenceHolder(this._viewerPreferences.element));
62
- }
63
- return this._viewerPreferences;
64
- }
65
- }
@@ -1,180 +0,0 @@
1
- /**
2
- * PdfDocumentBase.ts class for EJ2-PDF
3
- */
4
- import { PdfMainObjectCollection } from './../input-output/pdf-main-object-collection';
5
- import { PdfCrossTable } from './../input-output/pdf-cross-table';
6
- import { PdfCatalog } from './pdf-catalog';
7
- import { Encoding, StreamWriter } from '@syncfusion/ej2-file-utils';
8
- import { PdfDocument } from './pdf-document';
9
- import { PdfReference } from './../primitives/pdf-reference';
10
- import { PdfViewerPreferences } from './pdf-viewer-preferences';
11
- /**
12
- * `PdfDocumentBase` class represent common properties of PdfDocument classes.
13
- * @private
14
- */
15
- export class PdfDocumentBase {
16
- //Fields
17
- /**
18
- * Collection of the main `objects`.
19
- * @private
20
- */
21
- private objects : PdfMainObjectCollection;
22
- /**
23
- * The `cross table`.
24
- * @private
25
- */
26
- private pdfCrossTable : PdfCrossTable;
27
- /**
28
- * `Object` that is saving currently.
29
- * @private
30
- */
31
- private currentSavingObject : PdfReference;
32
- /**
33
- * Document `catlog`.
34
- * @private
35
- */
36
- private pdfCatalog : PdfCatalog;
37
- /**
38
- * If the stream is copied, then it specifies true.
39
- * @private
40
- */
41
- public isStreamCopied : boolean = false;
42
- /**
43
- * Instance of parent `document`.
44
- * @private
45
- */
46
- public document : PdfDocument;
47
- //constructor
48
- /**
49
- * Initializes a new instance of the `PdfDocumentBase` class.
50
- * @private
51
- */
52
- public constructor()
53
- /**
54
- * Initializes a new instance of the `PdfDocumentBase` class with instance of PdfDocument as argument.
55
- * @private
56
- */
57
- public constructor(document : PdfDocument)
58
- public constructor(document? : PdfDocument) {
59
- if (document instanceof PdfDocument) {
60
- this.document = document;
61
- }
62
- }
63
- //Prpperties
64
- /**
65
- * Gets the `PDF objects` collection, which stores all objects and references to it..
66
- * @private
67
- */
68
- public get pdfObjects() : PdfMainObjectCollection {
69
- return this.objects;
70
- }
71
- /**
72
- * Gets the `cross-reference` table.
73
- * @private
74
- */
75
- public get crossTable() : PdfCrossTable {
76
- return this.pdfCrossTable;
77
- }
78
- /**
79
- * Gets or sets the current saving `object number`.
80
- * @private
81
- */
82
- public get currentSavingObj() : PdfReference {
83
- return this.currentSavingObject;
84
- }
85
- public set currentSavingObj(value : PdfReference) {
86
- this.currentSavingObject = value;
87
- }
88
- /**
89
- * Gets the PDF document `catalog`.
90
- * @private
91
- */
92
- public get catalog() : PdfCatalog {
93
- return this.pdfCatalog;
94
- }
95
- public set catalog(value : PdfCatalog) {
96
- this.pdfCatalog = value;
97
- }
98
- /**
99
- * Gets viewer preferences for presenting the PDF document in a viewer.
100
- * ```typescript
101
- * // Create a new PDF document
102
- * let document : PdfDocument = new PdfDocument();
103
- * // Gets viewer preferences
104
- * let viewerPreferences : PdfViewerPreferences = document.viewerPreferences;
105
- * // Destroy the document
106
- * document.destroy();
107
- * ```
108
- */
109
- public get viewerPreferences() : PdfViewerPreferences {
110
- return this.pdfCatalog.viewerPreferences;
111
- }
112
- //Public methods
113
- /**
114
- * Sets the `main object collection`.
115
- * @private
116
- */
117
- public setMainObjectCollection(mainObjectCollection : PdfMainObjectCollection) : void {
118
- this.objects = mainObjectCollection;
119
- }
120
- /**
121
- * Sets the `cross table`.
122
- * @private
123
- */
124
- public setCrossTable(cTable : PdfCrossTable) : void {
125
- this.pdfCrossTable = cTable;
126
- }
127
- /**
128
- * Sets the `catalog`.
129
- * @private
130
- */
131
- public setCatalog(catalog : PdfCatalog) : void {
132
- this.pdfCatalog = catalog;
133
- }
134
- /**
135
- * `Saves` the document to the specified filename.
136
- * @private
137
- */
138
- public save(): Promise<{blobData: Blob}>
139
- /**
140
- * `Saves` the document to the specified filename.
141
- * @public
142
- * ```typescript
143
- * // create a new PDF document
144
- * let document : PdfDocument = new PdfDocument();
145
- * // add a pages to the document
146
- * let page1 : PdfPage = document.pages.add();
147
- * //
148
- * // save the document
149
- * document.save('output.pdf');
150
- * //
151
- * // destroy the document
152
- * document.destroy();
153
- * ```
154
- * @param filename Specifies the file name to save the output pdf document.
155
- */
156
- public save(filename : string) : void
157
- public save(filename ?: string) : Promise<{blobData: Blob}> | void {
158
- let encoding: Encoding = new Encoding(true);
159
- let SW : StreamWriter = new StreamWriter(encoding);
160
- if (typeof filename === 'undefined') {
161
- let encoding: Encoding = new Encoding(true);
162
- let SW: StreamWriter = new StreamWriter(encoding);
163
- return new Promise((resolve: Function, reject: Function) => {
164
- /* tslint:disable-next-line:no-any */
165
- let obj: any = {};
166
- obj.blobData = new Blob([this.document.docSave(SW, true)], {type : 'application/pdf'});
167
- resolve(obj);
168
- });
169
- } else {
170
- this.document.docSave(SW, filename, true);
171
- }
172
- }
173
- /**
174
- * `Clone` of parent object - PdfDocument.
175
- * @private
176
- */
177
- public clone() : PdfDocument {
178
- return this.document;
179
- }
180
- }
@@ -1,310 +0,0 @@
1
- /**
2
- * PdfDocumentTemplate.ts class for EJ2-PDF
3
- */
4
- import { PdfPage } from './../pages/pdf-page';
5
- import { TemplateType } from './../pages/enum';
6
- import { PdfDocumentPageCollection } from './../pages/pdf-document-page-collection';
7
- import { PdfPageTemplateElement } from './../pages/pdf-page-template-element';
8
- // import { PdfStampCollection } from `./../Pages/PdfStampCollection`;
9
- /**
10
- * `PdfDocumentTemplate` class encapsulates a page template for all the pages in the document.
11
- * @private
12
- */
13
- export class PdfDocumentTemplate {
14
- // Fields
15
- /**
16
- * `Left` page template object.
17
- * @private
18
- */
19
- private leftTemplate : PdfPageTemplateElement;
20
- /**
21
- * `Top` page template object.
22
- * @private
23
- */
24
- private topTemplate : PdfPageTemplateElement;
25
- /**
26
- * `Right` page template object.
27
- * @private
28
- */
29
- private rightTemplate : PdfPageTemplateElement;
30
- /**
31
- * `Bottom` page template object.
32
- * @private
33
- */
34
- private bottomTemplate : PdfPageTemplateElement;
35
- /**
36
- * `EvenLeft` page template object.
37
- * @private
38
- */
39
- private evenLeft : PdfPageTemplateElement;
40
- /**
41
- * `EvenTop` page template object.
42
- * @private
43
- */
44
- private evenTop : PdfPageTemplateElement;
45
- /**
46
- * `EvenRight` page template object.
47
- * @private
48
- */
49
- private evenRight : PdfPageTemplateElement;
50
- /**
51
- * `EventBottom` page template object.
52
- * @private
53
- */
54
- private evenBottom : PdfPageTemplateElement;
55
- /**
56
- * `OddLeft` page template object.
57
- * @private
58
- */
59
- private oddLeft : PdfPageTemplateElement;
60
- /**
61
- * `OddTop` page template object.
62
- * @private
63
- */
64
- private oddTop : PdfPageTemplateElement;
65
- /**
66
- * `OddRight` page template object.
67
- * @private
68
- */
69
- private oddRight : PdfPageTemplateElement;
70
- /**
71
- * `OddBottom` page template object.
72
- * @private
73
- */
74
- private oddBottom : PdfPageTemplateElement;
75
- // private m_stamps : PdfStampCollection;
76
- // Properties
77
- /**
78
- * `Left` page template object.
79
- * @public
80
- */
81
- public get left() : PdfPageTemplateElement {
82
- return this.leftTemplate;
83
- }
84
- public set left(value : PdfPageTemplateElement) {
85
- this.leftTemplate = this.checkElement(value, TemplateType.Left);
86
- }
87
- /**
88
- * `Top` page template object.
89
- * @public
90
- */
91
- public get top() : PdfPageTemplateElement {
92
- return this.topTemplate;
93
- }
94
- public set top(value : PdfPageTemplateElement) {
95
- this.topTemplate = this.checkElement(value, TemplateType.Top);
96
- }
97
- /**
98
- * `Right` page template object.
99
- * @public
100
- */
101
- public get right() : PdfPageTemplateElement {
102
- return this.rightTemplate;
103
- }
104
- public set right(value : PdfPageTemplateElement) {
105
- this.rightTemplate = this.checkElement(value, TemplateType.Right);
106
- }
107
- /**
108
- * `Bottom` page template object.
109
- * @public
110
- */
111
- public get bottom() : PdfPageTemplateElement {
112
- return this.bottomTemplate;
113
- }
114
- public set bottom(value : PdfPageTemplateElement) {
115
- this.bottomTemplate = this.checkElement(value, TemplateType.Bottom);
116
- }
117
- /**
118
- * `EvenLeft` page template object.
119
- * @public
120
- */
121
- public get EvenLeft() : PdfPageTemplateElement {
122
- return this.evenLeft;
123
- }
124
- public set EvenLeft(value : PdfPageTemplateElement) {
125
- this.evenLeft = this.checkElement(value, TemplateType.Left);
126
- }
127
- /**
128
- * `EvenTop` page template object.
129
- * @public
130
- */
131
- public get EvenTop() : PdfPageTemplateElement {
132
- return this.evenTop;
133
- }
134
- public set EvenTop(value : PdfPageTemplateElement) {
135
- this.evenTop = this.checkElement(value, TemplateType.Top);
136
- }
137
- /**
138
- * `EvenRight` page template object.
139
- * @public
140
- */
141
- public get EvenRight() : PdfPageTemplateElement {
142
- return this.evenRight;
143
- }
144
- public set EvenRight(value : PdfPageTemplateElement) {
145
- this.evenRight = this.checkElement(value, TemplateType.Right);
146
- }
147
- /**
148
- * `EvenBottom` page template object.
149
- * @public
150
- */
151
- public get EvenBottom() : PdfPageTemplateElement {
152
- return this.evenBottom;
153
- }
154
- public set EvenBottom(value : PdfPageTemplateElement) {
155
- this.evenBottom = this.checkElement(value, TemplateType.Bottom);
156
- }
157
- /**
158
- * `OddLeft` page template object.
159
- * @public
160
- */
161
- public get OddLeft() : PdfPageTemplateElement {
162
- return this.oddLeft;
163
- }
164
- public set OddLeft(value : PdfPageTemplateElement) {
165
- this.oddLeft = this.checkElement(value, TemplateType.Left);
166
- }
167
- /**
168
- * `OddTop` page template object.
169
- * @public
170
- */
171
- public get OddTop() : PdfPageTemplateElement {
172
- return this.oddTop;
173
- }
174
- public set OddTop(value : PdfPageTemplateElement) {
175
- this.oddTop = this.checkElement(value, TemplateType.Top);
176
- }
177
- /**
178
- * `OddRight` page template object.
179
- * @public
180
- */
181
- public get OddRight() : PdfPageTemplateElement {
182
- return this.oddRight;
183
- }
184
- public set OddRight(value : PdfPageTemplateElement) {
185
- this.oddRight = this.checkElement(value, TemplateType.Right);
186
- }
187
- /**
188
- * `OddBottom` page template object.
189
- * @public
190
- */
191
- public get OddBottom() : PdfPageTemplateElement {
192
- return this.oddBottom;
193
- }
194
- public set OddBottom(value : PdfPageTemplateElement) {
195
- this.oddBottom = this.checkElement(value, TemplateType.Bottom);
196
- }
197
- // Constructors
198
- /**
199
- * Initializes a new instance of the `PdfDocumentTemplate` class.
200
- * @public
201
- */
202
- public constructor() {
203
- //
204
- }
205
- // Implementation
206
- /**
207
- * Returns `left` template.
208
- * @public
209
- */
210
- public getLeft(page : PdfPage) : PdfPageTemplateElement {
211
- if (page == null) {
212
- throw new Error('ArgumentNullException:page');
213
- }
214
- let template : PdfPageTemplateElement = null;
215
- // if (page.Document.Pages != null) {
216
- let even : boolean = this.isEven(page);
217
- if (even) {
218
- template = (this.EvenLeft != null) ? this.EvenLeft : this.left;
219
- } else {
220
- template = (this.OddLeft != null) ? this.OddLeft : this.left;
221
- }
222
- // }
223
- return template;
224
- }
225
- /**
226
- * Returns `top` template.
227
- * @public
228
- */
229
- public getTop(page : PdfPage) : PdfPageTemplateElement {
230
- if (page == null) {
231
- throw new Error('ArgumentNullException:page');
232
- }
233
- let template : PdfPageTemplateElement = null;
234
- // if (page.Document.Pages != null) {
235
- let even : boolean = this.isEven(page);
236
- if (even) {
237
- template = (this.EvenTop != null) ? this.EvenTop : this.top;
238
- } else {
239
- template = (this.OddTop != null) ? this.OddTop : this.top;
240
- }
241
- // }
242
- return template;
243
- }
244
- /**
245
- * Returns `right` template.
246
- * @public
247
- */
248
- public getRight(page : PdfPage) : PdfPageTemplateElement {
249
- if (page == null) {
250
- throw new Error('ArgumentNullException:page');
251
- }
252
- let template : PdfPageTemplateElement = null;
253
- // if (page.Document.Pages != null) {
254
- let even : boolean = this.isEven(page);
255
- if (even) {
256
- template = (this.EvenRight != null) ? this.EvenRight : this.right;
257
- } else {
258
- template = (this.OddRight != null) ? this.OddRight : this.right;
259
- }
260
- // }
261
- return template;
262
- }
263
- /**
264
- * Returns `bottom` template.
265
- * @public
266
- */
267
- public getBottom(page : PdfPage) : PdfPageTemplateElement {
268
- if (page == null) {
269
- throw new Error('ArgumentNullException:page');
270
- }
271
- let template : PdfPageTemplateElement = null;
272
- // if (page.Document.Pages != null) {
273
- let even : boolean = this.isEven(page);
274
- if (even) {
275
- template = (this.EvenBottom != null) ? this.EvenBottom : this.bottom;
276
- } else {
277
- template = (this.OddBottom != null) ? this.OddBottom : this.bottom;
278
- }
279
- // }
280
- return template;
281
- }
282
- /**
283
- * Checks whether the page `is even`.
284
- * @private
285
- */
286
- private isEven(page : PdfPage) : boolean {
287
- let pages : PdfDocumentPageCollection = page.section.document.pages;
288
- let index : number = 0;
289
- if (pages.pageCollectionIndex.containsKey(page)) {
290
- index = pages.pageCollectionIndex.getValue(page) + 1;
291
- } else {
292
- index = pages.indexOf(page) + 1;
293
- }
294
- let even : boolean = ((index % 2) === 0);
295
- return even;
296
- }
297
- /**
298
- * Checks a `template element`.
299
- * @private
300
- */
301
- private checkElement(templateElement : PdfPageTemplateElement, type : TemplateType) : PdfPageTemplateElement {
302
- if (templateElement != null) {
303
- if ((typeof templateElement.type !== 'undefined') && (templateElement.type !== TemplateType.None)) {
304
- throw new Error('NotSupportedException:Can not reassign the template element. Please, create new one.');
305
- }
306
- templateElement.type = type;
307
- }
308
- return templateElement;
309
- }
310
- }