@syncfusion/ej2-pdf-export 21.2.8 → 22.1.34
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/.eslintrc.json +1 -0
- 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 +14 -11
- package/dist/es6/ej2-pdf-export.es2015.js.map +1 -1
- package/dist/es6/ej2-pdf-export.es5.js +14 -11
- 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/dist/ts/implementation/actions/action.ts +76 -0
- package/dist/ts/implementation/actions/uri-action.ts +52 -0
- package/dist/ts/implementation/annotations/action-link-annotation.ts +43 -0
- package/dist/ts/implementation/annotations/annotation-collection.ts +159 -0
- package/dist/ts/implementation/annotations/annotation.ts +241 -0
- package/dist/ts/implementation/annotations/document-link-annotation.ts +118 -0
- package/dist/ts/implementation/annotations/link-annotation.ts +32 -0
- package/dist/ts/implementation/annotations/pdf-text-web-link.ts +265 -0
- package/dist/ts/implementation/annotations/uri-annotation.ts +86 -0
- package/dist/ts/implementation/collections/dictionary.ts +150 -0
- package/dist/ts/implementation/collections/object-object-pair/dictionary.ts +125 -0
- package/dist/ts/implementation/collections/utils.ts +38 -0
- package/dist/ts/implementation/document/automatic-fields/automatic-field-info-collection.ts +39 -0
- package/dist/ts/implementation/document/automatic-fields/automatic-field-info.ts +108 -0
- package/dist/ts/implementation/document/automatic-fields/automatic-field.ts +127 -0
- package/dist/ts/implementation/document/automatic-fields/composite-field.ts +76 -0
- package/dist/ts/implementation/document/automatic-fields/multiple-value-field.ts +37 -0
- package/dist/ts/implementation/document/automatic-fields/page-count-field.ts +75 -0
- package/dist/ts/implementation/document/automatic-fields/pdf-numbers-convertor.ts +157 -0
- package/dist/ts/implementation/document/automatic-fields/pdf-page-number-field.ts +82 -0
- package/dist/ts/implementation/document/automatic-fields/pdf-template-value-pair.ts +60 -0
- package/dist/ts/implementation/document/automatic-fields/single-value-field.ts +48 -0
- package/dist/ts/implementation/document/pdf-catalog.ts +52 -0
- package/dist/ts/implementation/document/pdf-document-base.ts +166 -0
- package/dist/ts/implementation/document/pdf-document-template.ts +310 -0
- package/dist/ts/implementation/document/pdf-document.ts +342 -0
- package/dist/ts/implementation/drawing/pdf-drawing.ts +218 -0
- package/dist/ts/implementation/general/enum.ts +21 -0
- package/dist/ts/implementation/general/functions/pdf-function.ts +66 -0
- package/dist/ts/implementation/general/functions/pdf-sampled-function.ts +62 -0
- package/dist/ts/implementation/general/pdf-cache-collection.ts +97 -0
- package/dist/ts/implementation/general/pdf-collection.ts +41 -0
- package/dist/ts/implementation/general/pdf-destination.ts +170 -0
- package/dist/ts/implementation/graphics/brushes/enum.ts +237 -0
- package/dist/ts/implementation/graphics/brushes/pdf-blend.ts +294 -0
- package/dist/ts/implementation/graphics/brushes/pdf-brush.ts +68 -0
- package/dist/ts/implementation/graphics/brushes/pdf-brushes.ts +2438 -0
- package/dist/ts/implementation/graphics/brushes/pdf-color-blend.ts +295 -0
- package/dist/ts/implementation/graphics/brushes/pdf-gradient-brush.ts +311 -0
- package/dist/ts/implementation/graphics/brushes/pdf-linear-gradient-brush.ts +406 -0
- package/dist/ts/implementation/graphics/brushes/pdf-radial-gradient-brush.ts +290 -0
- package/dist/ts/implementation/graphics/brushes/pdf-solid-brush.ts +107 -0
- package/dist/ts/implementation/graphics/brushes/pdf-tiling-brush.ts +304 -0
- package/dist/ts/implementation/graphics/constants.ts +31 -0
- package/dist/ts/implementation/graphics/enum.ts +413 -0
- package/dist/ts/implementation/graphics/figures/arc.ts +133 -0
- package/dist/ts/implementation/graphics/figures/base/draw-element.ts +59 -0
- package/dist/ts/implementation/graphics/figures/base/element-layouter.ts +260 -0
- package/dist/ts/implementation/graphics/figures/base/fill-element.ts +72 -0
- package/dist/ts/implementation/graphics/figures/base/graphics-element.ts +34 -0
- package/dist/ts/implementation/graphics/figures/base/pdf-shape-element.ts +69 -0
- package/dist/ts/implementation/graphics/figures/base/shape-layouter.ts +276 -0
- package/dist/ts/implementation/graphics/figures/base/text-layouter.ts +205 -0
- package/dist/ts/implementation/graphics/figures/ellipse-part.ts +76 -0
- package/dist/ts/implementation/graphics/figures/enum.ts +80 -0
- package/dist/ts/implementation/graphics/figures/layout-element.ts +132 -0
- package/dist/ts/implementation/graphics/figures/path.ts +646 -0
- package/dist/ts/implementation/graphics/figures/pdf-template.ts +205 -0
- package/dist/ts/implementation/graphics/figures/rectangle-area.ts +108 -0
- package/dist/ts/implementation/graphics/figures/text-element.ts +445 -0
- package/dist/ts/implementation/graphics/fonts/enum.ts +385 -0
- package/dist/ts/implementation/graphics/fonts/pdf-font-metrics.ts +248 -0
- package/dist/ts/implementation/graphics/fonts/pdf-font.ts +316 -0
- package/dist/ts/implementation/graphics/fonts/pdf-standard-font-metrics-factory.ts +606 -0
- package/dist/ts/implementation/graphics/fonts/pdf-standard-font.ts +243 -0
- package/dist/ts/implementation/graphics/fonts/pdf-string-format.ts +474 -0
- package/dist/ts/implementation/graphics/fonts/pdf-true-type-font.ts +165 -0
- package/dist/ts/implementation/graphics/fonts/rtl/rtl-bidirectional.ts +958 -0
- package/dist/ts/implementation/graphics/fonts/rtl/rtl-text-shape.ts +374 -0
- package/dist/ts/implementation/graphics/fonts/rtl-renderer.ts +255 -0
- package/dist/ts/implementation/graphics/fonts/string-layouter.ts +617 -0
- package/dist/ts/implementation/graphics/fonts/string-tokenizer.ts +275 -0
- package/dist/ts/implementation/graphics/fonts/ttf-OS2-Table.ts +206 -0
- package/dist/ts/implementation/graphics/fonts/ttf-apple-cmap-sub-table.ts +18 -0
- package/dist/ts/implementation/graphics/fonts/ttf-cmap-sub-table.ts +18 -0
- package/dist/ts/implementation/graphics/fonts/ttf-cmap-table.ts +14 -0
- package/dist/ts/implementation/graphics/fonts/ttf-glyph-header.ts +26 -0
- package/dist/ts/implementation/graphics/fonts/ttf-glyph-info.ts +35 -0
- package/dist/ts/implementation/graphics/fonts/ttf-head-table.ts +94 -0
- package/dist/ts/implementation/graphics/fonts/ttf-horizontal-header-table.ts +56 -0
- package/dist/ts/implementation/graphics/fonts/ttf-loca-table.ts +10 -0
- package/dist/ts/implementation/graphics/fonts/ttf-long-hor-metric.ts +14 -0
- package/dist/ts/implementation/graphics/fonts/ttf-metrics.ts +106 -0
- package/dist/ts/implementation/graphics/fonts/ttf-microsoft-cmap-sub-table.ts +58 -0
- package/dist/ts/implementation/graphics/fonts/ttf-name-record.ts +33 -0
- package/dist/ts/implementation/graphics/fonts/ttf-name-table.ts +22 -0
- package/dist/ts/implementation/graphics/fonts/ttf-post-table.ts +42 -0
- package/dist/ts/implementation/graphics/fonts/ttf-reader.ts +1254 -0
- package/dist/ts/implementation/graphics/fonts/ttf-table-info.ts +26 -0
- package/dist/ts/implementation/graphics/fonts/ttf-trimmed-cmap-sub-table.ts +26 -0
- package/dist/ts/implementation/graphics/fonts/unicode-true-type-font.ts +577 -0
- package/dist/ts/implementation/graphics/images/byte-array.ts +137 -0
- package/dist/ts/implementation/graphics/images/image-decoder.ts +439 -0
- package/dist/ts/implementation/graphics/images/pdf-bitmap.ts +110 -0
- package/dist/ts/implementation/graphics/images/pdf-image.ts +132 -0
- package/dist/ts/implementation/graphics/pdf-color.ts +478 -0
- package/dist/ts/implementation/graphics/pdf-graphics.ts +2424 -0
- package/dist/ts/implementation/graphics/pdf-margins.ts +124 -0
- package/dist/ts/implementation/graphics/pdf-pen.ts +370 -0
- package/dist/ts/implementation/graphics/pdf-resources.ts +300 -0
- package/dist/ts/implementation/graphics/pdf-transformation-matrix.ts +246 -0
- package/dist/ts/implementation/graphics/pdf-transparency.ts +93 -0
- package/dist/ts/implementation/graphics/unit-convertor.ts +96 -0
- package/dist/ts/implementation/input-output/big-endian-writer.ts +121 -0
- package/dist/ts/implementation/input-output/cross-table.ts +21 -0
- package/dist/ts/implementation/input-output/enum.ts +16 -0
- package/dist/ts/implementation/input-output/pdf-cross-table.ts +524 -0
- package/dist/ts/implementation/input-output/pdf-dictionary-properties.ts +515 -0
- package/dist/ts/implementation/input-output/pdf-main-object-collection.ts +194 -0
- package/dist/ts/implementation/input-output/pdf-operators.ts +363 -0
- package/dist/ts/implementation/input-output/pdf-stream-writer.ts +681 -0
- package/dist/ts/implementation/input-output/pdf-writer.ts +88 -0
- package/dist/ts/implementation/pages/enum.ts +201 -0
- package/dist/ts/implementation/pages/page-added-event-arguments.ts +39 -0
- package/dist/ts/implementation/pages/pdf-document-page-collection.ts +180 -0
- package/dist/ts/implementation/pages/pdf-page-base.ts +181 -0
- package/dist/ts/implementation/pages/pdf-page-layer-collection.ts +348 -0
- package/dist/ts/implementation/pages/pdf-page-layer.ts +271 -0
- package/dist/ts/implementation/pages/pdf-page-settings.ts +192 -0
- package/dist/ts/implementation/pages/pdf-page-size.ts +162 -0
- package/dist/ts/implementation/pages/pdf-page-template-element.ts +659 -0
- package/dist/ts/implementation/pages/pdf-page.ts +235 -0
- package/dist/ts/implementation/pages/pdf-section-collection.ts +187 -0
- package/dist/ts/implementation/pages/pdf-section-page-collection.ts +61 -0
- package/dist/ts/implementation/pages/pdf-section-templates.ts +96 -0
- package/dist/ts/implementation/pages/pdf-section.ts +644 -0
- package/dist/ts/implementation/primitives/pdf-array.ts +386 -0
- package/dist/ts/implementation/primitives/pdf-boolean.ts +119 -0
- package/dist/ts/implementation/primitives/pdf-dictionary.ts +513 -0
- package/dist/ts/implementation/primitives/pdf-name.ts +218 -0
- package/dist/ts/implementation/primitives/pdf-number.ts +165 -0
- package/dist/ts/implementation/primitives/pdf-reference.ts +430 -0
- package/dist/ts/implementation/primitives/pdf-stream.ts +336 -0
- package/dist/ts/implementation/primitives/pdf-string.ts +397 -0
- package/dist/ts/implementation/structured-elements/grid/layout/grid-layouter.ts +2027 -0
- package/dist/ts/implementation/structured-elements/grid/pdf-grid-cell.ts +1193 -0
- package/dist/ts/implementation/structured-elements/grid/pdf-grid-column.ts +206 -0
- package/dist/ts/implementation/structured-elements/grid/pdf-grid-row.ts +470 -0
- package/dist/ts/implementation/structured-elements/grid/pdf-grid.ts +853 -0
- package/dist/ts/implementation/structured-elements/grid/styles/pdf-borders.ts +240 -0
- package/dist/ts/implementation/structured-elements/grid/styles/style.ts +424 -0
- package/dist/ts/implementation/structured-elements/tables/light-tables/enum.ts +16 -0
- package/dist/ts/interfaces/i-pdf-cache.ts +23 -0
- package/dist/ts/interfaces/i-pdf-changable.ts +17 -0
- package/dist/ts/interfaces/i-pdf-clonable.ts +12 -0
- package/dist/ts/interfaces/i-pdf-primitives.ts +45 -0
- package/dist/ts/interfaces/i-pdf-true-type-font.ts +48 -0
- package/dist/ts/interfaces/i-pdf-wrapper.ts +13 -0
- package/dist/ts/interfaces/i-pdf-writer.ts +29 -0
- package/package.json +6 -6
- package/src/implementation/structured-elements/grid/layout/grid-layouter.js +14 -11
|
@@ -0,0 +1,397 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PdfString.ts class for EJ2-PDF
|
|
3
|
+
*/
|
|
4
|
+
import { IPdfPrimitive } from './../../interfaces/i-pdf-primitives';
|
|
5
|
+
import { IPdfWriter } from './../../interfaces/i-pdf-writer';
|
|
6
|
+
import { ObjectStatus } from './../input-output/enum';
|
|
7
|
+
import { PdfCrossTable } from './../input-output/pdf-cross-table';
|
|
8
|
+
/**
|
|
9
|
+
* `PdfString` class is used to perform string related primitive operations.
|
|
10
|
+
* @private
|
|
11
|
+
*/
|
|
12
|
+
export namespace InternalEnum {
|
|
13
|
+
//Internals
|
|
14
|
+
/**
|
|
15
|
+
* public Enum for `ForceEncoding`.
|
|
16
|
+
* @private
|
|
17
|
+
*/
|
|
18
|
+
export enum ForceEncoding {
|
|
19
|
+
/**
|
|
20
|
+
* Specifies the type of `None`.
|
|
21
|
+
* @private
|
|
22
|
+
*/
|
|
23
|
+
None,
|
|
24
|
+
/**
|
|
25
|
+
* Specifies the type of `Ascii`.
|
|
26
|
+
* @private
|
|
27
|
+
*/
|
|
28
|
+
Ascii,
|
|
29
|
+
/**
|
|
30
|
+
* Specifies the type of `Unicode`.
|
|
31
|
+
* @private
|
|
32
|
+
*/
|
|
33
|
+
Unicode
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* public Enum for `SourceType`.
|
|
37
|
+
* @private
|
|
38
|
+
*/
|
|
39
|
+
enum SourceType {
|
|
40
|
+
/**
|
|
41
|
+
* Specifies the type of `StringValue`.
|
|
42
|
+
* @private
|
|
43
|
+
*/
|
|
44
|
+
StringValue,
|
|
45
|
+
/**
|
|
46
|
+
* Specifies the type of `ByteBuffer`.
|
|
47
|
+
* @private
|
|
48
|
+
*/
|
|
49
|
+
ByteBuffer,
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
export class PdfString implements IPdfPrimitive {
|
|
53
|
+
//constants = ;
|
|
54
|
+
/**
|
|
55
|
+
* `General markers` for string.
|
|
56
|
+
* @private
|
|
57
|
+
*/
|
|
58
|
+
public static readonly stringMark : string = '()';
|
|
59
|
+
/**
|
|
60
|
+
* `Hex markers` for string.
|
|
61
|
+
* @private
|
|
62
|
+
*/
|
|
63
|
+
public static readonly hexStringMark : string = '<>';
|
|
64
|
+
/**
|
|
65
|
+
* Format of password data.
|
|
66
|
+
* @private
|
|
67
|
+
*/
|
|
68
|
+
private static readonly hexFormatPattern : string = '{0:X2}';
|
|
69
|
+
//Fields
|
|
70
|
+
/**
|
|
71
|
+
* Value of the object.
|
|
72
|
+
* @private
|
|
73
|
+
*/
|
|
74
|
+
private stringValue : string;
|
|
75
|
+
/**
|
|
76
|
+
* The byte data of the string.
|
|
77
|
+
* @private
|
|
78
|
+
*/
|
|
79
|
+
private data : number[];
|
|
80
|
+
/**
|
|
81
|
+
* Value indicating whether the string was converted to hex.
|
|
82
|
+
* @default false
|
|
83
|
+
* @private
|
|
84
|
+
*/
|
|
85
|
+
private bHex : boolean = false;
|
|
86
|
+
/**
|
|
87
|
+
* Shows the type of object `status` whether it is object registered or other status;
|
|
88
|
+
* @private
|
|
89
|
+
*/
|
|
90
|
+
private status1 : ObjectStatus;
|
|
91
|
+
/**
|
|
92
|
+
* Indicates if the object is currently in `saving state or not`.
|
|
93
|
+
* @private
|
|
94
|
+
*/
|
|
95
|
+
private isSaving1 : boolean;
|
|
96
|
+
/**
|
|
97
|
+
* Internal variable to store the `position`.
|
|
98
|
+
* @default -1
|
|
99
|
+
* @private
|
|
100
|
+
*/
|
|
101
|
+
private position1 : number = -1;
|
|
102
|
+
/**
|
|
103
|
+
* Internal variable to hold `PdfCrossTable` reference.
|
|
104
|
+
* @private
|
|
105
|
+
*/
|
|
106
|
+
private crossTable : PdfCrossTable;
|
|
107
|
+
/**
|
|
108
|
+
* Internal variable to hold `cloned object`.
|
|
109
|
+
* @default null
|
|
110
|
+
* @private
|
|
111
|
+
*/
|
|
112
|
+
private clonedObject1 : PdfString = null;
|
|
113
|
+
/**
|
|
114
|
+
* Indicates whether to check if the value `has unicode characters`.
|
|
115
|
+
* @private
|
|
116
|
+
*/
|
|
117
|
+
private bConverted : boolean;
|
|
118
|
+
/**
|
|
119
|
+
* Indicates whether we should convert `data to Unicode`.
|
|
120
|
+
* @private
|
|
121
|
+
*/
|
|
122
|
+
private bForceEncoding : InternalEnum.ForceEncoding;
|
|
123
|
+
/**
|
|
124
|
+
* `Shows` if the data of the stream was decrypted.
|
|
125
|
+
* @default false
|
|
126
|
+
* @private
|
|
127
|
+
*/
|
|
128
|
+
private bDecrypted : boolean = false;
|
|
129
|
+
/**
|
|
130
|
+
* Holds the `index` number of the object.
|
|
131
|
+
* @private
|
|
132
|
+
*/
|
|
133
|
+
private index1 : number;
|
|
134
|
+
/**
|
|
135
|
+
* Shows if the data of the stream `was decrypted`.
|
|
136
|
+
* @default false
|
|
137
|
+
* @private
|
|
138
|
+
*/
|
|
139
|
+
private isParentDecrypted : boolean = false;
|
|
140
|
+
/**
|
|
141
|
+
* Gets a value indicating whether the object is `packed or not`.
|
|
142
|
+
* @default false
|
|
143
|
+
* @private
|
|
144
|
+
*/
|
|
145
|
+
private isPacked : boolean = false;
|
|
146
|
+
/**
|
|
147
|
+
* @hidden
|
|
148
|
+
* @private
|
|
149
|
+
*/
|
|
150
|
+
public isFormField : boolean = false;
|
|
151
|
+
/**
|
|
152
|
+
* @hidden
|
|
153
|
+
* @private
|
|
154
|
+
*/
|
|
155
|
+
public isColorSpace : boolean = false;
|
|
156
|
+
/**
|
|
157
|
+
* @hidden
|
|
158
|
+
* @private
|
|
159
|
+
*/
|
|
160
|
+
public isHexString : boolean = true;
|
|
161
|
+
/**
|
|
162
|
+
* @hidden
|
|
163
|
+
* @private
|
|
164
|
+
*/
|
|
165
|
+
private encodedBytes : number[];
|
|
166
|
+
//constructor
|
|
167
|
+
/**
|
|
168
|
+
* Initializes a new instance of the `PdfString` class.
|
|
169
|
+
* @private
|
|
170
|
+
*/
|
|
171
|
+
public constructor()
|
|
172
|
+
/**
|
|
173
|
+
* Initializes a new instance of the `PdfString` class.
|
|
174
|
+
* @private
|
|
175
|
+
*/
|
|
176
|
+
public constructor(value : string)
|
|
177
|
+
public constructor(value? : string) {
|
|
178
|
+
if (typeof value === 'undefined') {
|
|
179
|
+
this.bHex = false;
|
|
180
|
+
} else {
|
|
181
|
+
if (!(value.length > 0 && value[0] === '0xfeff')) {
|
|
182
|
+
this.stringValue = value;
|
|
183
|
+
this.data = [];
|
|
184
|
+
for (let i : number = 0; i < value.length; ++i) {
|
|
185
|
+
this.data.push(value.charCodeAt(i));
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
//Property
|
|
191
|
+
/**
|
|
192
|
+
* Gets a value indicating whether string is in `hex`.
|
|
193
|
+
* @private
|
|
194
|
+
*/
|
|
195
|
+
public get hex() : boolean {
|
|
196
|
+
return this.bHex;
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Gets or sets string `value` of the object.
|
|
200
|
+
* @private
|
|
201
|
+
*/
|
|
202
|
+
public get value() : string {
|
|
203
|
+
return this.stringValue;
|
|
204
|
+
}
|
|
205
|
+
public set value(value : string) {
|
|
206
|
+
this.stringValue = value;
|
|
207
|
+
this.data = null;
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Gets or sets the `Status` of the specified object.
|
|
211
|
+
* @private
|
|
212
|
+
*/
|
|
213
|
+
public get status() : ObjectStatus {
|
|
214
|
+
return this.status1;
|
|
215
|
+
}
|
|
216
|
+
public set status(value : ObjectStatus) {
|
|
217
|
+
this.status1 = value;
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Gets or sets a value indicating whether this document `is saving` or not.
|
|
221
|
+
* @private
|
|
222
|
+
*/
|
|
223
|
+
public get isSaving() : boolean {
|
|
224
|
+
return this.isSaving1;
|
|
225
|
+
}
|
|
226
|
+
public set isSaving(value : boolean) {
|
|
227
|
+
this.isSaving1 = value;
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Gets or sets the `index` value of the specified object.
|
|
231
|
+
* @private
|
|
232
|
+
*/
|
|
233
|
+
public get objectCollectionIndex() : number {
|
|
234
|
+
return this.index1;
|
|
235
|
+
}
|
|
236
|
+
public set objectCollectionIndex(value : number) {
|
|
237
|
+
this.index1 = value;
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* Returns `cloned object`.
|
|
241
|
+
* @private
|
|
242
|
+
*/
|
|
243
|
+
public get clonedObject() : IPdfPrimitive {
|
|
244
|
+
return this.clonedObject1;
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Gets or sets the `position` of the object.
|
|
248
|
+
* @private
|
|
249
|
+
*/
|
|
250
|
+
public get position() : number {
|
|
251
|
+
return this.position1;
|
|
252
|
+
}
|
|
253
|
+
public set position(value : number) {
|
|
254
|
+
this.position1 = value;
|
|
255
|
+
}
|
|
256
|
+
/**
|
|
257
|
+
* Returns `PdfCrossTable` associated with the object.
|
|
258
|
+
* @private
|
|
259
|
+
*/
|
|
260
|
+
public get CrossTable() : PdfCrossTable {
|
|
261
|
+
return this.crossTable;
|
|
262
|
+
}
|
|
263
|
+
/**
|
|
264
|
+
* Gets a value indicating whether to check if the value has unicode characters.
|
|
265
|
+
* @private
|
|
266
|
+
*/
|
|
267
|
+
public get converted() : boolean {
|
|
268
|
+
return this.bConverted;
|
|
269
|
+
}
|
|
270
|
+
/**
|
|
271
|
+
* sets a value indicating whether to check if the value has unicode characters.
|
|
272
|
+
* @private
|
|
273
|
+
*/
|
|
274
|
+
public set converted(value : boolean) {
|
|
275
|
+
this.bConverted = value;
|
|
276
|
+
}
|
|
277
|
+
/**
|
|
278
|
+
* Gets value indicating whether we should convert data to Unicode.
|
|
279
|
+
*/
|
|
280
|
+
public get encode() : InternalEnum.ForceEncoding {
|
|
281
|
+
return this.bForceEncoding;
|
|
282
|
+
}
|
|
283
|
+
public set encode(value : InternalEnum.ForceEncoding) {
|
|
284
|
+
this.bForceEncoding = value;
|
|
285
|
+
}
|
|
286
|
+
//Methods
|
|
287
|
+
/**
|
|
288
|
+
* Converts `bytes to string using hex format` for representing string.
|
|
289
|
+
* @private
|
|
290
|
+
*/
|
|
291
|
+
public static bytesToHex(bytes : number[]) : string {
|
|
292
|
+
if (bytes == null) {
|
|
293
|
+
return '';
|
|
294
|
+
}
|
|
295
|
+
let builder : string = '';
|
|
296
|
+
return builder;
|
|
297
|
+
}
|
|
298
|
+
/**
|
|
299
|
+
* `Saves` the object using the specified writer.
|
|
300
|
+
* @private
|
|
301
|
+
*/
|
|
302
|
+
public save(writer : IPdfWriter) : void {
|
|
303
|
+
if (writer === null) {
|
|
304
|
+
throw new Error('ArgumentNullException : writer');
|
|
305
|
+
}
|
|
306
|
+
if (this.encode !== undefined && this.encode === InternalEnum.ForceEncoding.Ascii) {
|
|
307
|
+
writer.write(this.pdfEncode());
|
|
308
|
+
} else {
|
|
309
|
+
writer.write(PdfString.stringMark[0] + this.value + PdfString.stringMark[1]);
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
public pdfEncode() : string {
|
|
313
|
+
let result : string = '';
|
|
314
|
+
if (this.encode !== undefined && this.encode === InternalEnum.ForceEncoding.Ascii) {
|
|
315
|
+
let data : number[] = this.escapeSymbols(this.value);
|
|
316
|
+
for (let i : number = 0; i < data.length; i++) {
|
|
317
|
+
result += String.fromCharCode(data[i]);
|
|
318
|
+
}
|
|
319
|
+
result = PdfString.stringMark[0] + result + PdfString.stringMark[1];
|
|
320
|
+
} else {
|
|
321
|
+
result = this.value;
|
|
322
|
+
}
|
|
323
|
+
return result;
|
|
324
|
+
}
|
|
325
|
+
private escapeSymbols(value : string) : number[] {
|
|
326
|
+
let data : number[] = [];
|
|
327
|
+
for (let i : number = 0; i < value.length; i++) {
|
|
328
|
+
let currentData : number = value.charCodeAt(i);
|
|
329
|
+
switch (currentData) {
|
|
330
|
+
case 40:
|
|
331
|
+
case 41:
|
|
332
|
+
data.push(92);
|
|
333
|
+
data.push(currentData);
|
|
334
|
+
break;
|
|
335
|
+
case 13:
|
|
336
|
+
data.push(92);
|
|
337
|
+
data.push(114);
|
|
338
|
+
break;
|
|
339
|
+
case 92:
|
|
340
|
+
data.push(92);
|
|
341
|
+
data.push(currentData);
|
|
342
|
+
break;
|
|
343
|
+
|
|
344
|
+
default:
|
|
345
|
+
data.push(currentData);
|
|
346
|
+
break;
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
return data;
|
|
350
|
+
}
|
|
351
|
+
/**
|
|
352
|
+
* Creates a `copy of PdfString`.
|
|
353
|
+
* @private
|
|
354
|
+
*/
|
|
355
|
+
public clone(crossTable : PdfCrossTable) : IPdfPrimitive {
|
|
356
|
+
if (this.clonedObject1 !== null && this.clonedObject1.CrossTable === crossTable) {
|
|
357
|
+
return this.clonedObject1;
|
|
358
|
+
} else {
|
|
359
|
+
this.clonedObject1 = null;
|
|
360
|
+
}
|
|
361
|
+
let newString : PdfString = new PdfString(this.stringValue);
|
|
362
|
+
newString.bHex = this.bHex;
|
|
363
|
+
newString.crossTable = crossTable;
|
|
364
|
+
newString.isColorSpace = this.isColorSpace;
|
|
365
|
+
this.clonedObject1 = newString;
|
|
366
|
+
return newString;
|
|
367
|
+
}
|
|
368
|
+
/**
|
|
369
|
+
* Converts string to array of unicode symbols.
|
|
370
|
+
*/
|
|
371
|
+
public static toUnicodeArray(value : string, bAddPrefix : boolean) : number[] {
|
|
372
|
+
if (value == null) {
|
|
373
|
+
throw new Error('Argument Null Exception : value');
|
|
374
|
+
}
|
|
375
|
+
let startIndex : number = 0;
|
|
376
|
+
let output : number[] = [];
|
|
377
|
+
for (let i : number = 0; i < value.length; i++) {
|
|
378
|
+
let code : number = value.charCodeAt(i);
|
|
379
|
+
output.push(code / 256 >>> 0);
|
|
380
|
+
output.push(code & 0xff);
|
|
381
|
+
}
|
|
382
|
+
return output;
|
|
383
|
+
}
|
|
384
|
+
/**
|
|
385
|
+
* Converts byte data to string.
|
|
386
|
+
*/
|
|
387
|
+
public static byteToString(data : number[]) : string {
|
|
388
|
+
if (data == null) {
|
|
389
|
+
throw new Error('Argument Null Exception : stream');
|
|
390
|
+
}
|
|
391
|
+
let result : string = '';
|
|
392
|
+
for (let i : number = 0; i < data.length; ++i) {
|
|
393
|
+
result += String.fromCharCode(data[i]);
|
|
394
|
+
}
|
|
395
|
+
return result;
|
|
396
|
+
}
|
|
397
|
+
}
|