@syncfusion/ej2-pdf-export 22.1.34 → 22.1.37
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 +748 -93
- package/dist/es6/ej2-pdf-export.es2015.js.map +1 -1
- package/dist/es6/ej2-pdf-export.es5.js +933 -225
- 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/document/pdf-catalog.d.ts +7 -0
- package/src/implementation/document/pdf-catalog.js +16 -0
- package/src/implementation/document/pdf-document-base.d.ts +13 -0
- package/src/implementation/document/pdf-document-base.js +18 -0
- package/src/implementation/document/pdf-viewer-preferences.d.ts +467 -0
- package/src/implementation/document/pdf-viewer-preferences.js +624 -0
- package/src/implementation/input-output/pdf-dictionary-properties.d.ts +55 -0
- package/src/implementation/input-output/pdf-dictionary-properties.js +55 -0
- 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 -52
- package/dist/ts/implementation/document/pdf-document-base.ts +0 -166
- 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/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 -62
- 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 -2424
- 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 -515
- 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 -659
- 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 -336
- 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,474 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* PdfStringFormat.ts class for EJ2-PDF
|
|
3
|
-
*/
|
|
4
|
-
import { PdfTextAlignment, PdfVerticalAlignment, PdfTextDirection } from './../../graphics/enum';
|
|
5
|
-
import { PdfSubSuperScript, PdfWordWrapType } from './../../graphics/fonts/enum';
|
|
6
|
-
/**
|
|
7
|
-
* `PdfStringFormat` class represents the text layout information on PDF.
|
|
8
|
-
* ```typescript
|
|
9
|
-
* // create a new PDF document
|
|
10
|
-
* let document : PdfDocument = new PdfDocument();
|
|
11
|
-
* // add a pages to the document
|
|
12
|
-
* let page1 : PdfPage = document.pages.add();
|
|
13
|
-
* // set font
|
|
14
|
-
* let font : PdfStandardFont = new PdfStandardFont(PdfFontFamily.Helvetica, 20);
|
|
15
|
-
* // set brush
|
|
16
|
-
* let blackBrush : PdfSolidBrush = new PdfSolidBrush(new PdfColor(0, 0, 0));
|
|
17
|
-
* //
|
|
18
|
-
* // set the format for string
|
|
19
|
-
* let stringFormat : PdfStringFormat = new PdfStringFormat();
|
|
20
|
-
* // set the text alignment
|
|
21
|
-
* stringFormat.alignment = PdfTextAlignment.Center;
|
|
22
|
-
* // set the vertical alignment
|
|
23
|
-
* stringFormat.lineAlignment = PdfVerticalAlignment.Middle;
|
|
24
|
-
* //
|
|
25
|
-
* // draw the text
|
|
26
|
-
* page1.graphics.drawString('Hello World', font, blackBrush, new PointF(10, 10), stringFormat);
|
|
27
|
-
* // save the document
|
|
28
|
-
* document.save('output.pdf');
|
|
29
|
-
* // destroy the document
|
|
30
|
-
* document.destroy();
|
|
31
|
-
* ```
|
|
32
|
-
*/
|
|
33
|
-
export class PdfStringFormat {
|
|
34
|
-
// Fields
|
|
35
|
-
/**
|
|
36
|
-
* `Horizontal text alignment`.
|
|
37
|
-
* @private
|
|
38
|
-
*/
|
|
39
|
-
private textAlignment : PdfTextAlignment;
|
|
40
|
-
/**
|
|
41
|
-
* `Vertical text alignment`.
|
|
42
|
-
* @private
|
|
43
|
-
*/
|
|
44
|
-
private verticalAlignment : PdfVerticalAlignment;
|
|
45
|
-
/**
|
|
46
|
-
* Indicates whether `RTL` should be checked.
|
|
47
|
-
* @private
|
|
48
|
-
*/
|
|
49
|
-
private isRightToLeft : boolean;
|
|
50
|
-
/**
|
|
51
|
-
* `Character spacing` value.
|
|
52
|
-
* @private
|
|
53
|
-
*/
|
|
54
|
-
private internalCharacterSpacing : number;
|
|
55
|
-
/**
|
|
56
|
-
* `Word spacing` value.
|
|
57
|
-
* @private
|
|
58
|
-
*/
|
|
59
|
-
private internalWordSpacing : number;
|
|
60
|
-
/**
|
|
61
|
-
* Text `leading`.
|
|
62
|
-
* @private
|
|
63
|
-
*/
|
|
64
|
-
private leading : number;
|
|
65
|
-
/**
|
|
66
|
-
* Shows if the text should be a part of the current `clipping` path.
|
|
67
|
-
* @private
|
|
68
|
-
*/
|
|
69
|
-
private clip : boolean;
|
|
70
|
-
/**
|
|
71
|
-
* Indicates whether the text is in `subscript or superscript` mode.
|
|
72
|
-
* @private
|
|
73
|
-
*/
|
|
74
|
-
private pdfSubSuperScript : PdfSubSuperScript;
|
|
75
|
-
/**
|
|
76
|
-
* The `scaling factor` of the text being drawn.
|
|
77
|
-
* @private
|
|
78
|
-
*/
|
|
79
|
-
private scalingFactor : number = 100.0;
|
|
80
|
-
/**
|
|
81
|
-
* Indent of the `first line` in the text.
|
|
82
|
-
* @private
|
|
83
|
-
*/
|
|
84
|
-
private initialLineIndent : number;
|
|
85
|
-
/**
|
|
86
|
-
* Indent of the `first line` in the paragraph.
|
|
87
|
-
* @private
|
|
88
|
-
*/
|
|
89
|
-
private internalParagraphIndent : number;
|
|
90
|
-
/**
|
|
91
|
-
* Indicates whether entire lines are laid out in the formatting rectangle only or not[`line limit`].
|
|
92
|
-
* @private
|
|
93
|
-
*/
|
|
94
|
-
private internalLineLimit : boolean;
|
|
95
|
-
/**
|
|
96
|
-
* Indicates whether spaces at the end of the line should be left or removed[`measure trailing spaces`].
|
|
97
|
-
* @private
|
|
98
|
-
*/
|
|
99
|
-
private trailingSpaces : boolean;
|
|
100
|
-
/**
|
|
101
|
-
* Indicates whether the text region should be `clipped` or not.
|
|
102
|
-
* @private
|
|
103
|
-
*/
|
|
104
|
-
private isNoClip : boolean;
|
|
105
|
-
/**
|
|
106
|
-
* Indicates text `wrapping` type.
|
|
107
|
-
* @private
|
|
108
|
-
*/
|
|
109
|
-
public wordWrapType : PdfWordWrapType = PdfWordWrapType.Word;
|
|
110
|
-
private direction : PdfTextDirection ;
|
|
111
|
-
//Constructors
|
|
112
|
-
/**
|
|
113
|
-
* Initializes a new instance of the `PdfStringFormat` class.
|
|
114
|
-
* @private
|
|
115
|
-
*/
|
|
116
|
-
public constructor()
|
|
117
|
-
/**
|
|
118
|
-
* Initializes a new instance of the `PdfStringFormat` class with horizontal alignment of a text.
|
|
119
|
-
* @private
|
|
120
|
-
*/
|
|
121
|
-
public constructor(alignment : PdfTextAlignment)
|
|
122
|
-
/**
|
|
123
|
-
* Initializes a new instance of the `PdfStringFormat` class with column format.
|
|
124
|
-
* @private
|
|
125
|
-
*/
|
|
126
|
-
public constructor(columnFormat : string)
|
|
127
|
-
/**
|
|
128
|
-
* Initializes a new instance of the `PdfStringFormat` class with horizontal and vertical alignment.
|
|
129
|
-
* @private
|
|
130
|
-
*/
|
|
131
|
-
public constructor(alignment : PdfTextAlignment, lineAlignment : PdfVerticalAlignment)
|
|
132
|
-
public constructor(arg1? : PdfTextAlignment|string, arg2? : PdfVerticalAlignment) {
|
|
133
|
-
this.internalLineLimit = true;
|
|
134
|
-
this.wordWrapType = PdfWordWrapType.Word;
|
|
135
|
-
if ((typeof arg1 !== 'undefined') && (typeof arg1 !== 'string') ) {
|
|
136
|
-
this.textAlignment = arg1;
|
|
137
|
-
}
|
|
138
|
-
if (typeof arg2 !== 'undefined') {
|
|
139
|
-
this.verticalAlignment = arg2;
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
//Properties
|
|
143
|
-
/**
|
|
144
|
-
* Gets or sets the `horizontal` text alignment
|
|
145
|
-
* ```typescript
|
|
146
|
-
* // create a new PDF document
|
|
147
|
-
* let document : PdfDocument = new PdfDocument();
|
|
148
|
-
* // add a pages to the document
|
|
149
|
-
* let page1 : PdfPage = document.pages.add();
|
|
150
|
-
* // set font
|
|
151
|
-
* let font : PdfStandardFont = new PdfStandardFont(PdfFontFamily.Helvetica, 20);
|
|
152
|
-
* // set brush
|
|
153
|
-
* let blackBrush : PdfSolidBrush = new PdfSolidBrush(new PdfColor(0, 0, 0));
|
|
154
|
-
* //
|
|
155
|
-
* // set the format for string
|
|
156
|
-
* let stringFormat : PdfStringFormat = new PdfStringFormat();
|
|
157
|
-
* // set the text alignment
|
|
158
|
-
* stringFormat.alignment = PdfTextAlignment.Center;
|
|
159
|
-
* //
|
|
160
|
-
* // draw the text
|
|
161
|
-
* page1.graphics.drawString('Hello World', font, blackBrush, new PointF(10, 10), stringFormat);
|
|
162
|
-
* // save the document
|
|
163
|
-
* document.save('output.pdf');
|
|
164
|
-
* // destroy the document
|
|
165
|
-
* document.destroy();
|
|
166
|
-
* ```
|
|
167
|
-
*/
|
|
168
|
-
public get alignment() : PdfTextAlignment {
|
|
169
|
-
return this.textAlignment;
|
|
170
|
-
}
|
|
171
|
-
public set alignment(value : PdfTextAlignment) {
|
|
172
|
-
this.textAlignment = value;
|
|
173
|
-
}
|
|
174
|
-
public get textDirection() : PdfTextDirection {
|
|
175
|
-
return this.direction;
|
|
176
|
-
}
|
|
177
|
-
public set textDirection(value : PdfTextDirection) {
|
|
178
|
-
this.direction = value;
|
|
179
|
-
}
|
|
180
|
-
/**
|
|
181
|
-
* Gets or sets the `vertical` text alignment.
|
|
182
|
-
* ```typescript
|
|
183
|
-
* // create a new PDF document
|
|
184
|
-
* let document : PdfDocument = new PdfDocument();
|
|
185
|
-
* // add a pages to the document
|
|
186
|
-
* let page1 : PdfPage = document.pages.add();
|
|
187
|
-
* // set font
|
|
188
|
-
* let font : PdfStandardFont = new PdfStandardFont(PdfFontFamily.Helvetica, 20);
|
|
189
|
-
* // set brush
|
|
190
|
-
* let blackBrush : PdfSolidBrush = new PdfSolidBrush(new PdfColor(0, 0, 0));
|
|
191
|
-
* //
|
|
192
|
-
* // set the format for string
|
|
193
|
-
* let stringFormat : PdfStringFormat = new PdfStringFormat();
|
|
194
|
-
* // set the vertical alignment
|
|
195
|
-
* stringFormat.lineAlignment = PdfVerticalAlignment.Middle;
|
|
196
|
-
* //
|
|
197
|
-
* // draw the text
|
|
198
|
-
* page1.graphics.drawString('Hello World', font, blackBrush, new PointF(10, 10), stringFormat);
|
|
199
|
-
* // save the document
|
|
200
|
-
* document.save('output.pdf');
|
|
201
|
-
* // destroy the document
|
|
202
|
-
* document.destroy();
|
|
203
|
-
* ```
|
|
204
|
-
*/
|
|
205
|
-
public get lineAlignment() : PdfVerticalAlignment {
|
|
206
|
-
if (typeof this.verticalAlignment === 'undefined' || this.verticalAlignment == null) {
|
|
207
|
-
return PdfVerticalAlignment.Top;
|
|
208
|
-
} else {
|
|
209
|
-
return this.verticalAlignment;
|
|
210
|
-
}
|
|
211
|
-
}
|
|
212
|
-
public set lineAlignment(value : PdfVerticalAlignment) {
|
|
213
|
-
this.verticalAlignment = value;
|
|
214
|
-
}
|
|
215
|
-
/**
|
|
216
|
-
* Gets or sets the value that indicates text `direction` mode.
|
|
217
|
-
* @private
|
|
218
|
-
*/
|
|
219
|
-
public get rightToLeft() : boolean {
|
|
220
|
-
if (typeof this.isRightToLeft === 'undefined' || this.isRightToLeft == null) {
|
|
221
|
-
return false;
|
|
222
|
-
} else {
|
|
223
|
-
return this.isRightToLeft;
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
public set rightToLeft(value : boolean) {
|
|
227
|
-
this.isRightToLeft = value;
|
|
228
|
-
}
|
|
229
|
-
/**
|
|
230
|
-
* Gets or sets value that indicates a `size` among the characters in the text.
|
|
231
|
-
* ```typescript
|
|
232
|
-
* // create a new PDF document
|
|
233
|
-
* let document : PdfDocument = new PdfDocument();
|
|
234
|
-
* // add a pages to the document
|
|
235
|
-
* let page1 : PdfPage = document.pages.add();
|
|
236
|
-
* // set font
|
|
237
|
-
* let font : PdfStandardFont = new PdfStandardFont(PdfFontFamily.Helvetica, 20);
|
|
238
|
-
* // set brush
|
|
239
|
-
* let blackBrush : PdfSolidBrush = new PdfSolidBrush(new PdfColor(0, 0, 0));
|
|
240
|
-
* //
|
|
241
|
-
* // set the format for string
|
|
242
|
-
* let stringFormat : PdfStringFormat = new PdfStringFormat();
|
|
243
|
-
* // set character spacing
|
|
244
|
-
* stringFormat.characterSpacing = 10;
|
|
245
|
-
* //
|
|
246
|
-
* // draw the text
|
|
247
|
-
* page1.graphics.drawString('Hello World', font, blackBrush, new PointF(10, 10), stringFormat);
|
|
248
|
-
* // save the document
|
|
249
|
-
* document.save('output.pdf');
|
|
250
|
-
* // destroy the document
|
|
251
|
-
* document.destroy();
|
|
252
|
-
* ```
|
|
253
|
-
*/
|
|
254
|
-
public get characterSpacing() : number {
|
|
255
|
-
if (typeof this.internalCharacterSpacing === 'undefined' || this.internalCharacterSpacing == null) {
|
|
256
|
-
return 0;
|
|
257
|
-
} else {
|
|
258
|
-
return this.internalCharacterSpacing;
|
|
259
|
-
}
|
|
260
|
-
}
|
|
261
|
-
public set characterSpacing(value : number) {
|
|
262
|
-
this.internalCharacterSpacing = value;
|
|
263
|
-
}
|
|
264
|
-
/**
|
|
265
|
-
* Gets or sets value that indicates a `size` among the words in the text.
|
|
266
|
-
* ```typescript
|
|
267
|
-
* // create a new PDF document
|
|
268
|
-
* let document : PdfDocument = new PdfDocument();
|
|
269
|
-
* // add a pages to the document
|
|
270
|
-
* let page1 : PdfPage = document.pages.add();
|
|
271
|
-
* // set font
|
|
272
|
-
* let font : PdfStandardFont = new PdfStandardFont(PdfFontFamily.Helvetica, 20);
|
|
273
|
-
* // set brush
|
|
274
|
-
* let blackBrush : PdfSolidBrush = new PdfSolidBrush(new PdfColor(0, 0, 0));
|
|
275
|
-
* //
|
|
276
|
-
* // set the format for string
|
|
277
|
-
* let stringFormat : PdfStringFormat = new PdfStringFormat();
|
|
278
|
-
* // set word spacing
|
|
279
|
-
* stringFormat.wordSpacing = 10;
|
|
280
|
-
* //
|
|
281
|
-
* // draw the text
|
|
282
|
-
* page1.graphics.drawString('Hello World', font, blackBrush, new PointF(10, 10), stringFormat);
|
|
283
|
-
* // save the document
|
|
284
|
-
* document.save('output.pdf');
|
|
285
|
-
* // destroy the document
|
|
286
|
-
* document.destroy();
|
|
287
|
-
* ```
|
|
288
|
-
*/
|
|
289
|
-
public get wordSpacing() : number {
|
|
290
|
-
if (typeof this.internalWordSpacing === 'undefined' || this.internalWordSpacing == null) {
|
|
291
|
-
return 0;
|
|
292
|
-
} else {
|
|
293
|
-
return this.internalWordSpacing;
|
|
294
|
-
}
|
|
295
|
-
}
|
|
296
|
-
public set wordSpacing(value : number) {
|
|
297
|
-
this.internalWordSpacing = value;
|
|
298
|
-
}
|
|
299
|
-
/**
|
|
300
|
-
* Gets or sets value that indicates the `vertical distance` between the baselines of adjacent lines of text.
|
|
301
|
-
* ```typescript
|
|
302
|
-
* // create a new PDF document
|
|
303
|
-
* let document : PdfDocument = new PdfDocument();
|
|
304
|
-
* // add a pages to the document
|
|
305
|
-
* let page1 : PdfPage = document.pages.add();
|
|
306
|
-
* // set font
|
|
307
|
-
* let font : PdfStandardFont = new PdfStandardFont(PdfFontFamily.Helvetica, 20);
|
|
308
|
-
* // set brush
|
|
309
|
-
* let blackBrush : PdfSolidBrush = new PdfSolidBrush(new PdfColor(0, 0, 0));
|
|
310
|
-
* // set string
|
|
311
|
-
* let text : string = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor
|
|
312
|
-
* incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitati';
|
|
313
|
-
* // set rectangle bounds
|
|
314
|
-
* let rectangle : RectangleF = new RectangleF({x : 0, y : 0}, {width : 300, height : 100})
|
|
315
|
-
* //
|
|
316
|
-
* // set the format for string
|
|
317
|
-
* let stringFormat : PdfStringFormat = new PdfStringFormat();
|
|
318
|
-
* // set line spacing
|
|
319
|
-
* stringFormat.lineSpacing = 10;
|
|
320
|
-
* //
|
|
321
|
-
* // draw the text
|
|
322
|
-
* page1.graphics.drawString(text, font, blackBrush, rectangle, stringFormat);
|
|
323
|
-
* // save the document
|
|
324
|
-
* document.save('output.pdf');
|
|
325
|
-
* // destroy the document
|
|
326
|
-
* document.destroy();
|
|
327
|
-
* ```
|
|
328
|
-
*/
|
|
329
|
-
public get lineSpacing() : number {
|
|
330
|
-
if (typeof this.leading === 'undefined' || this.leading == null) {
|
|
331
|
-
return 0;
|
|
332
|
-
} else {
|
|
333
|
-
return this.leading;
|
|
334
|
-
}
|
|
335
|
-
}
|
|
336
|
-
public set lineSpacing(value : number) {
|
|
337
|
-
this.leading = value;
|
|
338
|
-
}
|
|
339
|
-
/**
|
|
340
|
-
* Gets or sets a value indicating whether the text is `clipped` or not.
|
|
341
|
-
* @private
|
|
342
|
-
*/
|
|
343
|
-
public get clipPath() : boolean {
|
|
344
|
-
if (typeof this.clip === 'undefined' || this.clip == null) {
|
|
345
|
-
return false;
|
|
346
|
-
} else {
|
|
347
|
-
return this.clip;
|
|
348
|
-
}
|
|
349
|
-
}
|
|
350
|
-
public set clipPath(value : boolean) {
|
|
351
|
-
this.clip = value;
|
|
352
|
-
}
|
|
353
|
-
/**
|
|
354
|
-
* Gets or sets value indicating whether the text is in `subscript or superscript` mode.
|
|
355
|
-
* @private
|
|
356
|
-
*/
|
|
357
|
-
public get subSuperScript() : PdfSubSuperScript {
|
|
358
|
-
if (typeof this.pdfSubSuperScript === 'undefined' || this.pdfSubSuperScript == null) {
|
|
359
|
-
return PdfSubSuperScript.None;
|
|
360
|
-
} else {
|
|
361
|
-
return this.pdfSubSuperScript;
|
|
362
|
-
}
|
|
363
|
-
}
|
|
364
|
-
public set subSuperScript(value : PdfSubSuperScript) {
|
|
365
|
-
this.pdfSubSuperScript = value;
|
|
366
|
-
}
|
|
367
|
-
/**
|
|
368
|
-
* Gets or sets the `indent` of the first line in the paragraph.
|
|
369
|
-
* @private
|
|
370
|
-
*/
|
|
371
|
-
public get paragraphIndent() : number {
|
|
372
|
-
if (typeof this.internalParagraphIndent === 'undefined' || this.internalParagraphIndent == null) {
|
|
373
|
-
return 0;
|
|
374
|
-
} else {
|
|
375
|
-
return this.internalParagraphIndent;
|
|
376
|
-
}
|
|
377
|
-
}
|
|
378
|
-
public set paragraphIndent(value : number) {
|
|
379
|
-
this.internalParagraphIndent = value;
|
|
380
|
-
this.firstLineIndent = value;
|
|
381
|
-
}
|
|
382
|
-
/**
|
|
383
|
-
* Gets or sets a value indicating whether [`line limit`].
|
|
384
|
-
* @private
|
|
385
|
-
*/
|
|
386
|
-
public get lineLimit() : boolean {
|
|
387
|
-
return this.internalLineLimit;
|
|
388
|
-
}
|
|
389
|
-
public set lineLimit(value : boolean) {
|
|
390
|
-
this.internalLineLimit = value;
|
|
391
|
-
}
|
|
392
|
-
/**
|
|
393
|
-
* Gets or sets a value indicating whether [`measure trailing spaces`].
|
|
394
|
-
* @private
|
|
395
|
-
*/
|
|
396
|
-
public get measureTrailingSpaces() : boolean {
|
|
397
|
-
if (typeof this.trailingSpaces === 'undefined' || this.trailingSpaces == null) {
|
|
398
|
-
return false;
|
|
399
|
-
} else {
|
|
400
|
-
return this.trailingSpaces;
|
|
401
|
-
}
|
|
402
|
-
}
|
|
403
|
-
public set measureTrailingSpaces(value : boolean) {
|
|
404
|
-
this.trailingSpaces = value;
|
|
405
|
-
}
|
|
406
|
-
/**
|
|
407
|
-
* Gets or sets a value indicating whether [`no clip`].
|
|
408
|
-
* @private
|
|
409
|
-
*/
|
|
410
|
-
public get noClip() : boolean {
|
|
411
|
-
if (typeof this.isNoClip === 'undefined' || this.isNoClip == null) {
|
|
412
|
-
return false;
|
|
413
|
-
} else {
|
|
414
|
-
return this.isNoClip;
|
|
415
|
-
}
|
|
416
|
-
}
|
|
417
|
-
public set noClip(value : boolean) {
|
|
418
|
-
this.isNoClip = value;
|
|
419
|
-
}
|
|
420
|
-
/**
|
|
421
|
-
* Gets or sets value indicating type of the text `wrapping`.
|
|
422
|
-
* @private
|
|
423
|
-
*/
|
|
424
|
-
public get wordWrap() : PdfWordWrapType {
|
|
425
|
-
// if (typeof this.wrapType === 'undefined' || this.wrapType == null) {
|
|
426
|
-
// return PdfWordWrapType.Word;
|
|
427
|
-
// } else {
|
|
428
|
-
return this.wordWrapType;
|
|
429
|
-
// }
|
|
430
|
-
}
|
|
431
|
-
public set wordWrap(value : PdfWordWrapType) {
|
|
432
|
-
this.wordWrapType = value;
|
|
433
|
-
}
|
|
434
|
-
/**
|
|
435
|
-
* Gets or sets the `scaling factor`.
|
|
436
|
-
* @private
|
|
437
|
-
*/
|
|
438
|
-
public get horizontalScalingFactor() : number {
|
|
439
|
-
// if (typeof this.scalingFactor === 'undefined' || this.scalingFactor == null) {
|
|
440
|
-
// return 100;
|
|
441
|
-
// } else {
|
|
442
|
-
return this.scalingFactor;
|
|
443
|
-
// }
|
|
444
|
-
}
|
|
445
|
-
public set horizontalScalingFactor(value : number) {
|
|
446
|
-
if (value <= 0) {
|
|
447
|
-
throw new Error('ArgumentOutOfRangeException:The scaling factor cant be less of equal to zero, ScalingFactor');
|
|
448
|
-
}
|
|
449
|
-
this.scalingFactor = value;
|
|
450
|
-
}
|
|
451
|
-
/**
|
|
452
|
-
* Gets or sets the `indent` of the first line in the text.
|
|
453
|
-
* @private
|
|
454
|
-
*/
|
|
455
|
-
public get firstLineIndent() : number {
|
|
456
|
-
if (typeof this.initialLineIndent === 'undefined' || this.initialLineIndent == null) {
|
|
457
|
-
return 0;
|
|
458
|
-
} else {
|
|
459
|
-
return this.initialLineIndent;
|
|
460
|
-
}
|
|
461
|
-
}
|
|
462
|
-
public set firstLineIndent(value : number) {
|
|
463
|
-
this.initialLineIndent = value;
|
|
464
|
-
}
|
|
465
|
-
/**
|
|
466
|
-
* `Clones` the object.
|
|
467
|
-
* @private
|
|
468
|
-
*/
|
|
469
|
-
//IClonable implementation
|
|
470
|
-
public clone() : Object {
|
|
471
|
-
let format : PdfStringFormat = this;
|
|
472
|
-
return format;
|
|
473
|
-
}
|
|
474
|
-
}
|
|
@@ -1,165 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* PdfTrueTypeFont.ts class for EJ2-PDF
|
|
3
|
-
*/
|
|
4
|
-
import { UnicodeTrueTypeFont } from './unicode-true-type-font';
|
|
5
|
-
import { PdfFont } from './pdf-font';
|
|
6
|
-
import { PdfStringFormat } from './pdf-string-format';
|
|
7
|
-
import { PdfFontStyle } from './enum';
|
|
8
|
-
import { IPdfCache } from './../../../interfaces/i-pdf-cache';
|
|
9
|
-
import { PdfDocument } from './../../document/pdf-document';
|
|
10
|
-
import { IPdfPrimitive } from './../../../interfaces/i-pdf-primitives';
|
|
11
|
-
import { PdfFontMetrics } from './pdf-font-metrics';
|
|
12
|
-
import { PdfTextDirection } from './../enum';
|
|
13
|
-
import { RtlRenderer} from './rtl-renderer';
|
|
14
|
-
import { TtfReader } from './ttf-reader';
|
|
15
|
-
import { TtfGlyphInfo } from './ttf-glyph-info';
|
|
16
|
-
//https://www.giftofspeed.com/base64-encoder/
|
|
17
|
-
export class PdfTrueTypeFont extends PdfFont {
|
|
18
|
-
// Fields
|
|
19
|
-
/**
|
|
20
|
-
* Internal font object.
|
|
21
|
-
* @private
|
|
22
|
-
*/
|
|
23
|
-
public fontInternal : UnicodeTrueTypeFont;
|
|
24
|
-
/**
|
|
25
|
-
* Indicates whether the font is embedded or not.
|
|
26
|
-
* @private
|
|
27
|
-
*/
|
|
28
|
-
public isEmbedFont : boolean = false;
|
|
29
|
-
/**
|
|
30
|
-
* Indicates whether the font is unicoded or not.
|
|
31
|
-
* @private
|
|
32
|
-
*/
|
|
33
|
-
public isUnicode : boolean = true;
|
|
34
|
-
//Constructors
|
|
35
|
-
/**
|
|
36
|
-
* Initializes a new instance of the `PdfTrueTypeFont` class.
|
|
37
|
-
* @private
|
|
38
|
-
*/
|
|
39
|
-
public constructor(base64String : string, size : number)
|
|
40
|
-
public constructor(base64String : string, size : number, style : PdfFontStyle)
|
|
41
|
-
public constructor(base64String : string, size : number, style ?: PdfFontStyle) {
|
|
42
|
-
super(size);
|
|
43
|
-
if (style !== undefined) {
|
|
44
|
-
this.createFontInternal(base64String, style);
|
|
45
|
-
} else {
|
|
46
|
-
this.createFontInternal(base64String, PdfFontStyle.Regular);
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
protected equalsToFont(font : PdfFont) : boolean {
|
|
50
|
-
let result : boolean = false;
|
|
51
|
-
//let result : boolean = this.fontInternal.equalsToFont(font);
|
|
52
|
-
return result;
|
|
53
|
-
}
|
|
54
|
-
public getLineWidth(line : string, format : PdfStringFormat) : number {
|
|
55
|
-
let width : number = 0;
|
|
56
|
-
if (format !== null && typeof format !== 'undefined' && format.textDirection !== PdfTextDirection.None) {
|
|
57
|
-
let returnValue : {success : boolean , width : number } = this.getUnicodeLineWidth(line, /*out*/ width, format);
|
|
58
|
-
width = returnValue.width;
|
|
59
|
-
} else {
|
|
60
|
-
width = this.fontInternal.getLineWidth(line);
|
|
61
|
-
}
|
|
62
|
-
let size : number = this.metrics.getSize(format);
|
|
63
|
-
width *= (PdfFont.charSizeMultiplier * size);
|
|
64
|
-
width = this.applyFormatSettings(line, format, width);
|
|
65
|
-
return width;
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* Returns width of the char.
|
|
69
|
-
*/
|
|
70
|
-
public getCharWidth(charCode : string, format : PdfStringFormat) : number {
|
|
71
|
-
let codeWidth : number = this.fontInternal.getCharWidth(charCode);
|
|
72
|
-
let size : number = this.metrics.getSize(format);
|
|
73
|
-
codeWidth *= (0.001 * size);
|
|
74
|
-
|
|
75
|
-
return codeWidth;
|
|
76
|
-
}
|
|
77
|
-
//Implementation
|
|
78
|
-
public createFontInternal(base64String : string, style : PdfFontStyle) : void {
|
|
79
|
-
this.fontInternal = new UnicodeTrueTypeFont(base64String, this.size);
|
|
80
|
-
this.calculateStyle(style);
|
|
81
|
-
this.initializeInternals();
|
|
82
|
-
}
|
|
83
|
-
private calculateStyle(style : PdfFontStyle) : void {
|
|
84
|
-
let iStyle : number = this.fontInternal.ttfMetrics.macStyle;
|
|
85
|
-
if ((style & PdfFontStyle.Underline) !== 0) {
|
|
86
|
-
iStyle |= PdfFontStyle.Underline;
|
|
87
|
-
}
|
|
88
|
-
if ((style & PdfFontStyle.Strikeout) !== 0) {
|
|
89
|
-
iStyle |= PdfFontStyle.Strikeout;
|
|
90
|
-
}
|
|
91
|
-
this.setStyle(iStyle);
|
|
92
|
-
}
|
|
93
|
-
private initializeInternals() : void {
|
|
94
|
-
let equalFont : IPdfCache = null;
|
|
95
|
-
if (PdfDocument.enableCache) {
|
|
96
|
-
// Search for the similar fonts.
|
|
97
|
-
equalFont = PdfDocument.cache.search(this);
|
|
98
|
-
}
|
|
99
|
-
let internals : IPdfPrimitive = null;
|
|
100
|
-
// There is not equal font in the cache.
|
|
101
|
-
if (equalFont !== null && equalFont !== undefined) {
|
|
102
|
-
// Get the settings from the cached font.
|
|
103
|
-
internals = (equalFont as IPdfCache).getInternals();
|
|
104
|
-
let metrics : PdfFontMetrics = (equalFont as PdfFont).metrics;
|
|
105
|
-
metrics = (metrics as PdfFontMetrics).clone();
|
|
106
|
-
metrics.size = this.size;
|
|
107
|
-
this.metrics = metrics;
|
|
108
|
-
this.fontInternal = (equalFont as PdfTrueTypeFont).fontInternal;
|
|
109
|
-
} else {
|
|
110
|
-
if (equalFont == null) {
|
|
111
|
-
if (this.fontInternal instanceof UnicodeTrueTypeFont) {
|
|
112
|
-
(this.fontInternal as UnicodeTrueTypeFont).isEmbed = this.isEmbedFont;
|
|
113
|
-
}
|
|
114
|
-
this.fontInternal.createInternals();
|
|
115
|
-
internals = this.fontInternal.getInternals();
|
|
116
|
-
this.metrics = this.fontInternal.metrics;
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
this.metrics.isUnicodeFont = true;
|
|
120
|
-
this.setInternals(internals);
|
|
121
|
-
//this.ttfReader = (this.fontInternal as UnicodeTrueTypeFont).ttfReader;
|
|
122
|
-
}
|
|
123
|
-
/**
|
|
124
|
-
* Stores used symbols.
|
|
125
|
-
*/
|
|
126
|
-
public setSymbols(text : string) : void {
|
|
127
|
-
let internalFont : UnicodeTrueTypeFont = this.fontInternal as UnicodeTrueTypeFont;
|
|
128
|
-
if (internalFont != null) {
|
|
129
|
-
internalFont.setSymbols(text);
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
/**
|
|
133
|
-
* Property
|
|
134
|
-
*
|
|
135
|
-
*/
|
|
136
|
-
public get Unicode() : boolean {
|
|
137
|
-
return this.isUnicode;
|
|
138
|
-
}
|
|
139
|
-
// public get Font() : UnicodeTrueTypeFont {
|
|
140
|
-
// return this.fontInternal as UnicodeTrueTypeFont;
|
|
141
|
-
// }
|
|
142
|
-
private getUnicodeLineWidth(line : string, /*out*/ width : number , format : PdfStringFormat) : { success : boolean, width : number } {
|
|
143
|
-
// if (line == null) {
|
|
144
|
-
// throw new Error('ArgumentNullException : line');
|
|
145
|
-
// }
|
|
146
|
-
width = 0;
|
|
147
|
-
let glyphIndices : Uint16Array = null;
|
|
148
|
-
let rtlRender : RtlRenderer = new RtlRenderer();
|
|
149
|
-
/* tslint:disable-next-line:max-line-length */
|
|
150
|
-
let result : { success : boolean, glyphs : Uint16Array } = rtlRender.getGlyphIndex(line, this, (format.textDirection === PdfTextDirection.RightToLeft) ? true : false, /*out*/ glyphIndices, true);
|
|
151
|
-
let resultGlyph : boolean = result.success;
|
|
152
|
-
glyphIndices = result.glyphs;
|
|
153
|
-
if (resultGlyph && glyphIndices !== null) {
|
|
154
|
-
let ttfReader : TtfReader = (this.fontInternal as UnicodeTrueTypeFont).ttfReader;
|
|
155
|
-
for (let i : number = 0, len : number = glyphIndices.length; i < len; i++) {
|
|
156
|
-
let glyphIndex : number = glyphIndices[i];
|
|
157
|
-
let glyph : TtfGlyphInfo = ttfReader.getGlyph(glyphIndex);
|
|
158
|
-
if (glyph !== null && typeof glyph !== 'undefined') {
|
|
159
|
-
width += glyph.width;
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
return { success : resultGlyph, width : width };
|
|
164
|
-
}
|
|
165
|
-
}
|