@syncfusion/ej2-pdf-export 23.2.4 → 24.1.41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +0 -18
- 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 +6 -1
- package/dist/es6/ej2-pdf-export.es2015.js.map +1 -1
- package/dist/es6/ej2-pdf-export.es5.js +6 -1
- 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 +65 -0
- package/dist/ts/implementation/document/pdf-document-base.ts +180 -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/document/pdf-viewer-preferences.ts +578 -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 +63 -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 +2429 -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 +571 -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 +663 -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 +306 -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 +7 -7
- package/src/implementation/document/pdf-document-base.js +1 -2
- package/src/implementation/graphics/pdf-graphics.js +7 -2
- package/src/implementation/graphics/pdf-transformation-matrix.d.ts +1 -1
|
@@ -0,0 +1,445 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PdfTextElement.ts class for EJ2-PDF
|
|
3
|
+
*/
|
|
4
|
+
import { PdfLayoutElement } from './../figures/layout-element';
|
|
5
|
+
import { PdfBrush } from './../brushes/pdf-brush';
|
|
6
|
+
import { PdfFont } from './../fonts/pdf-font';
|
|
7
|
+
import { PdfStandardFont } from './../fonts/pdf-standard-font';
|
|
8
|
+
import { PdfPen } from './../pdf-pen';
|
|
9
|
+
import { PdfStringFormat } from './../fonts/pdf-string-format';
|
|
10
|
+
import { PdfLayoutParams, PdfLayoutResult } from './../figures/base/element-layouter';
|
|
11
|
+
import { PdfGraphics } from './../pdf-graphics';
|
|
12
|
+
import { PdfTextLayoutResult, TextLayouter } from './base/text-layouter';
|
|
13
|
+
import { PdfSolidBrush } from './../brushes/pdf-solid-brush';
|
|
14
|
+
import { PdfColor } from './../pdf-color';
|
|
15
|
+
import { RectangleF, SizeF, PointF } from './../../drawing/pdf-drawing';
|
|
16
|
+
import { PdfPage } from './../../pages/pdf-page';
|
|
17
|
+
import { PdfLayoutFormat } from './base/element-layouter';
|
|
18
|
+
import { PdfStringLayoutResult, PdfStringLayouter } from './../fonts/string-layouter';
|
|
19
|
+
import { PdfTextAlignment } from './../enum';
|
|
20
|
+
/**
|
|
21
|
+
* `PdfTextElement` class represents the text area with the ability to span several pages
|
|
22
|
+
* and inherited from the 'PdfLayoutElement' class.
|
|
23
|
+
* @private
|
|
24
|
+
*/
|
|
25
|
+
export class PdfTextElement extends PdfLayoutElement {
|
|
26
|
+
// Fields
|
|
27
|
+
/**
|
|
28
|
+
* `Text` data.
|
|
29
|
+
* @private
|
|
30
|
+
*/
|
|
31
|
+
private content : string = '';
|
|
32
|
+
/**
|
|
33
|
+
* `Value` of text data.
|
|
34
|
+
* @private
|
|
35
|
+
*/
|
|
36
|
+
private elementValue : string = '';
|
|
37
|
+
/**
|
|
38
|
+
* `Pen` for text drawing.
|
|
39
|
+
* @private
|
|
40
|
+
*/
|
|
41
|
+
private pdfPen : PdfPen;
|
|
42
|
+
/**
|
|
43
|
+
* `Brush` for text drawing.
|
|
44
|
+
* @private
|
|
45
|
+
*/
|
|
46
|
+
private pdfBrush : PdfBrush;
|
|
47
|
+
/**
|
|
48
|
+
* `Font` for text drawing.
|
|
49
|
+
* @private
|
|
50
|
+
*/
|
|
51
|
+
private pdfFont : PdfFont;
|
|
52
|
+
/**
|
|
53
|
+
* Text `format`.
|
|
54
|
+
* @private
|
|
55
|
+
*/
|
|
56
|
+
private format : PdfStringFormat;
|
|
57
|
+
/**
|
|
58
|
+
* indicate whether the drawText with PointF overload is called or not.
|
|
59
|
+
* @default false
|
|
60
|
+
* @private
|
|
61
|
+
*/
|
|
62
|
+
private hasPointOverload : boolean = false;
|
|
63
|
+
/**
|
|
64
|
+
* indicate whether the PdfGridCell value is `PdfTextElement`
|
|
65
|
+
* @default false
|
|
66
|
+
* @private
|
|
67
|
+
*/
|
|
68
|
+
public isPdfTextElement : boolean = false;
|
|
69
|
+
// Constructors
|
|
70
|
+
/**
|
|
71
|
+
* Initializes a new instance of the `PdfTextElement` class.
|
|
72
|
+
* @private
|
|
73
|
+
*/
|
|
74
|
+
public constructor()
|
|
75
|
+
/**
|
|
76
|
+
* Initializes a new instance of the `PdfTextElement` class with text to draw into the PDF.
|
|
77
|
+
* @private
|
|
78
|
+
*/
|
|
79
|
+
public constructor(text : string)
|
|
80
|
+
/**
|
|
81
|
+
* Initializes a new instance of the `PdfTextElement` class with the text and `PdfFont`.
|
|
82
|
+
* @private
|
|
83
|
+
*/
|
|
84
|
+
public constructor(text : string, font : PdfFont)
|
|
85
|
+
/**
|
|
86
|
+
* Initializes a new instance of the `PdfTextElement` class with text,`PdfFont` and `PdfPen`.
|
|
87
|
+
* @private
|
|
88
|
+
*/
|
|
89
|
+
public constructor(text : string, font : PdfFont, pen : PdfPen)
|
|
90
|
+
/**
|
|
91
|
+
* Initializes a new instance of the `PdfTextElement` class with text,`PdfFont` and `PdfBrush`.
|
|
92
|
+
* @private
|
|
93
|
+
*/
|
|
94
|
+
public constructor(text : string, font : PdfFont, brush : PdfBrush)
|
|
95
|
+
/**
|
|
96
|
+
* Initializes a new instance of the `PdfTextElement` class with text,`PdfFont`,`PdfPen`,`PdfBrush` and `PdfStringFormat`.
|
|
97
|
+
* @private
|
|
98
|
+
*/
|
|
99
|
+
public constructor(text : string, font : PdfFont, pen : PdfPen, brush : PdfBrush, format : PdfStringFormat)
|
|
100
|
+
public constructor(arg1 ?: string, arg2 ?: PdfFont, arg3 ?: PdfPen|PdfBrush, arg4 ?: PdfBrush, arg5 ?: PdfStringFormat) {
|
|
101
|
+
super();
|
|
102
|
+
if (typeof arg1 === 'undefined') {
|
|
103
|
+
//
|
|
104
|
+
} else if (typeof arg1 === 'string' && typeof arg2 === 'undefined') {
|
|
105
|
+
this.content = arg1;
|
|
106
|
+
this.elementValue = arg1;
|
|
107
|
+
} else if (typeof arg1 === 'string' && arg2 instanceof PdfFont && typeof arg3 === 'undefined') {
|
|
108
|
+
this.content = arg1;
|
|
109
|
+
this.elementValue = arg1;
|
|
110
|
+
this.pdfFont = arg2;
|
|
111
|
+
} else if (typeof arg1 === 'string' && arg2 instanceof PdfFont && arg3 instanceof PdfPen && typeof arg4 === 'undefined') {
|
|
112
|
+
this.content = arg1;
|
|
113
|
+
this.elementValue = arg1;
|
|
114
|
+
this.pdfFont = arg2;
|
|
115
|
+
this.pdfPen = arg3;
|
|
116
|
+
} else if (typeof arg1 === 'string' && arg2 instanceof PdfFont && arg3 instanceof PdfBrush && typeof arg4 === 'undefined') {
|
|
117
|
+
this.content = arg1;
|
|
118
|
+
this.elementValue = arg1;
|
|
119
|
+
this.pdfFont = arg2;
|
|
120
|
+
this.pdfBrush = arg3;
|
|
121
|
+
} else {
|
|
122
|
+
this.content = arg1;
|
|
123
|
+
this.elementValue = arg1;
|
|
124
|
+
this.pdfFont = arg2;
|
|
125
|
+
this.pdfPen = arg3 as PdfPen;
|
|
126
|
+
this.pdfBrush = arg4;
|
|
127
|
+
this.format = arg5;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
// Properties
|
|
131
|
+
/**
|
|
132
|
+
* Gets or sets a value indicating the `text` that should be printed.
|
|
133
|
+
* ```typescript
|
|
134
|
+
* // create a new PDF document.
|
|
135
|
+
* let document : PdfDocument = new PdfDocument();
|
|
136
|
+
* // add a page to the document.
|
|
137
|
+
* let page1 : PdfPage = document.pages.add();
|
|
138
|
+
* // create the font
|
|
139
|
+
* let font : PdfFont = new PdfStandardFont(PdfFontFamily.Helvetica, 12);
|
|
140
|
+
* // create the Text Web Link
|
|
141
|
+
* let textLink : PdfTextWebLink = new PdfTextWebLink();
|
|
142
|
+
* // set the hyperlink
|
|
143
|
+
* textLink.url = 'http://www.google.com';
|
|
144
|
+
* //
|
|
145
|
+
* // set the link text
|
|
146
|
+
* textLink.text = 'Google';
|
|
147
|
+
* //
|
|
148
|
+
* // set the font
|
|
149
|
+
* textLink.font = font;
|
|
150
|
+
* // draw the hyperlink in PDF page
|
|
151
|
+
* textLink.draw(page1, new PointF(10, 40));
|
|
152
|
+
* // save the document.
|
|
153
|
+
* document.save('output.pdf');
|
|
154
|
+
* // destroy the document
|
|
155
|
+
* document.destroy();
|
|
156
|
+
* ```
|
|
157
|
+
*/
|
|
158
|
+
public get text() : string {
|
|
159
|
+
return this.content;
|
|
160
|
+
}
|
|
161
|
+
public set text(value : string) {
|
|
162
|
+
this.elementValue = value;
|
|
163
|
+
this.content = value;
|
|
164
|
+
}
|
|
165
|
+
//get value
|
|
166
|
+
/**
|
|
167
|
+
* Gets or sets a `value` indicating the text that should be printed.
|
|
168
|
+
* @private
|
|
169
|
+
*/
|
|
170
|
+
public get value() : string {
|
|
171
|
+
return this.elementValue;
|
|
172
|
+
}
|
|
173
|
+
//get pen
|
|
174
|
+
/**
|
|
175
|
+
* Gets or sets a `PdfPen` that determines the color, width, and style of the text
|
|
176
|
+
* @private
|
|
177
|
+
*/
|
|
178
|
+
public get pen() : PdfPen {
|
|
179
|
+
return this.pdfPen;
|
|
180
|
+
}
|
|
181
|
+
//Set pen value
|
|
182
|
+
public set pen(value : PdfPen) {
|
|
183
|
+
this.pdfPen = value;
|
|
184
|
+
}
|
|
185
|
+
//get brush
|
|
186
|
+
/**
|
|
187
|
+
* Gets or sets the `PdfBrush` that will be used to draw the text with color and texture.
|
|
188
|
+
* @private
|
|
189
|
+
*/
|
|
190
|
+
public get brush() : PdfBrush {
|
|
191
|
+
return this.pdfBrush;
|
|
192
|
+
}
|
|
193
|
+
//Set brush value
|
|
194
|
+
public set brush(value : PdfBrush) {
|
|
195
|
+
this.pdfBrush = value;
|
|
196
|
+
}
|
|
197
|
+
//get font
|
|
198
|
+
/**
|
|
199
|
+
* Gets or sets a `PdfFont` that defines the text format.
|
|
200
|
+
* ```typescript
|
|
201
|
+
* // create a new PDF document.
|
|
202
|
+
* let document : PdfDocument = new PdfDocument();
|
|
203
|
+
* // add a page to the document.
|
|
204
|
+
* let page1 : PdfPage = document.pages.add();
|
|
205
|
+
* // create the font
|
|
206
|
+
* let font : PdfFont = new PdfStandardFont(PdfFontFamily.Helvetica, 12);
|
|
207
|
+
* // create the Text Web Link
|
|
208
|
+
* let textLink : PdfTextWebLink = new PdfTextWebLink();
|
|
209
|
+
* // set the hyperlink
|
|
210
|
+
* textLink.url = 'http://www.google.com';
|
|
211
|
+
* // set the link text
|
|
212
|
+
* textLink.text = 'Google';
|
|
213
|
+
* //
|
|
214
|
+
* // set the font
|
|
215
|
+
* textLink.font = font;
|
|
216
|
+
* //
|
|
217
|
+
* // draw the hyperlink in PDF page
|
|
218
|
+
* textLink.draw(page1, new PointF(10, 40));
|
|
219
|
+
* // save the document.
|
|
220
|
+
* document.save('output.pdf');
|
|
221
|
+
* // destroy the document
|
|
222
|
+
* document.destroy();
|
|
223
|
+
* ```
|
|
224
|
+
*/
|
|
225
|
+
public get font() : PdfFont {
|
|
226
|
+
return this.pdfFont;
|
|
227
|
+
}
|
|
228
|
+
public set font(value : PdfFont) {
|
|
229
|
+
this.pdfFont = value;
|
|
230
|
+
if (this.pdfFont instanceof PdfStandardFont && this.content != null) {
|
|
231
|
+
this.elementValue = PdfStandardFont.convert(this.content);
|
|
232
|
+
} else {
|
|
233
|
+
this.elementValue = this.content;
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Gets or sets the `PdfStringFormat` that will be used to set the string format
|
|
238
|
+
* @private
|
|
239
|
+
*/
|
|
240
|
+
public get stringFormat() : PdfStringFormat {
|
|
241
|
+
return this.format;
|
|
242
|
+
}
|
|
243
|
+
public set stringFormat(value : PdfStringFormat) {
|
|
244
|
+
this.format = value;
|
|
245
|
+
}
|
|
246
|
+
// Implementation
|
|
247
|
+
/**
|
|
248
|
+
* Gets a `brush` for drawing.
|
|
249
|
+
* @private
|
|
250
|
+
*/
|
|
251
|
+
public getBrush() : PdfBrush {
|
|
252
|
+
return (this.pdfBrush == null || typeof this.pdfBrush === 'undefined') ? new PdfSolidBrush(new PdfColor(0, 0, 0)) : this.pdfBrush;
|
|
253
|
+
}
|
|
254
|
+
// /**
|
|
255
|
+
// * `Draws` an element on the Graphics.
|
|
256
|
+
// * @private
|
|
257
|
+
// */
|
|
258
|
+
// public drawInternal(graphics : PdfGraphics) : void {
|
|
259
|
+
// graphics.drawString(this.elementValue, this.pdfFont, this.pdfPen, this.getBrush(), 0, 0, this.stringFormat);
|
|
260
|
+
// }
|
|
261
|
+
/**
|
|
262
|
+
* `Layouts` the element.
|
|
263
|
+
* @private
|
|
264
|
+
*/
|
|
265
|
+
protected layout(param : PdfLayoutParams) : PdfLayoutResult {
|
|
266
|
+
let layouter : TextLayouter = new TextLayouter(this);
|
|
267
|
+
let result : PdfTextLayoutResult = layouter.layout(param) as PdfTextLayoutResult;
|
|
268
|
+
return result;
|
|
269
|
+
}
|
|
270
|
+
/* tslint:disable */
|
|
271
|
+
/**
|
|
272
|
+
* `Draws` the element on the page with the specified page and "PointF" class
|
|
273
|
+
* @private
|
|
274
|
+
*/
|
|
275
|
+
public drawText(page : PdfPage, location : PointF) : PdfLayoutResult
|
|
276
|
+
/**
|
|
277
|
+
* `Draws` the element on the page with the specified page and pair of coordinates
|
|
278
|
+
* @private
|
|
279
|
+
*/
|
|
280
|
+
public drawText(page : PdfPage, x : number, y : number) : PdfLayoutResult
|
|
281
|
+
/**
|
|
282
|
+
* `Draws` the element on the page with the specified page and "RectangleF" class
|
|
283
|
+
* @private
|
|
284
|
+
*/
|
|
285
|
+
public drawText(page : PdfPage, layoutRectangle : RectangleF) : PdfLayoutResult
|
|
286
|
+
/**
|
|
287
|
+
* `Draws` the element on the page with the specified page, "PointF" class and layout format
|
|
288
|
+
* @private
|
|
289
|
+
*/
|
|
290
|
+
public drawText(page : PdfPage, location : PointF, format : PdfLayoutFormat) : PdfLayoutResult
|
|
291
|
+
/**
|
|
292
|
+
* `Draws` the element on the page with the specified page, pair of coordinates and layout format
|
|
293
|
+
* @private
|
|
294
|
+
*/
|
|
295
|
+
public drawText(page : PdfPage, x : number, y : number, format : PdfLayoutFormat) : PdfLayoutResult
|
|
296
|
+
/**
|
|
297
|
+
* `Draws` the element on the page.
|
|
298
|
+
* @private
|
|
299
|
+
*/
|
|
300
|
+
public drawText(page : PdfPage, layoutRectangle : RectangleF, embedFonts : boolean) : PdfLayoutResult
|
|
301
|
+
/**
|
|
302
|
+
* `Draws` the element on the page with the specified page, "RectangleF" class and layout format
|
|
303
|
+
* @private
|
|
304
|
+
*/
|
|
305
|
+
public drawText(page : PdfPage, layoutRectangle : RectangleF, format : PdfLayoutFormat) : PdfLayoutResult
|
|
306
|
+
public drawText(arg2 : PdfPage, arg3 : RectangleF | PointF | number, arg4 ?: PdfLayoutFormat | number | boolean, arg5 ?: PdfLayoutFormat) : PdfLayoutResult {
|
|
307
|
+
if (arg3 instanceof PointF && typeof (arg3 as RectangleF).width === 'undefined' && typeof arg4 === 'undefined') {
|
|
308
|
+
this.hasPointOverload = true;
|
|
309
|
+
return this.drawText(arg2, arg3.x, arg3.y);
|
|
310
|
+
} else if (typeof arg3 === 'number' && typeof arg4 === 'number' && typeof arg5 === 'undefined') {
|
|
311
|
+
this.hasPointOverload = true;
|
|
312
|
+
return this.drawText(arg2, arg3, arg4, null);
|
|
313
|
+
} else if (arg3 instanceof RectangleF && typeof (arg3 as RectangleF).width !== 'undefined' && typeof arg4 === 'undefined') {
|
|
314
|
+
return this.drawText(arg2, arg3, null);
|
|
315
|
+
} else if (arg3 instanceof PointF && typeof (arg3 as RectangleF).width === 'undefined' && arg4 instanceof PdfLayoutFormat) {
|
|
316
|
+
this.hasPointOverload = true;
|
|
317
|
+
return this.drawText(arg2, arg3.x, arg3.y, arg4);
|
|
318
|
+
} else if (typeof arg3 === 'number' && typeof arg4 === 'number' && (arg5 instanceof PdfLayoutFormat || arg5 == null)) {
|
|
319
|
+
this.hasPointOverload = true;
|
|
320
|
+
let width : number = (arg2.graphics.clientSize.width - arg3);
|
|
321
|
+
let layoutRectangle : RectangleF = new RectangleF(arg3, arg4, width, 0);
|
|
322
|
+
return this.drawText(arg2, layoutRectangle, arg5);
|
|
323
|
+
} else if (arg3 instanceof RectangleF && typeof (arg3 as RectangleF).width !== 'undefined' && typeof arg4 === 'boolean') {
|
|
324
|
+
return this.drawText(arg2, arg3, null);
|
|
325
|
+
} else {
|
|
326
|
+
let layout : PdfStringLayouter = new PdfStringLayouter();
|
|
327
|
+
if (this.hasPointOverload) {
|
|
328
|
+
let stringLayoutResult : PdfStringLayoutResult = layout.layout(this.value, this.font, this.stringFormat, new SizeF((arg2.graphics.clientSize.width - (arg3 as RectangleF).x), 0), true, arg2.graphics.clientSize);
|
|
329
|
+
let layoutResult : PdfLayoutResult;
|
|
330
|
+
let param : PdfLayoutParams = new PdfLayoutParams();
|
|
331
|
+
let temparg3 : RectangleF = arg3 as RectangleF;
|
|
332
|
+
let temparg4 : PdfLayoutFormat = arg4 as PdfLayoutFormat;
|
|
333
|
+
param.page = arg2;
|
|
334
|
+
let previousPage : PdfPage = arg2;
|
|
335
|
+
param.bounds = temparg3;
|
|
336
|
+
param.format = (temparg4 != null) ? temparg4 : new PdfLayoutFormat();
|
|
337
|
+
if (stringLayoutResult.lines.length > 1) {
|
|
338
|
+
this.text = stringLayoutResult.layoutLines[0].text;
|
|
339
|
+
if (param.bounds.y <= param.page.graphics.clientSize.height) {
|
|
340
|
+
let previousPosition : PointF = new PointF(param.bounds.x, param.bounds.y);
|
|
341
|
+
layoutResult = this.layout(param);
|
|
342
|
+
let bounds : RectangleF = new RectangleF(0, layoutResult.bounds.y + stringLayoutResult.lineHeight, arg2.graphics.clientSize.width, stringLayoutResult.lineHeight);
|
|
343
|
+
let isPaginate : boolean = false;
|
|
344
|
+
for (let i : number = 1; i < stringLayoutResult.lines.length; i++) {
|
|
345
|
+
param.page = layoutResult.page;
|
|
346
|
+
param.bounds = new RectangleF(new PointF(bounds.x, bounds.y), new SizeF(bounds.width, bounds.height));
|
|
347
|
+
this.text = stringLayoutResult.layoutLines[i].text;
|
|
348
|
+
if (bounds.y + stringLayoutResult.lineHeight > layoutResult.page.graphics.clientSize.height) {
|
|
349
|
+
isPaginate = true;
|
|
350
|
+
param.page = param.page.graphics.getNextPage();
|
|
351
|
+
if (previousPosition.y > (layoutResult.page.graphics.clientSize.height - layoutResult.bounds.height)) {
|
|
352
|
+
bounds = new RectangleF(0, layoutResult.bounds.height, layoutResult.page.graphics.clientSize.width, stringLayoutResult.lineHeight);
|
|
353
|
+
} else {
|
|
354
|
+
bounds = new RectangleF(0, 0, layoutResult.page.graphics.clientSize.width, stringLayoutResult.lineHeight);
|
|
355
|
+
}
|
|
356
|
+
param.bounds = bounds;
|
|
357
|
+
}
|
|
358
|
+
layoutResult = this.layout(param);
|
|
359
|
+
if (i !== (stringLayoutResult.lines.length - 1)) {
|
|
360
|
+
bounds = new RectangleF(0, layoutResult.bounds.y + stringLayoutResult.lineHeight, layoutResult.page.graphics.clientSize.width, stringLayoutResult.lineHeight);
|
|
361
|
+
} else {
|
|
362
|
+
let lineWidth : number = this.font.measureString(this.text, this.format).width;
|
|
363
|
+
layoutResult = this.calculateResultBounds(layoutResult, lineWidth, layoutResult.page.graphics.clientSize.width, 0);
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
return layoutResult;
|
|
368
|
+
} else {
|
|
369
|
+
let lineSize : SizeF = this.font.measureString(this.text, this.format);
|
|
370
|
+
if (param.bounds.y <= param.page.graphics.clientSize.height) {
|
|
371
|
+
layoutResult = this.layout(param);
|
|
372
|
+
layoutResult = this.calculateResultBounds(layoutResult, lineSize.width, layoutResult.page.graphics.clientSize.width, 0);
|
|
373
|
+
}
|
|
374
|
+
return layoutResult;
|
|
375
|
+
}
|
|
376
|
+
} else {
|
|
377
|
+
let layoutResult : PdfStringLayoutResult = layout.layout(this.value, this.font, this.stringFormat, new SizeF((arg3 as RectangleF).width, 0), false, arg2.graphics.clientSize);
|
|
378
|
+
let result : PdfLayoutResult;
|
|
379
|
+
let param : PdfLayoutParams = new PdfLayoutParams();
|
|
380
|
+
let temparg3 : RectangleF = arg3 as RectangleF;
|
|
381
|
+
let temparg4 : PdfLayoutFormat = arg4 as PdfLayoutFormat;
|
|
382
|
+
param.page = arg2;
|
|
383
|
+
param.bounds = temparg3;
|
|
384
|
+
param.format = (temparg4 != null) ? temparg4 : new PdfLayoutFormat();
|
|
385
|
+
if (layoutResult.lines.length > 1) {
|
|
386
|
+
this.text = layoutResult.layoutLines[0].text;
|
|
387
|
+
if (param.bounds.y <= param.page.graphics.clientSize.height) {
|
|
388
|
+
let previousPosition : PointF = new PointF(param.bounds.x, param.bounds.y);
|
|
389
|
+
result = this.layout(param);
|
|
390
|
+
let bounds : RectangleF = new RectangleF(temparg3.x, result.bounds.y + layoutResult.lineHeight, temparg3.width, layoutResult.lineHeight);
|
|
391
|
+
let isPaginate : boolean = false;
|
|
392
|
+
for (let i : number = 1; i < layoutResult.lines.length; i++) {
|
|
393
|
+
param.page = result.page;
|
|
394
|
+
param.bounds = new RectangleF(bounds.x, bounds.y, bounds.width, bounds.height);
|
|
395
|
+
this.text = layoutResult.layoutLines[i].text;
|
|
396
|
+
if (bounds.y + layoutResult.lineHeight > result.page.graphics.clientSize.height) {
|
|
397
|
+
isPaginate = true;
|
|
398
|
+
param.page = param.page.graphics.getNextPage();
|
|
399
|
+
if (previousPosition.y > (result.page.graphics.clientSize.height - result.bounds.height)) {
|
|
400
|
+
bounds = new RectangleF(temparg3.x, layoutResult.lineHeight, temparg3.width, layoutResult.lineHeight);
|
|
401
|
+
} else {
|
|
402
|
+
bounds = new RectangleF(temparg3.x, 0, temparg3.width, layoutResult.lineHeight);
|
|
403
|
+
}
|
|
404
|
+
param.bounds = bounds;
|
|
405
|
+
}
|
|
406
|
+
result = this.layout(param);
|
|
407
|
+
if (i !== (layoutResult.lines.length - 1)) {
|
|
408
|
+
bounds = new RectangleF(temparg3.x, result.bounds.y + layoutResult.lineHeight, temparg3.width, layoutResult.lineHeight);
|
|
409
|
+
} else {
|
|
410
|
+
let lineWidth : number = this.font.measureString(this.text, this.format).width;
|
|
411
|
+
result = this.calculateResultBounds(result, lineWidth, temparg3.width, temparg3.x);
|
|
412
|
+
}
|
|
413
|
+
}
|
|
414
|
+
}
|
|
415
|
+
return result;
|
|
416
|
+
} else {
|
|
417
|
+
let lineSize : SizeF = this.font.measureString(this.text, this.format);
|
|
418
|
+
if (param.bounds.y <= param.page.graphics.clientSize.height) {
|
|
419
|
+
result = this.layout(param);
|
|
420
|
+
result = this.calculateResultBounds(result, lineSize.width, temparg3.width, temparg3.x);
|
|
421
|
+
}
|
|
422
|
+
return result;
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
}
|
|
426
|
+
}
|
|
427
|
+
private calculateResultBounds(result : PdfLayoutResult, lineWidth : number, maximumWidth : number, startPosition : number) : PdfLayoutResult {
|
|
428
|
+
let shift : number = 0;
|
|
429
|
+
if (this.stringFormat != null && typeof this.stringFormat !== 'undefined' && this.stringFormat.alignment === PdfTextAlignment.Center) {
|
|
430
|
+
result.bounds.x = startPosition + (maximumWidth - lineWidth) / 2;
|
|
431
|
+
result.bounds.width = lineWidth;
|
|
432
|
+
} else if (this.stringFormat != null && typeof this.stringFormat !== 'undefined' && this.stringFormat.alignment === PdfTextAlignment.Right) {
|
|
433
|
+
result.bounds.x = startPosition + (maximumWidth - lineWidth);
|
|
434
|
+
result.bounds.width = lineWidth;
|
|
435
|
+
} else if (this.stringFormat != null && typeof this.stringFormat !== 'undefined' && this.stringFormat.alignment === PdfTextAlignment.Justify) {
|
|
436
|
+
result.bounds.x = startPosition;
|
|
437
|
+
result.bounds.width = maximumWidth;
|
|
438
|
+
} else {
|
|
439
|
+
result.bounds.width = startPosition;
|
|
440
|
+
result.bounds.width = lineWidth;
|
|
441
|
+
}
|
|
442
|
+
return result;
|
|
443
|
+
}
|
|
444
|
+
/* tslint:enable */
|
|
445
|
+
}
|