@jasy/pdf 1.0.0-alpha.1 → 1.0.0-alpha.10
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/LICENSE +21 -0
- package/README.md +35 -21
- package/dist/api/args.d.ts +1 -1
- package/dist/api/args.js +2 -5
- package/dist/api/color.d.ts +4 -4
- package/dist/api/color.js +11 -17
- package/dist/api/content.d.ts +20 -13
- package/dist/api/content.js +44 -29
- package/dist/api/descriptor.d.ts +2 -2
- package/dist/api/descriptor.js +121 -31
- package/dist/api/dimension.d.ts +76 -0
- package/dist/api/dimension.js +43 -0
- package/dist/api/font-url.d.ts +28 -0
- package/dist/api/font-url.js +134 -0
- package/dist/api/forms.d.ts +347 -0
- package/dist/api/forms.js +189 -0
- package/dist/api/gradient.d.ts +53 -0
- package/dist/api/gradient.js +97 -0
- package/dist/api/index.d.ts +13 -8
- package/dist/api/index.js +13 -24
- package/dist/api/insets.d.ts +19 -12
- package/dist/api/insets.js +19 -12
- package/dist/api/layout.d.ts +149 -25
- package/dist/api/layout.js +182 -51
- package/dist/api/page-builder.d.ts +40 -0
- package/dist/api/page-builder.js +44 -0
- package/dist/api/structure.d.ts +100 -13
- package/dist/api/structure.js +179 -88
- package/dist/api/table.d.ts +5 -5
- package/dist/api/table.js +38 -26
- package/dist/api/text.d.ts +90 -4
- package/dist/api/text.js +116 -31
- package/dist/assets/font-data.d.ts +2 -0
- package/dist/assets/font-data.js +21 -0
- package/dist/assets/font-data.ts +37 -0
- package/dist/common/color.js +1 -5
- package/dist/constants/page-sizes.js +3 -6
- package/dist/constants/pdf-parts.js +1 -4
- package/dist/crypto/legacy-handler.d.ts +43 -0
- package/dist/crypto/legacy-handler.js +145 -0
- package/dist/crypto/security-handler.d.ts +62 -0
- package/dist/crypto/security-handler.js +155 -0
- package/dist/crypto/webcrypto.d.ts +11 -0
- package/dist/crypto/webcrypto.js +62 -0
- package/dist/edit/acroform-reader.d.ts +70 -0
- package/dist/edit/acroform-reader.js +126 -0
- package/dist/edit/appearance.d.ts +47 -0
- package/dist/edit/appearance.js +171 -0
- package/dist/edit/document.d.ts +145 -0
- package/dist/edit/document.js +642 -0
- package/dist/edit/fill.d.ts +65 -0
- package/dist/edit/fill.js +424 -0
- package/dist/edit/flatten.d.ts +54 -0
- package/dist/edit/flatten.js +462 -0
- package/dist/edit/index.d.ts +20 -0
- package/dist/edit/index.js +18 -0
- package/dist/edit/lexer.d.ts +30 -0
- package/dist/edit/lexer.js +285 -0
- package/dist/edit/objects.d.ts +68 -0
- package/dist/edit/objects.js +83 -0
- package/dist/edit/writer.d.ts +60 -0
- package/dist/edit/writer.js +283 -0
- package/dist/elements/container-element.d.ts +50 -5
- package/dist/elements/container-element.js +100 -39
- package/dist/elements/forms/checkbox-element.d.ts +51 -0
- package/dist/elements/forms/checkbox-element.js +48 -0
- package/dist/elements/forms/choice-element.d.ts +53 -0
- package/dist/elements/forms/choice-element.js +59 -0
- package/dist/elements/forms/push-button-element.d.ts +56 -0
- package/dist/elements/forms/push-button-element.js +49 -0
- package/dist/elements/forms/radio-element.d.ts +52 -0
- package/dist/elements/forms/radio-element.js +49 -0
- package/dist/elements/forms/signature-element.d.ts +54 -0
- package/dist/elements/forms/signature-element.js +47 -0
- package/dist/elements/forms/text-field-element.d.ts +61 -0
- package/dist/elements/forms/text-field-element.js +54 -0
- package/dist/elements/image-element.d.ts +58 -6
- package/dist/elements/image-element.js +145 -111
- package/dist/elements/index.d.ts +26 -10
- package/dist/elements/index.js +26 -28
- package/dist/elements/layout/anchor-element.d.ts +23 -0
- package/dist/elements/layout/anchor-element.js +27 -0
- package/dist/elements/layout/bookmark-element.d.ts +27 -0
- package/dist/elements/layout/bookmark-element.js +30 -0
- package/dist/elements/layout/default-text-style-element.d.ts +30 -0
- package/dist/elements/layout/default-text-style-element.js +47 -0
- package/dist/elements/layout/deferred-element.d.ts +3 -3
- package/dist/elements/layout/deferred-element.js +4 -8
- package/dist/elements/layout/expanded-element.d.ts +6 -4
- package/dist/elements/layout/expanded-element.js +22 -17
- package/dist/elements/layout/keep-together-element.d.ts +42 -0
- package/dist/elements/layout/keep-together-element.js +85 -0
- package/dist/elements/layout/link-element.d.ts +33 -0
- package/dist/elements/layout/link-element.js +39 -0
- package/dist/elements/layout/padding-element.d.ts +10 -5
- package/dist/elements/layout/padding-element.js +25 -16
- package/dist/elements/layout/page-break-element.d.ts +17 -0
- package/dist/elements/layout/page-break-element.js +24 -0
- package/dist/elements/layout/page-builder-element.d.ts +32 -0
- package/dist/elements/layout/page-builder-element.js +45 -0
- package/dist/elements/layout/positioned-element.d.ts +47 -0
- package/dist/elements/layout/positioned-element.js +73 -0
- package/dist/elements/layout/repeating-header-element.d.ts +3 -3
- package/dist/elements/layout/repeating-header-element.js +8 -12
- package/dist/elements/layout/rotated-box-element.d.ts +35 -0
- package/dist/elements/layout/rotated-box-element.js +54 -0
- package/dist/elements/layout/rotated-element.d.ts +32 -0
- package/dist/elements/layout/rotated-element.js +41 -0
- package/dist/elements/layout/sized-container-element.d.ts +2 -2
- package/dist/elements/layout/sized-container-element.js +6 -11
- package/dist/elements/layout/struct-group.d.ts +28 -0
- package/dist/elements/layout/struct-group.js +42 -0
- package/dist/elements/line-element.d.ts +3 -3
- package/dist/elements/line-element.js +5 -10
- package/dist/elements/page-element.d.ts +26 -6
- package/dist/elements/page-element.js +72 -27
- package/dist/elements/pdf-document-element.d.ts +10 -4
- package/dist/elements/pdf-document-element.js +11 -10
- package/dist/elements/pdf-element.d.ts +150 -4
- package/dist/elements/pdf-element.js +138 -20
- package/dist/elements/rectangle-element.d.ts +52 -11
- package/dist/elements/rectangle-element.js +129 -36
- package/dist/elements/row-element.d.ts +45 -4
- package/dist/elements/row-element.js +66 -18
- package/dist/elements/text-element.d.ts +132 -11
- package/dist/elements/text-element.js +206 -56
- package/dist/forms/acroform.d.ts +63 -0
- package/dist/forms/acroform.js +427 -0
- package/dist/forms/appearance.d.ts +58 -0
- package/dist/forms/appearance.js +204 -0
- package/dist/forms/field.d.ts +164 -0
- package/dist/forms/field.js +1 -0
- package/dist/forms/pdf.d.ts +19 -0
- package/dist/forms/pdf.js +28 -0
- package/dist/index.d.ts +3 -3
- package/dist/index.js +3 -19
- package/dist/ir/display-list.d.ts +197 -8
- package/dist/ir/display-list.js +8 -2
- package/dist/layout/alignment.d.ts +10 -0
- package/dist/layout/alignment.js +6 -0
- package/dist/layout/box-constraints.d.ts +61 -0
- package/dist/layout/box-constraints.js +88 -6
- package/dist/layout/collect-images.d.ts +9 -0
- package/dist/layout/collect-images.js +34 -0
- package/dist/layout/fragmentation.d.ts +20 -1
- package/dist/layout/fragmentation.js +74 -18
- package/dist/layout/insets.d.ts +28 -0
- package/dist/layout/insets.js +20 -0
- package/dist/platform/browser-fs.d.ts +2 -0
- package/dist/platform/browser-fs.js +9 -0
- package/dist/platform/browser-image.d.ts +5 -0
- package/dist/platform/browser-image.js +13 -0
- package/dist/platform/node-fs.d.ts +2 -0
- package/dist/platform/node-fs.js +10 -0
- package/dist/platform/node-image.d.ts +5 -0
- package/dist/platform/node-image.js +9 -0
- package/dist/renderer/anchor-renderer.d.ts +6 -0
- package/dist/renderer/anchor-renderer.js +11 -0
- package/dist/renderer/bookmark-renderer.d.ts +6 -0
- package/dist/renderer/bookmark-renderer.js +11 -0
- package/dist/renderer/container-renderer.d.ts +3 -3
- package/dist/renderer/container-renderer.js +11 -28
- package/dist/renderer/default-text-style-renderer.d.ts +6 -0
- package/dist/renderer/default-text-style-renderer.js +10 -0
- package/dist/renderer/deferred-renderer.d.ts +3 -3
- package/dist/renderer/deferred-renderer.js +8 -23
- package/dist/renderer/emoji-image.d.ts +9 -0
- package/dist/renderer/emoji-image.js +68 -0
- package/dist/renderer/expanded-renderer.d.ts +3 -3
- package/dist/renderer/expanded-renderer.js +6 -21
- package/dist/renderer/form-field-renderer.d.ts +20 -0
- package/dist/renderer/form-field-renderer.js +12 -0
- package/dist/renderer/image-renderer.d.ts +4 -4
- package/dist/renderer/image-renderer.js +86 -75
- package/dist/renderer/index.d.ts +10 -10
- package/dist/renderer/index.js +10 -26
- package/dist/renderer/keep-together-renderer.d.ts +10 -0
- package/dist/renderer/keep-together-renderer.js +12 -0
- package/dist/renderer/line-renderer.d.ts +3 -3
- package/dist/renderer/line-renderer.js +13 -28
- package/dist/renderer/link-renderer.d.ts +6 -0
- package/dist/renderer/link-renderer.js +11 -0
- package/dist/renderer/padding-renderer.d.ts +3 -3
- package/dist/renderer/padding-renderer.js +6 -21
- package/dist/renderer/page-break-renderer.d.ts +14 -0
- package/dist/renderer/page-break-renderer.js +15 -0
- package/dist/renderer/page-builder-renderer.d.ts +6 -0
- package/dist/renderer/page-builder-renderer.js +11 -0
- package/dist/renderer/page-renderer.d.ts +2 -2
- package/dist/renderer/page-renderer.js +115 -77
- package/dist/renderer/pdf-backend.d.ts +31 -4
- package/dist/renderer/pdf-backend.js +287 -49
- package/dist/renderer/pdf-config.js +4 -7
- package/dist/renderer/pdf-document-class.d.ts +5 -5
- package/dist/renderer/pdf-document-class.js +27 -41
- package/dist/renderer/pdf-document-renderer.d.ts +19 -10
- package/dist/renderer/pdf-document-renderer.js +135 -91
- package/dist/renderer/pdf-renderer.d.ts +2 -2
- package/dist/renderer/pdf-renderer.js +165 -90
- package/dist/renderer/positioned-renderer.d.ts +6 -0
- package/dist/renderer/positioned-renderer.js +10 -0
- package/dist/renderer/rectangle-renderer.d.ts +3 -3
- package/dist/renderer/rectangle-renderer.js +49 -44
- package/dist/renderer/repeating-header-renderer.d.ts +3 -3
- package/dist/renderer/repeating-header-renderer.js +10 -26
- package/dist/renderer/rotated-renderer.d.ts +7 -0
- package/dist/renderer/rotated-renderer.js +29 -0
- package/dist/renderer/row-renderer.d.ts +3 -3
- package/dist/renderer/row-renderer.js +11 -28
- package/dist/renderer/struct-group-renderer.d.ts +10 -0
- package/dist/renderer/struct-group-renderer.js +24 -0
- package/dist/renderer/text-renderer.d.ts +9 -5
- package/dist/renderer/text-renderer.js +437 -89
- package/dist/text/advance.d.ts +34 -0
- package/dist/text/advance.js +45 -0
- package/dist/text/arabic.d.ts +20 -0
- package/dist/text/arabic.js +101 -0
- package/dist/text/bidi.d.ts +33 -0
- package/dist/text/bidi.js +94 -0
- package/dist/text/emoji-codepoints.d.ts +1 -0
- package/dist/text/emoji-codepoints.js +29 -0
- package/dist/text/font-fallback.d.ts +25 -0
- package/dist/text/font-fallback.js +38 -0
- package/dist/text/line-breaker.d.ts +50 -12
- package/dist/text/line-breaker.js +158 -37
- package/dist/text/line-metrics.d.ts +49 -0
- package/dist/text/line-metrics.js +57 -0
- package/dist/text/orphans-widows.d.ts +27 -0
- package/dist/text/orphans-widows.js +53 -0
- package/dist/text/shape.d.ts +29 -0
- package/dist/text/shape.js +67 -0
- package/dist/text/text-decoration.d.ts +50 -0
- package/dist/text/text-decoration.js +62 -0
- package/dist/text/text-style.d.ts +60 -0
- package/dist/text/text-style.js +79 -0
- package/dist/utils/afm-parser.d.ts +34 -0
- package/dist/utils/afm-parser.js +76 -17
- package/dist/utils/bytes.d.ts +24 -0
- package/dist/utils/bytes.js +76 -0
- package/dist/utils/dest-registry.d.ts +22 -0
- package/dist/utils/dest-registry.js +32 -0
- package/dist/utils/flex-layout.d.ts +36 -9
- package/dist/utils/flex-layout.js +207 -30
- package/dist/utils/font-metrics.d.ts +20 -1
- package/dist/utils/font-metrics.js +1 -2
- package/dist/utils/font-path.js +3 -6
- package/dist/utils/gsub.d.ts +36 -0
- package/dist/utils/gsub.js +178 -0
- package/dist/utils/image-helper.d.ts +6 -5
- package/dist/utils/image-helper.js +101 -111
- package/dist/utils/inflate.d.ts +16 -0
- package/dist/utils/inflate.js +52 -0
- package/dist/utils/md5.d.ts +4 -0
- package/dist/utils/md5.js +79 -0
- package/dist/utils/outline.d.ts +21 -0
- package/dist/utils/outline.js +79 -0
- package/dist/utils/pdf-object-manager.d.ts +110 -8
- package/dist/utils/pdf-object-manager.js +583 -141
- package/dist/utils/renderer-registry.d.ts +13 -1
- package/dist/utils/renderer-registry.js +23 -6
- package/dist/utils/struct-tree.d.ts +44 -0
- package/dist/utils/struct-tree.js +129 -0
- package/dist/utils/ttf-parser.d.ts +134 -2
- package/dist/utils/ttf-parser.js +873 -50
- package/dist/utils/ttf-subsetter.d.ts +1 -1
- package/dist/utils/ttf-subsetter.js +40 -42
- package/dist/utils/ua-xmp.d.ts +9 -0
- package/dist/utils/ua-xmp.js +32 -0
- package/dist/utils/utf8-to-windows1252-encoder.d.ts +6 -0
- package/dist/utils/utf8-to-windows1252-encoder.js +11 -4
- package/dist/utils/woff.d.ts +10 -0
- package/dist/utils/woff.js +116 -0
- package/dist/validators/element-validator.d.ts +2 -2
- package/dist/validators/element-validator.js +31 -26
- package/package.json +22 -2
|
@@ -1,5 +1,16 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import
|
|
1
|
+
import type { OverflowPolicy } from "../layout/fragmentation.js";
|
|
2
|
+
import { TTFParser } from "./ttf-parser.js";
|
|
3
|
+
import { type ShapedGlyph } from "../text/shape.js";
|
|
4
|
+
import type { SecurityHandler } from "../crypto/security-handler.js";
|
|
5
|
+
import type { Gradient } from "../ir/display-list.js";
|
|
6
|
+
import type { FontVerticals } from "../text/line-metrics.js";
|
|
7
|
+
import type { FontDecoration } from "../text/text-decoration.js";
|
|
8
|
+
import { StructTree } from "./struct-tree.js";
|
|
9
|
+
import { OutlineBuilder } from "./outline.js";
|
|
10
|
+
import { DestRegistry } from "./dest-registry.js";
|
|
11
|
+
import { AcroFormCollector } from "../forms/acroform.js";
|
|
12
|
+
import type { PDFConfig } from "../renderer/pdf-document-class.js";
|
|
13
|
+
import type { FontMetrics } from "./font-metrics.js";
|
|
3
14
|
interface FontIndexes {
|
|
4
15
|
fontIndex: number;
|
|
5
16
|
resourceIndex: number;
|
|
@@ -19,31 +30,69 @@ export declare class PDFObjectManager implements FontMetrics {
|
|
|
19
30
|
private fonts;
|
|
20
31
|
private images;
|
|
21
32
|
private extGStates;
|
|
33
|
+
private shadings;
|
|
34
|
+
private emojiFontName?;
|
|
35
|
+
private emojiImage?;
|
|
22
36
|
private pdfConfig;
|
|
23
37
|
pageFormat: [number, number];
|
|
24
38
|
private afmParsers;
|
|
25
39
|
private customFonts;
|
|
40
|
+
private verticalsCache;
|
|
41
|
+
private decorationCache;
|
|
26
42
|
private customFontEmit;
|
|
43
|
+
private shapeCache;
|
|
44
|
+
private shapedOrigins;
|
|
27
45
|
private attachments;
|
|
28
46
|
private xmpMetadata?;
|
|
29
47
|
private outputIntent?;
|
|
30
48
|
private pdfVersion;
|
|
31
49
|
private documentId;
|
|
32
50
|
private compress;
|
|
51
|
+
private overflowPolicy;
|
|
52
|
+
private security?;
|
|
53
|
+
private encJobs;
|
|
54
|
+
private strJobs;
|
|
55
|
+
private encryptObjNum?;
|
|
56
|
+
private _struct;
|
|
57
|
+
get struct(): StructTree;
|
|
58
|
+
private _outline;
|
|
59
|
+
get outline(): OutlineBuilder;
|
|
60
|
+
private _dests;
|
|
61
|
+
get dests(): DestRegistry;
|
|
62
|
+
private _acroform;
|
|
63
|
+
get acroform(): AcroFormCollector;
|
|
33
64
|
constructor();
|
|
34
65
|
addObject(content: string): number;
|
|
35
66
|
replaceObject(objectNumber: number, content: string): void;
|
|
36
67
|
setCompress(on: boolean): void;
|
|
68
|
+
setOverflowPolicy(policy: OverflowPolicy): void;
|
|
69
|
+
getOverflowPolicy(): OverflowPolicy;
|
|
70
|
+
private encToken;
|
|
71
|
+
private strToken;
|
|
72
|
+
/**
|
|
73
|
+
* The single choke-point every literal string in an OBJECT goes through - a field's `/T` and `/V`, a
|
|
74
|
+
* bookmark `/Title`, a link `/URI`, an `/Alt` text, a destination name.
|
|
75
|
+
*
|
|
76
|
+
* Without a security handler this is the escaped literal we have always written, so output stays
|
|
77
|
+
* byte-identical. With one, the raw bytes are registered for the finalize pass and a placeholder takes
|
|
78
|
+
* their place: ISO 32000-1 7.6.2 requires ALL strings and streams to be encrypted, and the ones missed
|
|
79
|
+
* here were exactly the values a password is supposed to protect (ISSUE-7).
|
|
80
|
+
*
|
|
81
|
+
* A string INSIDE a content stream needs none of this - the stream is enciphered as a whole.
|
|
82
|
+
*/
|
|
83
|
+
pdfString(text: string): string;
|
|
84
|
+
private streamPayload;
|
|
37
85
|
private stream;
|
|
38
86
|
addContentStream(content: string): number;
|
|
87
|
+
addFormXObject(bbox: string, content: string, resources?: string): number;
|
|
39
88
|
changePDFConfig(config: PDFConfig): void;
|
|
40
89
|
getPDFConfig(): PDFConfig;
|
|
41
90
|
private fillConfigWithStandardValues;
|
|
42
91
|
private getCurrentByteLength;
|
|
43
92
|
setParentObjectNumber(number: number): void;
|
|
44
93
|
getParentObjectNumber(): number;
|
|
45
|
-
registerImage(width: number, height: number, imageType: string, imageData: string): number;
|
|
46
|
-
attachFile(name: string, data:
|
|
94
|
+
registerImage(width: number, height: number, imageType: string, imageData: string, smaskData?: string): number;
|
|
95
|
+
attachFile(name: string, data: Uint8Array, opts?: {
|
|
47
96
|
relationship?: string;
|
|
48
97
|
mimeType?: string;
|
|
49
98
|
description?: string;
|
|
@@ -54,7 +103,7 @@ export declare class PDFObjectManager implements FontMetrics {
|
|
|
54
103
|
}[];
|
|
55
104
|
setXmpMetadata(xml: string): void;
|
|
56
105
|
getXmpMetadata(): string | undefined;
|
|
57
|
-
setOutputIntent(icc:
|
|
106
|
+
setOutputIntent(icc: Uint8Array, opts?: {
|
|
58
107
|
identifier?: string;
|
|
59
108
|
info?: string;
|
|
60
109
|
}): void;
|
|
@@ -63,10 +112,15 @@ export declare class PDFObjectManager implements FontMetrics {
|
|
|
63
112
|
getPdfVersion(): string;
|
|
64
113
|
getHeader(): string;
|
|
65
114
|
enableDocumentId(): void;
|
|
115
|
+
setSecurityHandler(handler: SecurityHandler): void;
|
|
116
|
+
finalizeEncryption(): Promise<void>;
|
|
66
117
|
registerExtGState(fillAlpha: number, strokeAlpha: number): string;
|
|
67
118
|
getAllExtGStatesRaw(): Map<string, number>;
|
|
119
|
+
registerShading(g: Gradient): string;
|
|
120
|
+
private buildShadingFunction;
|
|
121
|
+
getAllShadingsRaw(): Map<string, number>;
|
|
68
122
|
registerFont(fontName: string, fontStyle?: FontStyle, fullName?: string): FontIndexes;
|
|
69
|
-
registerCustomFont(name: string, data:
|
|
123
|
+
registerCustomFont(name: string, data: Uint8Array, style?: FontStyle): void;
|
|
70
124
|
private ensureEmitted;
|
|
71
125
|
finalizeCustomFonts(): void;
|
|
72
126
|
private subsetTag;
|
|
@@ -74,18 +128,66 @@ export declare class PDFObjectManager implements FontMetrics {
|
|
|
74
128
|
private resolveCustomStyle;
|
|
75
129
|
private getCustomFont;
|
|
76
130
|
isCustomFont(name?: string, style?: FontStyle): boolean;
|
|
131
|
+
getColorFont(name: string, style?: FontStyle): TTFParser | undefined;
|
|
132
|
+
setEmojiFont(name: string): void;
|
|
133
|
+
getEmojiFont(): string | undefined;
|
|
134
|
+
setEmojiImageSource(url: string, format: string): void;
|
|
135
|
+
getEmojiImageSource(): {
|
|
136
|
+
url: string;
|
|
137
|
+
format: string;
|
|
138
|
+
} | undefined;
|
|
139
|
+
/**
|
|
140
|
+
* Whether a family can draw this code point at all. An embedded face answers from its `cmap`; a
|
|
141
|
+
* standard-14 one can only draw what Windows-1252 encodes, which is what its `/Widths` array covers.
|
|
142
|
+
* Used to pick a family out of a fallback stack, per code point.
|
|
143
|
+
*/
|
|
144
|
+
hasGlyph(codePoint: number, fontFamily: string, fontStyle?: FontStyle): boolean;
|
|
145
|
+
private colorRenders;
|
|
77
146
|
getCustomFontResource(name: string, style?: FontStyle): FontIndexes | undefined;
|
|
147
|
+
/** How many glyphs a run draws - its code-point count unless a ligature merged some. `letterSpacing`
|
|
148
|
+
* is per glyph (`Tc`), so this is what it multiplies. */
|
|
149
|
+
shapedGlyphCount(text: string, fontFamily?: string, fontStyle?: FontStyle): number | undefined;
|
|
150
|
+
/**
|
|
151
|
+
* The shaped glyphs of a run, or undefined when nothing needed shaping. The ONE place shaping is
|
|
152
|
+
* decided, so measuring and drawing cannot disagree. Memoised: a paragraph is measured several
|
|
153
|
+
* times (layout, pagination, drawing).
|
|
154
|
+
*/
|
|
155
|
+
shapeText(text: string, fontFamily?: string, fontStyle?: FontStyle): ShapedGlyph[] | undefined;
|
|
156
|
+
/** Hex Identity-H for glyphs the producer already resolved (a shaped run), which cannot be given as
|
|
157
|
+
* text. Recording each keeps it in the subset. */
|
|
158
|
+
registerGlyphs(name: string, glyphs: readonly number[], style?: FontStyle): string;
|
|
78
159
|
encodeCustomText(name: string, text: string, style?: FontStyle): string;
|
|
79
160
|
private buildFontFile2;
|
|
80
161
|
private buildFontDescriptor;
|
|
81
162
|
private buildCIDFont;
|
|
82
163
|
private buildToUnicode;
|
|
83
164
|
private buildType0;
|
|
165
|
+
getFontVerticals(fontFamily: string, fontStyle: FontStyle): FontVerticals;
|
|
166
|
+
getFontDecoration(fontFamily: string, fontStyle: FontStyle): FontDecoration;
|
|
167
|
+
kerningEnabled: boolean;
|
|
168
|
+
setKerning(enabled: boolean): void;
|
|
169
|
+
/**
|
|
170
|
+
* The kerning adjustment for each adjacent code-point pair of `text`, in em/1000 (the sign the
|
|
171
|
+
* font declares: negative tightens). Length is `codePointCount - 1`. Zero at any pair next to a
|
|
172
|
+
* space - letters are never kerned against a space, which also keeps a per-word measure equal to a
|
|
173
|
+
* whole-line one (the space pairs contribute nothing either way).
|
|
174
|
+
*
|
|
175
|
+
* Standard-14 answers from the AFM `KPX` pairs. An embedded font has no kerning yet (its `kern` /
|
|
176
|
+
* `GPOS` tables are unparsed), so it returns zeros - never a wrong value, just no adjustment.
|
|
177
|
+
*/
|
|
178
|
+
getKernPairs(text: string, fontFamily: string, fontStyle: FontStyle): number[];
|
|
179
|
+
/**
|
|
180
|
+
* Where the glyphs of `text` put ink inside a horizontal band, as x-intervals in POINTS measured
|
|
181
|
+
* from the start of the run. This is what an underline steps around ("skip-ink").
|
|
182
|
+
*
|
|
183
|
+
* `bandTop` / `bandBottom` are in points relative to the baseline, y UP (so both negative under
|
|
184
|
+
* it). Only an EMBEDDED font can answer: the standard-14 outlines live in the viewer, not here.
|
|
185
|
+
* Callers must check `isCustomFont` first rather than treat an empty result as "no descenders".
|
|
186
|
+
*/
|
|
187
|
+
getInkSpansInBand(text: string, fontSize: number, fontFamily: string, fontStyle: FontStyle, bandTop: number, bandBottom: number, letterSpacing?: number): Array<[number, number]>;
|
|
84
188
|
getStringWidth(text: string, fontFamily: string, fontSize: number, fontStyle: FontStyle): number;
|
|
85
|
-
private getCharCode;
|
|
86
189
|
private getAVMParserByFont;
|
|
87
190
|
getCharWidth(char: string, fontSize: number, fullFontName?: string, fontName?: string, fontStyle?: FontStyle): number;
|
|
88
|
-
private getKerning;
|
|
89
191
|
getAllFontsRaw(): Map<string, FontIndexes>;
|
|
90
192
|
getAllImagesRaw(): Map<string, number>;
|
|
91
193
|
getRenderedObjects(): string;
|