@syncfusion/ej2-pdf-export 24.1.41 → 24.1.47
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.
- package/CHANGELOG.md +8 -0
- package/dist/ej2-pdf-export.min.js +2 -2
- package/dist/ej2-pdf-export.umd.min.js +2 -2
- package/dist/ej2-pdf-export.umd.min.js.map +1 -1
- package/dist/es6/ej2-pdf-export.es2015.js +157 -28
- package/dist/es6/ej2-pdf-export.es2015.js.map +1 -1
- package/dist/es6/ej2-pdf-export.es5.js +157 -28
- package/dist/es6/ej2-pdf-export.es5.js.map +1 -1
- package/dist/global/ej2-pdf-export.min.js +2 -2
- package/dist/global/ej2-pdf-export.min.js.map +1 -1
- package/dist/global/index.d.ts +1 -1
- package/package.json +5 -5
- package/src/implementation/graphics/pdf-graphics.d.ts +35 -0
- package/src/implementation/graphics/pdf-graphics.js +157 -29
- package/dist/ts/implementation/actions/action.ts +0 -76
- package/dist/ts/implementation/actions/uri-action.ts +0 -52
- package/dist/ts/implementation/annotations/action-link-annotation.ts +0 -43
- package/dist/ts/implementation/annotations/annotation-collection.ts +0 -159
- package/dist/ts/implementation/annotations/annotation.ts +0 -241
- package/dist/ts/implementation/annotations/document-link-annotation.ts +0 -118
- package/dist/ts/implementation/annotations/link-annotation.ts +0 -32
- package/dist/ts/implementation/annotations/pdf-text-web-link.ts +0 -265
- package/dist/ts/implementation/annotations/uri-annotation.ts +0 -86
- package/dist/ts/implementation/collections/dictionary.ts +0 -150
- package/dist/ts/implementation/collections/object-object-pair/dictionary.ts +0 -125
- package/dist/ts/implementation/collections/utils.ts +0 -38
- package/dist/ts/implementation/document/automatic-fields/automatic-field-info-collection.ts +0 -39
- package/dist/ts/implementation/document/automatic-fields/automatic-field-info.ts +0 -108
- package/dist/ts/implementation/document/automatic-fields/automatic-field.ts +0 -127
- package/dist/ts/implementation/document/automatic-fields/composite-field.ts +0 -76
- package/dist/ts/implementation/document/automatic-fields/multiple-value-field.ts +0 -37
- package/dist/ts/implementation/document/automatic-fields/page-count-field.ts +0 -75
- package/dist/ts/implementation/document/automatic-fields/pdf-numbers-convertor.ts +0 -157
- package/dist/ts/implementation/document/automatic-fields/pdf-page-number-field.ts +0 -82
- package/dist/ts/implementation/document/automatic-fields/pdf-template-value-pair.ts +0 -60
- package/dist/ts/implementation/document/automatic-fields/single-value-field.ts +0 -48
- package/dist/ts/implementation/document/pdf-catalog.ts +0 -65
- package/dist/ts/implementation/document/pdf-document-base.ts +0 -180
- package/dist/ts/implementation/document/pdf-document-template.ts +0 -310
- package/dist/ts/implementation/document/pdf-document.ts +0 -342
- package/dist/ts/implementation/document/pdf-viewer-preferences.ts +0 -578
- package/dist/ts/implementation/drawing/pdf-drawing.ts +0 -218
- package/dist/ts/implementation/general/enum.ts +0 -21
- package/dist/ts/implementation/general/functions/pdf-function.ts +0 -66
- package/dist/ts/implementation/general/functions/pdf-sampled-function.ts +0 -63
- package/dist/ts/implementation/general/pdf-cache-collection.ts +0 -97
- package/dist/ts/implementation/general/pdf-collection.ts +0 -41
- package/dist/ts/implementation/general/pdf-destination.ts +0 -170
- package/dist/ts/implementation/graphics/brushes/enum.ts +0 -237
- package/dist/ts/implementation/graphics/brushes/pdf-blend.ts +0 -294
- package/dist/ts/implementation/graphics/brushes/pdf-brush.ts +0 -68
- package/dist/ts/implementation/graphics/brushes/pdf-brushes.ts +0 -2438
- package/dist/ts/implementation/graphics/brushes/pdf-color-blend.ts +0 -295
- package/dist/ts/implementation/graphics/brushes/pdf-gradient-brush.ts +0 -311
- package/dist/ts/implementation/graphics/brushes/pdf-linear-gradient-brush.ts +0 -406
- package/dist/ts/implementation/graphics/brushes/pdf-radial-gradient-brush.ts +0 -290
- package/dist/ts/implementation/graphics/brushes/pdf-solid-brush.ts +0 -107
- package/dist/ts/implementation/graphics/brushes/pdf-tiling-brush.ts +0 -304
- package/dist/ts/implementation/graphics/constants.ts +0 -31
- package/dist/ts/implementation/graphics/enum.ts +0 -413
- package/dist/ts/implementation/graphics/figures/arc.ts +0 -133
- package/dist/ts/implementation/graphics/figures/base/draw-element.ts +0 -59
- package/dist/ts/implementation/graphics/figures/base/element-layouter.ts +0 -260
- package/dist/ts/implementation/graphics/figures/base/fill-element.ts +0 -72
- package/dist/ts/implementation/graphics/figures/base/graphics-element.ts +0 -34
- package/dist/ts/implementation/graphics/figures/base/pdf-shape-element.ts +0 -69
- package/dist/ts/implementation/graphics/figures/base/shape-layouter.ts +0 -276
- package/dist/ts/implementation/graphics/figures/base/text-layouter.ts +0 -205
- package/dist/ts/implementation/graphics/figures/ellipse-part.ts +0 -76
- package/dist/ts/implementation/graphics/figures/enum.ts +0 -80
- package/dist/ts/implementation/graphics/figures/layout-element.ts +0 -132
- package/dist/ts/implementation/graphics/figures/path.ts +0 -646
- package/dist/ts/implementation/graphics/figures/pdf-template.ts +0 -205
- package/dist/ts/implementation/graphics/figures/rectangle-area.ts +0 -108
- package/dist/ts/implementation/graphics/figures/text-element.ts +0 -445
- package/dist/ts/implementation/graphics/fonts/enum.ts +0 -385
- package/dist/ts/implementation/graphics/fonts/pdf-font-metrics.ts +0 -248
- package/dist/ts/implementation/graphics/fonts/pdf-font.ts +0 -316
- package/dist/ts/implementation/graphics/fonts/pdf-standard-font-metrics-factory.ts +0 -606
- package/dist/ts/implementation/graphics/fonts/pdf-standard-font.ts +0 -243
- package/dist/ts/implementation/graphics/fonts/pdf-string-format.ts +0 -474
- package/dist/ts/implementation/graphics/fonts/pdf-true-type-font.ts +0 -165
- package/dist/ts/implementation/graphics/fonts/rtl/rtl-bidirectional.ts +0 -958
- package/dist/ts/implementation/graphics/fonts/rtl/rtl-text-shape.ts +0 -374
- package/dist/ts/implementation/graphics/fonts/rtl-renderer.ts +0 -255
- package/dist/ts/implementation/graphics/fonts/string-layouter.ts +0 -617
- package/dist/ts/implementation/graphics/fonts/string-tokenizer.ts +0 -275
- package/dist/ts/implementation/graphics/fonts/ttf-OS2-Table.ts +0 -206
- package/dist/ts/implementation/graphics/fonts/ttf-apple-cmap-sub-table.ts +0 -18
- package/dist/ts/implementation/graphics/fonts/ttf-cmap-sub-table.ts +0 -18
- package/dist/ts/implementation/graphics/fonts/ttf-cmap-table.ts +0 -14
- package/dist/ts/implementation/graphics/fonts/ttf-glyph-header.ts +0 -26
- package/dist/ts/implementation/graphics/fonts/ttf-glyph-info.ts +0 -35
- package/dist/ts/implementation/graphics/fonts/ttf-head-table.ts +0 -94
- package/dist/ts/implementation/graphics/fonts/ttf-horizontal-header-table.ts +0 -56
- package/dist/ts/implementation/graphics/fonts/ttf-loca-table.ts +0 -10
- package/dist/ts/implementation/graphics/fonts/ttf-long-hor-metric.ts +0 -14
- package/dist/ts/implementation/graphics/fonts/ttf-metrics.ts +0 -106
- package/dist/ts/implementation/graphics/fonts/ttf-microsoft-cmap-sub-table.ts +0 -58
- package/dist/ts/implementation/graphics/fonts/ttf-name-record.ts +0 -33
- package/dist/ts/implementation/graphics/fonts/ttf-name-table.ts +0 -22
- package/dist/ts/implementation/graphics/fonts/ttf-post-table.ts +0 -42
- package/dist/ts/implementation/graphics/fonts/ttf-reader.ts +0 -1254
- package/dist/ts/implementation/graphics/fonts/ttf-table-info.ts +0 -26
- package/dist/ts/implementation/graphics/fonts/ttf-trimmed-cmap-sub-table.ts +0 -26
- package/dist/ts/implementation/graphics/fonts/unicode-true-type-font.ts +0 -577
- package/dist/ts/implementation/graphics/images/byte-array.ts +0 -137
- package/dist/ts/implementation/graphics/images/image-decoder.ts +0 -439
- package/dist/ts/implementation/graphics/images/pdf-bitmap.ts +0 -110
- package/dist/ts/implementation/graphics/images/pdf-image.ts +0 -132
- package/dist/ts/implementation/graphics/pdf-color.ts +0 -478
- package/dist/ts/implementation/graphics/pdf-graphics.ts +0 -2429
- package/dist/ts/implementation/graphics/pdf-margins.ts +0 -124
- package/dist/ts/implementation/graphics/pdf-pen.ts +0 -370
- package/dist/ts/implementation/graphics/pdf-resources.ts +0 -300
- package/dist/ts/implementation/graphics/pdf-transformation-matrix.ts +0 -246
- package/dist/ts/implementation/graphics/pdf-transparency.ts +0 -93
- package/dist/ts/implementation/graphics/unit-convertor.ts +0 -96
- package/dist/ts/implementation/input-output/big-endian-writer.ts +0 -121
- package/dist/ts/implementation/input-output/cross-table.ts +0 -21
- package/dist/ts/implementation/input-output/enum.ts +0 -16
- package/dist/ts/implementation/input-output/pdf-cross-table.ts +0 -524
- package/dist/ts/implementation/input-output/pdf-dictionary-properties.ts +0 -571
- package/dist/ts/implementation/input-output/pdf-main-object-collection.ts +0 -194
- package/dist/ts/implementation/input-output/pdf-operators.ts +0 -363
- package/dist/ts/implementation/input-output/pdf-stream-writer.ts +0 -681
- package/dist/ts/implementation/input-output/pdf-writer.ts +0 -88
- package/dist/ts/implementation/pages/enum.ts +0 -201
- package/dist/ts/implementation/pages/page-added-event-arguments.ts +0 -39
- package/dist/ts/implementation/pages/pdf-document-page-collection.ts +0 -180
- package/dist/ts/implementation/pages/pdf-page-base.ts +0 -181
- package/dist/ts/implementation/pages/pdf-page-layer-collection.ts +0 -348
- package/dist/ts/implementation/pages/pdf-page-layer.ts +0 -271
- package/dist/ts/implementation/pages/pdf-page-settings.ts +0 -192
- package/dist/ts/implementation/pages/pdf-page-size.ts +0 -162
- package/dist/ts/implementation/pages/pdf-page-template-element.ts +0 -663
- package/dist/ts/implementation/pages/pdf-page.ts +0 -235
- package/dist/ts/implementation/pages/pdf-section-collection.ts +0 -187
- package/dist/ts/implementation/pages/pdf-section-page-collection.ts +0 -61
- package/dist/ts/implementation/pages/pdf-section-templates.ts +0 -96
- package/dist/ts/implementation/pages/pdf-section.ts +0 -644
- package/dist/ts/implementation/primitives/pdf-array.ts +0 -386
- package/dist/ts/implementation/primitives/pdf-boolean.ts +0 -119
- package/dist/ts/implementation/primitives/pdf-dictionary.ts +0 -513
- package/dist/ts/implementation/primitives/pdf-name.ts +0 -218
- package/dist/ts/implementation/primitives/pdf-number.ts +0 -165
- package/dist/ts/implementation/primitives/pdf-reference.ts +0 -430
- package/dist/ts/implementation/primitives/pdf-stream.ts +0 -306
- package/dist/ts/implementation/primitives/pdf-string.ts +0 -397
- package/dist/ts/implementation/structured-elements/grid/layout/grid-layouter.ts +0 -2027
- package/dist/ts/implementation/structured-elements/grid/pdf-grid-cell.ts +0 -1193
- package/dist/ts/implementation/structured-elements/grid/pdf-grid-column.ts +0 -206
- package/dist/ts/implementation/structured-elements/grid/pdf-grid-row.ts +0 -470
- package/dist/ts/implementation/structured-elements/grid/pdf-grid.ts +0 -853
- package/dist/ts/implementation/structured-elements/grid/styles/pdf-borders.ts +0 -240
- package/dist/ts/implementation/structured-elements/grid/styles/style.ts +0 -424
- package/dist/ts/implementation/structured-elements/tables/light-tables/enum.ts +0 -16
- package/dist/ts/interfaces/i-pdf-cache.ts +0 -23
- package/dist/ts/interfaces/i-pdf-changable.ts +0 -17
- package/dist/ts/interfaces/i-pdf-clonable.ts +0 -12
- package/dist/ts/interfaces/i-pdf-primitives.ts +0 -45
- package/dist/ts/interfaces/i-pdf-true-type-font.ts +0 -48
- package/dist/ts/interfaces/i-pdf-wrapper.ts +0 -13
- package/dist/ts/interfaces/i-pdf-writer.ts +0 -29
|
@@ -1,348 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* PdfPageLayerCollection.ts class for EJ2-PDF
|
|
3
|
-
*/
|
|
4
|
-
import { PdfPageBase } from './pdf-page-base';
|
|
5
|
-
import { PdfPage } from './pdf-page';
|
|
6
|
-
import { PdfDictionary } from './../primitives/pdf-dictionary';
|
|
7
|
-
import { PdfPageLayer } from './pdf-page-layer';
|
|
8
|
-
import { PdfCollection } from './../general/pdf-collection';
|
|
9
|
-
import { PdfReferenceHolder } from './../primitives/pdf-reference';
|
|
10
|
-
import { PdfArray } from './../primitives/pdf-array';
|
|
11
|
-
import { PdfCrossTable } from './../input-output/pdf-cross-table';
|
|
12
|
-
import { PdfStream } from './../primitives/pdf-stream';
|
|
13
|
-
import { IPdfPrimitive } from './../../interfaces/i-pdf-primitives';
|
|
14
|
-
/**
|
|
15
|
-
* The class provides methods and properties to handle the collections of `PdfPageLayer`.
|
|
16
|
-
*/
|
|
17
|
-
export class PdfPageLayerCollection extends PdfCollection {
|
|
18
|
-
// Fields
|
|
19
|
-
/**
|
|
20
|
-
* Parent `page`.
|
|
21
|
-
* @private
|
|
22
|
-
*/
|
|
23
|
-
private page : PdfPageBase;
|
|
24
|
-
/**
|
|
25
|
-
* Stores the `number of first level layers` in the document.
|
|
26
|
-
* @default 0
|
|
27
|
-
* @private
|
|
28
|
-
*/
|
|
29
|
-
private parentLayerCount : number = 0;
|
|
30
|
-
/**
|
|
31
|
-
* Indicates if `Sublayer` is present.
|
|
32
|
-
* @default false
|
|
33
|
-
* @private
|
|
34
|
-
*/
|
|
35
|
-
public sublayer : boolean = false;
|
|
36
|
-
/**
|
|
37
|
-
* Stores the `optional content dictionary`.
|
|
38
|
-
* @private
|
|
39
|
-
*/
|
|
40
|
-
public optionalContent : PdfDictionary = new PdfDictionary();
|
|
41
|
-
// Properties
|
|
42
|
-
/**
|
|
43
|
-
* Return the `PdfLayer` from the layer collection by index.
|
|
44
|
-
* @private
|
|
45
|
-
*/
|
|
46
|
-
public items(index : number) : PdfPageLayer
|
|
47
|
-
/**
|
|
48
|
-
* Stores the `layer` into layer collection with specified index.
|
|
49
|
-
* @private
|
|
50
|
-
*/
|
|
51
|
-
public items(index : number, value : PdfPageLayer) : void
|
|
52
|
-
public items(index : number, value ?: PdfPageLayer) : void|PdfPageLayer {
|
|
53
|
-
if (typeof index === 'number' && typeof value === 'undefined') {
|
|
54
|
-
let obj : Object = this.list[index];
|
|
55
|
-
return (obj as PdfPageLayer);
|
|
56
|
-
} else {
|
|
57
|
-
if (value == null) {
|
|
58
|
-
throw new Error('ArgumentNullException: layer');
|
|
59
|
-
}
|
|
60
|
-
if (value.page !== this.page) {
|
|
61
|
-
throw new Error('ArgumentException: The layer belongs to another page');
|
|
62
|
-
}
|
|
63
|
-
// // Add/remove the layer.
|
|
64
|
-
// let layer : PdfPageLayer = this.items(index);
|
|
65
|
-
// if (layer != null) {
|
|
66
|
-
// this.RemoveLayer(layer);
|
|
67
|
-
// }
|
|
68
|
-
// this.List[index] = value;
|
|
69
|
-
// this.InsertLayer(index, value);
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
// Constructors
|
|
73
|
-
/**
|
|
74
|
-
* Initializes a new instance of the `PdfPageLayerCollection` class
|
|
75
|
-
* @private
|
|
76
|
-
*/
|
|
77
|
-
public constructor()
|
|
78
|
-
/**
|
|
79
|
-
* Initializes a new instance of the `PdfPageLayerCollection` class
|
|
80
|
-
* @private
|
|
81
|
-
*/
|
|
82
|
-
public constructor(page : PdfPageBase)
|
|
83
|
-
public constructor(page? : PdfPageBase) {
|
|
84
|
-
super();
|
|
85
|
-
if (page instanceof PdfPageBase) {
|
|
86
|
-
// if (page == null) {
|
|
87
|
-
// throw new Error('ArgumentNullException:page');
|
|
88
|
-
// }
|
|
89
|
-
this.page = page;
|
|
90
|
-
let lPage : PdfPageBase = page;
|
|
91
|
-
// if (lPage != null) {
|
|
92
|
-
this.parseLayers(lPage);
|
|
93
|
-
// }
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
// Implementation
|
|
97
|
-
/**
|
|
98
|
-
* Creates a new `PdfPageLayer` and adds it to the end of the collection.
|
|
99
|
-
* @private
|
|
100
|
-
*/
|
|
101
|
-
public add() : PdfPageLayer
|
|
102
|
-
/**
|
|
103
|
-
* Creates a new `PdfPageLayer` and adds it to the end of the collection.
|
|
104
|
-
* @private
|
|
105
|
-
*/
|
|
106
|
-
public add(layerName : string, visible : boolean) : PdfPageLayer
|
|
107
|
-
/**
|
|
108
|
-
* Creates a new `PdfPageLayer` and adds it to the end of the collection.
|
|
109
|
-
* @private
|
|
110
|
-
*/
|
|
111
|
-
public add(layerName : string) : PdfPageLayer
|
|
112
|
-
/**
|
|
113
|
-
* Creates a new `PdfPageLayer` and adds it to the end of the collection.
|
|
114
|
-
* @private
|
|
115
|
-
*/
|
|
116
|
-
public add(layer : PdfPageLayer) : number
|
|
117
|
-
public add(firstArgument ?: PdfPageLayer|string, secondArgument ?: boolean) : PdfPageLayer|number {
|
|
118
|
-
if (typeof firstArgument === 'undefined') {
|
|
119
|
-
let layer : PdfPageLayer = new PdfPageLayer(this.page);
|
|
120
|
-
layer.name = '';
|
|
121
|
-
this.add(layer);
|
|
122
|
-
return layer;
|
|
123
|
-
} else if (firstArgument instanceof PdfPageLayer) {
|
|
124
|
-
// if (layer == null)
|
|
125
|
-
// throw new ArgumentNullException("layer");
|
|
126
|
-
// if (layer.Page != m_page)
|
|
127
|
-
// throw new ArgumentException("The layer belongs to another page");
|
|
128
|
-
let index : number = this.list.push(firstArgument);
|
|
129
|
-
// Register layer.
|
|
130
|
-
this.addLayer(index, firstArgument);
|
|
131
|
-
return index;
|
|
132
|
-
} else {
|
|
133
|
-
return 0;
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
/**
|
|
137
|
-
* Registers `layer` at the page.
|
|
138
|
-
* @private
|
|
139
|
-
*/
|
|
140
|
-
private addLayer(index : number, layer : PdfPageLayer) : void {
|
|
141
|
-
let reference : PdfReferenceHolder = new PdfReferenceHolder(layer);
|
|
142
|
-
this.page.contents.add(reference);
|
|
143
|
-
}
|
|
144
|
-
// private RemoveLayer(layer : PdfPageLayer) : void {
|
|
145
|
-
// if (layer == null) {
|
|
146
|
-
// throw new Error('ArgumentNullException:layer');
|
|
147
|
-
// }
|
|
148
|
-
// let reference : PdfReferenceHolder = new PdfReferenceHolder(layer);
|
|
149
|
-
// if (this.page != null) {
|
|
150
|
-
// this.page.Contents.Remove(reference);
|
|
151
|
-
// }
|
|
152
|
-
// }
|
|
153
|
-
/**
|
|
154
|
-
* Inserts `PdfPageLayer` into the collection at specified index.
|
|
155
|
-
* @private
|
|
156
|
-
*/
|
|
157
|
-
public insert(index : number, layer : PdfPageLayer) : void {
|
|
158
|
-
// if (index < 0)
|
|
159
|
-
// throw new ArgumentOutOfRangeException("index", "Value can not be less 0");
|
|
160
|
-
// if (layer == null)
|
|
161
|
-
// throw new ArgumentNullException("layer");
|
|
162
|
-
// if (layer.Page != m_page)
|
|
163
|
-
// throw new ArgumentException("The layer belongs to another page");
|
|
164
|
-
let list : Object[] = [];
|
|
165
|
-
let length : number = this.list.length;
|
|
166
|
-
for (let i : number = index; i < length; i++) {
|
|
167
|
-
list.push(this.list.pop());
|
|
168
|
-
}
|
|
169
|
-
this.list.push(layer);
|
|
170
|
-
for (let i : number = 0; i < list.length; i++) {
|
|
171
|
-
this.list.push(list[i]);
|
|
172
|
-
}
|
|
173
|
-
// Register layer.
|
|
174
|
-
this.insertLayer(index, layer);
|
|
175
|
-
}
|
|
176
|
-
/**
|
|
177
|
-
* Registers layer at the page.
|
|
178
|
-
* @private
|
|
179
|
-
*/
|
|
180
|
-
private insertLayer(index : number, layer : PdfPageLayer) : void {
|
|
181
|
-
if (layer == null) {
|
|
182
|
-
throw new Error('ArgumentNullException:layer');
|
|
183
|
-
}
|
|
184
|
-
let reference : PdfReferenceHolder = new PdfReferenceHolder(layer);
|
|
185
|
-
this.page.contents.insert(index, reference);
|
|
186
|
-
}
|
|
187
|
-
// tslint:disable
|
|
188
|
-
/**
|
|
189
|
-
* `Parses the layers`.
|
|
190
|
-
* @private
|
|
191
|
-
*/
|
|
192
|
-
private parseLayers(loadedPage : PdfPageBase) : void {// tslint:enable
|
|
193
|
-
// if (loadedPage == null) {
|
|
194
|
-
// throw new Error('ArgumentNullException:loadedPage');
|
|
195
|
-
// }
|
|
196
|
-
let contents : PdfArray = this.page.contents;
|
|
197
|
-
let resource : PdfDictionary = this.page.getResources();
|
|
198
|
-
let crossTable : PdfCrossTable = null;
|
|
199
|
-
let ocproperties : PdfDictionary = null;
|
|
200
|
-
let propertie : PdfDictionary = null;
|
|
201
|
-
let isLayerAdded : boolean = false;
|
|
202
|
-
// if (loadedPage instanceof PdfPage) {
|
|
203
|
-
crossTable = (loadedPage as PdfPage).crossTable;
|
|
204
|
-
// } else {
|
|
205
|
-
// crossTable = (loadedPage as PdfLoadedPage).CrossTable;
|
|
206
|
-
// Propertie = PdfCrossTable.Dereference(Resource[DictionaryProperties.Properties]) as PdfDictionary;
|
|
207
|
-
// ocproperties = PdfCrossTable.Dereference((loadedPage as PdfLoadedPage).
|
|
208
|
-
// Document.Catalog[DictionaryProperties.OCProperties]) as PdfDictionary;
|
|
209
|
-
// }
|
|
210
|
-
let saveStream : PdfStream = new PdfStream();
|
|
211
|
-
let restoreStream : PdfStream = new PdfStream();
|
|
212
|
-
let saveState : string = 'q';
|
|
213
|
-
let newLine : string = '\n';
|
|
214
|
-
let restoreState : string = 'Q';
|
|
215
|
-
// for (let index : number = 0; index < contents.Items.length; index++) {
|
|
216
|
-
// let obj : IPdfPrimitive = contents[index];
|
|
217
|
-
// let stream : PdfStream = crossTable.GetObject(obj) as PdfStream;
|
|
218
|
-
|
|
219
|
-
// if (stream == null)
|
|
220
|
-
// throw new PdfDocumentException("Invalid contents array.");
|
|
221
|
-
|
|
222
|
-
// // if (stream.Compress)
|
|
223
|
-
// {
|
|
224
|
-
// if (!loadedPage.Imported)
|
|
225
|
-
// stream.Decompress();
|
|
226
|
-
// }
|
|
227
|
-
|
|
228
|
-
// byte[] contentId = stream.Data;
|
|
229
|
-
// string str = PdfString.ByteToString(contentId);
|
|
230
|
-
|
|
231
|
-
// if (!loadedPage.Imported && (contents.Count == 1) && ((stream.Data[stream.Data.Length - 2] ==
|
|
232
|
-
// RestoreState) || (stream.Data[stream.Data.Length - 1] == RestoreState)))
|
|
233
|
-
// {
|
|
234
|
-
// byte[] content = stream.Data;
|
|
235
|
-
// byte[] data = new byte[content.Length + 4];
|
|
236
|
-
// data[0] = SaveState;
|
|
237
|
-
// data[1] = NewLine;
|
|
238
|
-
// content.CopyTo(data, 2);
|
|
239
|
-
// data[data.Length - 2] = NewLine;
|
|
240
|
-
// data[data.Length - 1] = RestoreState;
|
|
241
|
-
// stream.Data = data;
|
|
242
|
-
// }
|
|
243
|
-
|
|
244
|
-
// if (ocproperties != null)
|
|
245
|
-
// {
|
|
246
|
-
// if (Propertie != null)
|
|
247
|
-
// {
|
|
248
|
-
// foreach (KeyValuePair<PdfName, IPdfPrimitive> prop in Propertie.Items)
|
|
249
|
-
// {
|
|
250
|
-
// String Key = prop.Key.ToString();
|
|
251
|
-
// PdfReferenceHolder refh = prop.Value as PdfReferenceHolder;
|
|
252
|
-
// PdfDictionary Dict = null;
|
|
253
|
-
// if (refh != null)
|
|
254
|
-
// {
|
|
255
|
-
// Dict = refh.Object as PdfDictionary;
|
|
256
|
-
// }
|
|
257
|
-
// else
|
|
258
|
-
// {
|
|
259
|
-
// Dict = prop.Value as PdfDictionary;
|
|
260
|
-
// }
|
|
261
|
-
// PdfDictionary m_usage = PdfCrossTable.Dereference(Dict[DictionaryProperties.Usage]) as PdfDictionary;
|
|
262
|
-
// if (m_usage != null)
|
|
263
|
-
// {
|
|
264
|
-
|
|
265
|
-
// if (str.Contains(Key))
|
|
266
|
-
// {
|
|
267
|
-
// PdfPageLayer layer = new PdfPageLayer(loadedPage, stream);
|
|
268
|
-
// PdfDictionary printoption = PdfCrossTable.Dereference(m_usage[DictionaryProperties.Print])
|
|
269
|
-
// as PdfDictionary;
|
|
270
|
-
// if (printoption != null)
|
|
271
|
-
// {
|
|
272
|
-
// layer.m_printOption = printoption;
|
|
273
|
-
|
|
274
|
-
// foreach (KeyValuePair<PdfName, IPdfPrimitive> value in printoption.Items)
|
|
275
|
-
// {
|
|
276
|
-
// if (value.Key.Value.Equals(DictionaryProperties.PrintState))
|
|
277
|
-
// {
|
|
278
|
-
// string printState = (value.Value as PdfName).Value;
|
|
279
|
-
// if (printState.Equals(DictionaryProperties.OCGON))
|
|
280
|
-
// {
|
|
281
|
-
// layer.PrintState = PdfPrintState.AlwaysPrint;
|
|
282
|
-
// break;
|
|
283
|
-
// }
|
|
284
|
-
// else
|
|
285
|
-
// {
|
|
286
|
-
// layer.PrintState = PdfPrintState.NeverPrint;
|
|
287
|
-
// break;
|
|
288
|
-
// }
|
|
289
|
-
// }
|
|
290
|
-
// }
|
|
291
|
-
// }
|
|
292
|
-
// PdfString layerName = PdfCrossTable.Dereference(Dict[DictionaryProperties.Name]) as PdfString;
|
|
293
|
-
// layer.Name = layerName.Value;
|
|
294
|
-
// List.add(layer);
|
|
295
|
-
// isLayerAdded = true;
|
|
296
|
-
// if(!str.Contains("EMC"))
|
|
297
|
-
// break;
|
|
298
|
-
// }
|
|
299
|
-
// }
|
|
300
|
-
// else
|
|
301
|
-
// {
|
|
302
|
-
|
|
303
|
-
// if (str.Contains(Key))
|
|
304
|
-
// {
|
|
305
|
-
// PdfPageLayer layer = new PdfPageLayer(loadedPage, stream);
|
|
306
|
-
// List.add(layer);
|
|
307
|
-
// if(Dict.ContainsKey(DictionaryProperties.Name))
|
|
308
|
-
// {
|
|
309
|
-
// PdfString layerName = PdfCrossTable.Dereference(Dict[DictionaryProperties.Name]) as PdfString;
|
|
310
|
-
// layer.Name = layerName.Value;
|
|
311
|
-
// }
|
|
312
|
-
// isLayerAdded = true;
|
|
313
|
-
// break;
|
|
314
|
-
// }
|
|
315
|
-
// }
|
|
316
|
-
// }
|
|
317
|
-
// }
|
|
318
|
-
|
|
319
|
-
// }
|
|
320
|
-
// if (!isLayerAdded)
|
|
321
|
-
// {
|
|
322
|
-
// PdfPageLayer layer = new PdfPageLayer(loadedPage, stream);
|
|
323
|
-
// List.add(layer);
|
|
324
|
-
// }
|
|
325
|
-
// else
|
|
326
|
-
// isLayerAdded = false;
|
|
327
|
-
// }
|
|
328
|
-
let saveData : string[] = [];
|
|
329
|
-
saveData.push(saveState);
|
|
330
|
-
saveStream.data = saveData;
|
|
331
|
-
contents.insert(0, new PdfReferenceHolder(saveStream));
|
|
332
|
-
saveData = [];
|
|
333
|
-
saveData.push(restoreState);
|
|
334
|
-
restoreStream.data = saveData;
|
|
335
|
-
contents.insert(contents.count, new PdfReferenceHolder(restoreStream));
|
|
336
|
-
}
|
|
337
|
-
/**
|
|
338
|
-
* Returns `index of` the `PdfPageLayer` in the collection if exists, -1 otherwise.
|
|
339
|
-
* @private
|
|
340
|
-
*/
|
|
341
|
-
public indexOf(layer : PdfPageLayer) : number {
|
|
342
|
-
if (layer == null) {
|
|
343
|
-
throw new Error('ArgumentNullException: layer');
|
|
344
|
-
}
|
|
345
|
-
let index : number = this.list.indexOf(layer);
|
|
346
|
-
return index;
|
|
347
|
-
}
|
|
348
|
-
}
|
|
@@ -1,271 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* PdfPageLayer.ts class for EJ2-PDF
|
|
3
|
-
*/
|
|
4
|
-
import { IPdfWrapper } from './../../interfaces/i-pdf-wrapper';
|
|
5
|
-
import { IPdfPrimitive } from './../../interfaces/i-pdf-primitives';
|
|
6
|
-
import { PdfPageBase } from './pdf-page-base';
|
|
7
|
-
import { PdfStream } from './../primitives/pdf-stream';
|
|
8
|
-
import { PdfDictionary } from './../primitives/pdf-dictionary';
|
|
9
|
-
import { PdfGraphics, GetResourceEventHandler } from './../graphics/pdf-graphics';
|
|
10
|
-
import { PdfPageLayerCollection } from './pdf-page-layer-collection';
|
|
11
|
-
import { DictionaryProperties } from './../input-output/pdf-dictionary-properties';
|
|
12
|
-
import { PdfArray } from './../primitives/pdf-array';
|
|
13
|
-
import { PdfPage } from './pdf-page';
|
|
14
|
-
import { RectangleF } from './../drawing/pdf-drawing';
|
|
15
|
-
import { PdfSectionCollection } from './../pages/pdf-section-collection';
|
|
16
|
-
import { PdfColorSpace } from './../graphics/enum';
|
|
17
|
-
import { PdfMargins } from './../graphics/pdf-margins';
|
|
18
|
-
/**
|
|
19
|
-
* The `PdfPageLayer` used to create layers in PDF document.
|
|
20
|
-
* @private
|
|
21
|
-
*/
|
|
22
|
-
export class PdfPageLayer implements IPdfWrapper {
|
|
23
|
-
// Fields
|
|
24
|
-
/**
|
|
25
|
-
* Parent `page` of the layer.
|
|
26
|
-
* @private
|
|
27
|
-
*/
|
|
28
|
-
private pdfPage : PdfPageBase;
|
|
29
|
-
/**
|
|
30
|
-
* `Graphics context` of the layer.
|
|
31
|
-
* @private
|
|
32
|
-
*/
|
|
33
|
-
private pdfGraphics : PdfGraphics;
|
|
34
|
-
/**
|
|
35
|
-
* `Content` of the object.
|
|
36
|
-
* @private
|
|
37
|
-
*/
|
|
38
|
-
private content : PdfStream;
|
|
39
|
-
/**
|
|
40
|
-
* Indicates whether the layer should `clip page template` dimensions or not.
|
|
41
|
-
* @private
|
|
42
|
-
*/
|
|
43
|
-
private clipPageTemplates : boolean;
|
|
44
|
-
// private bSaved : boolean;
|
|
45
|
-
/**
|
|
46
|
-
* Local Variable to store the `color space` of the document.
|
|
47
|
-
* @private
|
|
48
|
-
*/
|
|
49
|
-
private pdfColorSpace : PdfColorSpace = PdfColorSpace.Rgb;
|
|
50
|
-
/**
|
|
51
|
-
* Local Variable to store the `layer id`.
|
|
52
|
-
* @private
|
|
53
|
-
*/
|
|
54
|
-
private layerid : string;
|
|
55
|
-
/**
|
|
56
|
-
* Local Variable to store the `name`.
|
|
57
|
-
* @private
|
|
58
|
-
*/
|
|
59
|
-
private layerName : string;
|
|
60
|
-
/**
|
|
61
|
-
* Local Variable to set `visibility`.
|
|
62
|
-
* @default true
|
|
63
|
-
* @private
|
|
64
|
-
*/
|
|
65
|
-
private isVisible : boolean = true;
|
|
66
|
-
/**
|
|
67
|
-
* Collection of the `layers` of the page.
|
|
68
|
-
* @private
|
|
69
|
-
*/
|
|
70
|
-
private layer : PdfPageLayerCollection;
|
|
71
|
-
/**
|
|
72
|
-
* Indicates if `Sublayer` is present.
|
|
73
|
-
* @default false
|
|
74
|
-
* @private
|
|
75
|
-
*/
|
|
76
|
-
public sublayer : boolean = false;
|
|
77
|
-
/**
|
|
78
|
-
* Local variable to store `length` of the graphics.
|
|
79
|
-
* @default 0
|
|
80
|
-
* @private
|
|
81
|
-
*/
|
|
82
|
-
public contentLength : number = 0;
|
|
83
|
-
/**
|
|
84
|
-
* Stores the `print Option` dictionary.
|
|
85
|
-
* @private
|
|
86
|
-
*/
|
|
87
|
-
public printOption : PdfDictionary;
|
|
88
|
-
/**
|
|
89
|
-
* Stores the `usage` dictionary.
|
|
90
|
-
* @private
|
|
91
|
-
*/
|
|
92
|
-
public usage : PdfDictionary;
|
|
93
|
-
/**
|
|
94
|
-
* Instance for `PdfDictionaryProperties` Class.
|
|
95
|
-
* @private
|
|
96
|
-
*/
|
|
97
|
-
private dictionaryProperties : DictionaryProperties = new DictionaryProperties();
|
|
98
|
-
// Properties
|
|
99
|
-
/**
|
|
100
|
-
* Get or set the `color space`.
|
|
101
|
-
* @private
|
|
102
|
-
*/
|
|
103
|
-
public get colorSpace() : PdfColorSpace {
|
|
104
|
-
return this.pdfColorSpace;
|
|
105
|
-
}
|
|
106
|
-
public set colorSpace(value : PdfColorSpace) {
|
|
107
|
-
this.pdfColorSpace = value;
|
|
108
|
-
}
|
|
109
|
-
/**
|
|
110
|
-
* Gets parent `page` of the layer.
|
|
111
|
-
* @private
|
|
112
|
-
*/
|
|
113
|
-
public get page() : PdfPageBase {
|
|
114
|
-
return this.pdfPage;
|
|
115
|
-
}
|
|
116
|
-
/**
|
|
117
|
-
* Gets and Sets the `id of the layer`.
|
|
118
|
-
* @private
|
|
119
|
-
*/
|
|
120
|
-
public get layerId() : string {
|
|
121
|
-
return this.layerid;
|
|
122
|
-
}
|
|
123
|
-
public set layerId(value : string) {
|
|
124
|
-
this.layerid = value;
|
|
125
|
-
}
|
|
126
|
-
/**
|
|
127
|
-
* Gets or sets the `name` of the layer.
|
|
128
|
-
* @private
|
|
129
|
-
*/
|
|
130
|
-
public get name() : string {
|
|
131
|
-
return this.layerName;
|
|
132
|
-
}
|
|
133
|
-
public set name(value : string) {
|
|
134
|
-
this.layerName = value;
|
|
135
|
-
}
|
|
136
|
-
/**
|
|
137
|
-
* Gets or sets the `visibility` of the layer.
|
|
138
|
-
* @private
|
|
139
|
-
*/
|
|
140
|
-
public get visible() : boolean {
|
|
141
|
-
return this.isVisible;
|
|
142
|
-
}
|
|
143
|
-
public set visible(value : boolean) {
|
|
144
|
-
this.isVisible = value;
|
|
145
|
-
}
|
|
146
|
-
/**
|
|
147
|
-
* Gets `Graphics` context of the layer, used to draw various graphical content on layer.
|
|
148
|
-
* @private
|
|
149
|
-
*/
|
|
150
|
-
public get graphics() : PdfGraphics {
|
|
151
|
-
if ((this.pdfGraphics == null)) {
|
|
152
|
-
this.initializeGraphics(this.page);
|
|
153
|
-
}
|
|
154
|
-
return this.pdfGraphics;
|
|
155
|
-
}
|
|
156
|
-
/**
|
|
157
|
-
* Gets the collection of `PdfPageLayer`, this collection handle by the class 'PdfPageLayerCollection'.
|
|
158
|
-
* @private
|
|
159
|
-
*/
|
|
160
|
-
public get layers() : PdfPageLayerCollection {
|
|
161
|
-
if (this.layer == null) {
|
|
162
|
-
this.layer = new PdfPageLayerCollection(this.page);
|
|
163
|
-
this.layer.sublayer = true;
|
|
164
|
-
return this.layer;
|
|
165
|
-
} else {
|
|
166
|
-
return this.layer;
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
// Constructors
|
|
170
|
-
/**
|
|
171
|
-
* Initializes a new instance of the `PdfPageLayer` class with specified PDF page.
|
|
172
|
-
* @private
|
|
173
|
-
*/
|
|
174
|
-
public constructor(page : PdfPageBase)
|
|
175
|
-
/**
|
|
176
|
-
* Initializes a new instance of the `PdfPageLayer` class with specified PDF page and PDF stream.
|
|
177
|
-
* @private
|
|
178
|
-
*/
|
|
179
|
-
public constructor(page : PdfPageBase, stream : PdfStream)
|
|
180
|
-
/**
|
|
181
|
-
* Initializes a new instance of the `PdfPageLayer` class.
|
|
182
|
-
* @private
|
|
183
|
-
*/
|
|
184
|
-
public constructor(page : PdfPageBase, clipPageTemplates : boolean)
|
|
185
|
-
public constructor(page : PdfPageBase, streamClipPageTemplates ?: boolean|PdfStream) {
|
|
186
|
-
if (page === null) {
|
|
187
|
-
throw new Error('ArgumentNullException:page');
|
|
188
|
-
}
|
|
189
|
-
this.pdfPage = page;
|
|
190
|
-
this.clipPageTemplates = true;
|
|
191
|
-
if (typeof streamClipPageTemplates === 'undefined') {
|
|
192
|
-
this.content = new PdfStream();
|
|
193
|
-
} else if (streamClipPageTemplates instanceof PdfStream || streamClipPageTemplates === null) {
|
|
194
|
-
if (streamClipPageTemplates === null) {
|
|
195
|
-
throw new Error('ArgumentNullException:stream');
|
|
196
|
-
}
|
|
197
|
-
this.content = streamClipPageTemplates as PdfStream;
|
|
198
|
-
} else {
|
|
199
|
-
this.content = new PdfStream();
|
|
200
|
-
this.clipPageTemplates = streamClipPageTemplates;
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
// Implementation
|
|
204
|
-
/**
|
|
205
|
-
* `Adds` a new PDF Page layer.
|
|
206
|
-
* @private
|
|
207
|
-
*/
|
|
208
|
-
public add() : PdfPageLayer {
|
|
209
|
-
let layer : PdfPageLayer = new PdfPageLayer(this.pdfPage);
|
|
210
|
-
layer.name = '';
|
|
211
|
-
return layer;
|
|
212
|
-
}
|
|
213
|
-
/**
|
|
214
|
-
* Returns a value indicating the `sign` of a single-precision floating-point number.
|
|
215
|
-
* @private
|
|
216
|
-
*/
|
|
217
|
-
private sign(number : number) : number {
|
|
218
|
-
if (number === 0) {
|
|
219
|
-
return 0;
|
|
220
|
-
} else if (number > 0) {
|
|
221
|
-
return 1;
|
|
222
|
-
} else {
|
|
223
|
-
return -1;
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
/**
|
|
227
|
-
* `Initializes Graphics context` of the layer.
|
|
228
|
-
* @private
|
|
229
|
-
*/
|
|
230
|
-
private initializeGraphics(page : PdfPageBase) : void {
|
|
231
|
-
let oPage : PdfPage = page as PdfPage;
|
|
232
|
-
let gr : GetResourceEventHandler = new GetResourceEventHandler(this.page);
|
|
233
|
-
let cropBox : PdfArray = null;
|
|
234
|
-
this.pdfGraphics = new PdfGraphics(page.size, gr, this.content);
|
|
235
|
-
this.pdfGraphics.mediaBoxUpperRightBound = 0;
|
|
236
|
-
if (oPage != null) {
|
|
237
|
-
let sc : PdfSectionCollection = oPage.section.parent;
|
|
238
|
-
if (sc != null) {
|
|
239
|
-
this.pdfGraphics.colorSpace = sc.document.colorSpace;
|
|
240
|
-
this.colorSpace = sc.document.colorSpace;
|
|
241
|
-
}
|
|
242
|
-
}
|
|
243
|
-
// Transform coordinates to the left/top and activate margins.
|
|
244
|
-
let isSame : boolean = (this.sign(page.origin.y) === this.sign(page.origin.x));
|
|
245
|
-
// if (page != null) {
|
|
246
|
-
if (page.origin.x >= 0 && page.origin.y >= 0 || !(isSame)) {
|
|
247
|
-
this.pdfGraphics.initializeCoordinates();
|
|
248
|
-
} else {
|
|
249
|
-
// this.m_graphics.InitializeCoordinates(page);
|
|
250
|
-
}
|
|
251
|
-
let clipRect : RectangleF = oPage.section.getActualBounds(oPage, true);
|
|
252
|
-
let margins : PdfMargins = oPage.section.pageSettings.margins;
|
|
253
|
-
if (this.clipPageTemplates) {
|
|
254
|
-
if (page.origin.x >= 0 && page.origin.y >= 0) {
|
|
255
|
-
this.pdfGraphics.clipTranslateMargins(clipRect);
|
|
256
|
-
}
|
|
257
|
-
} else {
|
|
258
|
-
this.graphics.clipTranslateMargins(clipRect.x, clipRect.y, margins.left, margins.top, margins.right, margins.bottom);
|
|
259
|
-
}
|
|
260
|
-
this.pdfGraphics.setLayer(this);
|
|
261
|
-
// this.bSaved = false;
|
|
262
|
-
}
|
|
263
|
-
// IPdfWrapper Members
|
|
264
|
-
/**
|
|
265
|
-
* Gets the wrapped `element`.
|
|
266
|
-
* @private
|
|
267
|
-
*/
|
|
268
|
-
public get element() : IPdfPrimitive {
|
|
269
|
-
return this.content;
|
|
270
|
-
}
|
|
271
|
-
}
|