reamkit 1.25.1 → 1.27.0

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.
Files changed (52) hide show
  1. package/README.md +12 -5
  2. package/dist/esm/pdf-reader/annot-draw.d.ts +65 -0
  3. package/dist/esm/pdf-reader/annot-draw.js +374 -0
  4. package/dist/esm/pdf-reader/annots.d.ts +3 -1
  5. package/dist/esm/pdf-reader/annots.js +18 -4
  6. package/dist/esm/pdf-reader/ccitt.d.ts +18 -0
  7. package/dist/esm/pdf-reader/ccitt.js +70 -2
  8. package/dist/esm/pdf-reader/cie-color.d.ts +33 -0
  9. package/dist/esm/pdf-reader/cie-color.js +112 -0
  10. package/dist/esm/pdf-reader/content.d.ts +47 -17
  11. package/dist/esm/pdf-reader/content.js +175 -14
  12. package/dist/esm/pdf-reader/display.d.ts +1 -1
  13. package/dist/esm/pdf-reader/display.js +21 -6
  14. package/dist/esm/pdf-reader/document.d.ts +6 -0
  15. package/dist/esm/pdf-reader/document.js +29 -1
  16. package/dist/esm/pdf-reader/embedded-fonts.d.ts +12 -3
  17. package/dist/esm/pdf-reader/embedded-fonts.js +22 -3
  18. package/dist/esm/pdf-reader/flow-build.d.ts +12 -4
  19. package/dist/esm/pdf-reader/flow-build.js +102 -8
  20. package/dist/esm/pdf-reader/font.js +97 -16
  21. package/dist/esm/pdf-reader/function.d.ts +16 -0
  22. package/dist/esm/pdf-reader/function.js +414 -0
  23. package/dist/esm/pdf-reader/glyph-names.d.ts +6 -0
  24. package/dist/esm/pdf-reader/glyph-names.js +408 -0
  25. package/dist/esm/pdf-reader/image-decode.d.ts +8 -4
  26. package/dist/esm/pdf-reader/image-decode.js +224 -12
  27. package/dist/esm/pdf-reader/images.d.ts +12 -0
  28. package/dist/esm/pdf-reader/images.js +109 -9
  29. package/dist/esm/pdf-reader/jbig2.d.ts +109 -0
  30. package/dist/esm/pdf-reader/jbig2.js +2606 -0
  31. package/dist/esm/pdf-reader/layout.d.ts +32 -0
  32. package/dist/esm/pdf-reader/layout.js +189 -40
  33. package/dist/esm/pdf-reader/lexer.d.ts +2 -0
  34. package/dist/esm/pdf-reader/lexer.js +4 -0
  35. package/dist/esm/pdf-reader/optional-content.d.ts +36 -0
  36. package/dist/esm/pdf-reader/optional-content.js +93 -0
  37. package/dist/esm/pdf-reader/reader.d.ts +5 -2
  38. package/dist/esm/pdf-reader/reader.js +80 -7
  39. package/dist/esm/pdf-reader/shading.d.ts +71 -6
  40. package/dist/esm/pdf-reader/shading.js +185 -15
  41. package/dist/esm/pdf-reader/standard-metrics.d.ts +8 -0
  42. package/dist/esm/pdf-reader/standard-metrics.js +18 -0
  43. package/dist/esm/pdf-reader/standard-widths.d.ts +20 -0
  44. package/dist/esm/pdf-reader/standard-widths.js +62 -0
  45. package/dist/esm/pdf-reader/tagged.js +204 -32
  46. package/dist/esm/pdf-reader/text-rules.d.ts +16 -0
  47. package/dist/esm/pdf-reader/text-rules.js +112 -0
  48. package/dist/esm/pdf-reader/text.js +78 -4
  49. package/dist/esm/pdf-reader/vector.d.ts +5 -0
  50. package/dist/esm/pdf-reader/vector.js +39 -25
  51. package/dist/esm/word/docx-writer.js +213 -23
  52. package/package.json +1 -1
@@ -0,0 +1,408 @@
1
+ //#region src/pdf-reader/glyph-names.ts
2
+ /** Glyph name → the text it stands for. */
3
+ var GLYPHS = {
4
+ AE: "Æ",
5
+ Aacute: "Á",
6
+ Abreve: "Ă",
7
+ Acaron: "Ǎ",
8
+ Acircumflex: "Â",
9
+ Adieresis: "Ä",
10
+ Adotaccent: "Ȧ",
11
+ Agrave: "À",
12
+ Amacron: "Ā",
13
+ Aogonek: "Ą",
14
+ Aring: "Å",
15
+ Atilde: "Ã",
16
+ Bdotaccent: "Ḃ",
17
+ Cacute: "Ć",
18
+ Ccaron: "Č",
19
+ Ccedilla: "Ç",
20
+ Ccircumflex: "Ĉ",
21
+ Cdotaccent: "Ċ",
22
+ Dcaron: "Ď",
23
+ Dcedilla: "Ḑ",
24
+ Ddotaccent: "Ḋ",
25
+ Eacute: "É",
26
+ Ebreve: "Ĕ",
27
+ Ecaron: "Ě",
28
+ Ecedilla: "Ȩ",
29
+ Ecircumflex: "Ê",
30
+ Edieresis: "Ë",
31
+ Edotaccent: "Ė",
32
+ Egrave: "È",
33
+ Emacron: "Ē",
34
+ Eogonek: "Ę",
35
+ Eth: "Ð",
36
+ Etilde: "Ẽ",
37
+ Euro: "€",
38
+ Fdotaccent: "Ḟ",
39
+ Gacute: "Ǵ",
40
+ Gbreve: "Ğ",
41
+ Gcaron: "Ǧ",
42
+ Gcedilla: "Ģ",
43
+ Gcircumflex: "Ĝ",
44
+ Gdotaccent: "Ġ",
45
+ Gmacron: "Ḡ",
46
+ Hcaron: "Ȟ",
47
+ Hcedilla: "Ḩ",
48
+ Hcircumflex: "Ĥ",
49
+ Hdieresis: "Ḧ",
50
+ Hdotaccent: "Ḣ",
51
+ Iacute: "Í",
52
+ Ibreve: "Ĭ",
53
+ Icaron: "Ǐ",
54
+ Icircumflex: "Î",
55
+ Idieresis: "Ï",
56
+ Idotaccent: "İ",
57
+ Igrave: "Ì",
58
+ Imacron: "Ī",
59
+ Iogonek: "Į",
60
+ Itilde: "Ĩ",
61
+ Jcircumflex: "Ĵ",
62
+ Kacute: "Ḱ",
63
+ Kcaron: "Ǩ",
64
+ Kcedilla: "Ķ",
65
+ Lacute: "Ĺ",
66
+ Lcaron: "Ľ",
67
+ Lcedilla: "Ļ",
68
+ Macute: "Ḿ",
69
+ Mdotaccent: "Ṁ",
70
+ Nacute: "Ń",
71
+ Ncaron: "Ň",
72
+ Ncedilla: "Ņ",
73
+ Ndotaccent: "Ṅ",
74
+ Ngrave: "Ǹ",
75
+ Ntilde: "Ñ",
76
+ OE: "Œ",
77
+ Oacute: "Ó",
78
+ Obreve: "Ŏ",
79
+ Ocaron: "Ǒ",
80
+ Ocircumflex: "Ô",
81
+ Odieresis: "Ö",
82
+ Odotaccent: "Ȯ",
83
+ Ograve: "Ò",
84
+ Ohungarumlaut: "Ő",
85
+ Omacron: "Ō",
86
+ Oogonek: "Ǫ",
87
+ Oslash: "Ø",
88
+ Otilde: "Õ",
89
+ Pacute: "Ṕ",
90
+ Pdotaccent: "Ṗ",
91
+ Racute: "Ŕ",
92
+ Rcaron: "Ř",
93
+ Rcedilla: "Ŗ",
94
+ Rdotaccent: "Ṙ",
95
+ Sacute: "Ś",
96
+ Scaron: "Š",
97
+ Scedilla: "Ş",
98
+ Scircumflex: "Ŝ",
99
+ Sdotaccent: "Ṡ",
100
+ Tcaron: "Ť",
101
+ Tcedilla: "Ţ",
102
+ Tdotaccent: "Ṫ",
103
+ Thorn: "Þ",
104
+ Uacute: "Ú",
105
+ Ubreve: "Ŭ",
106
+ Ucaron: "Ǔ",
107
+ Ucircumflex: "Û",
108
+ Udieresis: "Ü",
109
+ Ugrave: "Ù",
110
+ Uhungarumlaut: "Ű",
111
+ Umacron: "Ū",
112
+ Uogonek: "Ų",
113
+ Uring: "Ů",
114
+ Utilde: "Ũ",
115
+ Vtilde: "Ṽ",
116
+ Wacute: "Ẃ",
117
+ Wcircumflex: "Ŵ",
118
+ Wdieresis: "Ẅ",
119
+ Wdotaccent: "Ẇ",
120
+ Wgrave: "Ẁ",
121
+ Xdieresis: "Ẍ",
122
+ Xdotaccent: "Ẋ",
123
+ Yacute: "Ý",
124
+ Ycircumflex: "Ŷ",
125
+ Ydieresis: "Ÿ",
126
+ Ydotaccent: "Ẏ",
127
+ Ygrave: "Ỳ",
128
+ Ymacron: "Ȳ",
129
+ Ytilde: "Ỹ",
130
+ Zacute: "Ź",
131
+ Zcaron: "Ž",
132
+ Zcircumflex: "Ẑ",
133
+ Zdotaccent: "Ż",
134
+ aacute: "á",
135
+ abreve: "ă",
136
+ acaron: "ǎ",
137
+ acircumflex: "â",
138
+ acute: "´",
139
+ adieresis: "ä",
140
+ adotaccent: "ȧ",
141
+ ae: "æ",
142
+ agrave: "à",
143
+ amacron: "ā",
144
+ ampersand: "&",
145
+ aogonek: "ą",
146
+ aring: "å",
147
+ asciicircum: "^",
148
+ asciitilde: "~",
149
+ asterisk: "*",
150
+ at: "@",
151
+ atilde: "ã",
152
+ backslash: "\\",
153
+ bar: "|",
154
+ bdotaccent: "ḃ",
155
+ braceleft: "{",
156
+ braceright: "}",
157
+ bracketleft: "[",
158
+ bracketright: "]",
159
+ breve: "˘",
160
+ brokenbar: "¦",
161
+ bullet: "•",
162
+ cacute: "ć",
163
+ caron: "ˇ",
164
+ ccaron: "č",
165
+ ccedilla: "ç",
166
+ ccircumflex: "ĉ",
167
+ cdotaccent: "ċ",
168
+ cedilla: "¸",
169
+ cent: "¢",
170
+ circumflex: "ˆ",
171
+ colon: ":",
172
+ comma: ",",
173
+ copyright: "©",
174
+ currency: "¤",
175
+ dagger: "†",
176
+ daggerdbl: "‡",
177
+ dcaron: "ď",
178
+ dcedilla: "ḑ",
179
+ ddotaccent: "ḋ",
180
+ degree: "°",
181
+ dieresis: "¨",
182
+ divide: "÷",
183
+ dollar: "$",
184
+ dotaccent: "˙",
185
+ dotlessi: "ı",
186
+ eacute: "é",
187
+ ebreve: "ĕ",
188
+ ecaron: "ě",
189
+ ecedilla: "ȩ",
190
+ ecircumflex: "ê",
191
+ edieresis: "ë",
192
+ edotaccent: "ė",
193
+ egrave: "è",
194
+ eight: "8",
195
+ ellipsis: "…",
196
+ emacron: "ē",
197
+ emdash: "—",
198
+ endash: "–",
199
+ eogonek: "ę",
200
+ equal: "=",
201
+ eth: "ð",
202
+ etilde: "ẽ",
203
+ euro: "€",
204
+ exclam: "!",
205
+ exclamdown: "¡",
206
+ fdotaccent: "ḟ",
207
+ ff: "ff",
208
+ ffi: "ffi",
209
+ ffl: "ffl",
210
+ fi: "fi",
211
+ five: "5",
212
+ fl: "fl",
213
+ florin: "ƒ",
214
+ four: "4",
215
+ fraction: "⁄",
216
+ gacute: "ǵ",
217
+ gbreve: "ğ",
218
+ gcaron: "ǧ",
219
+ gcedilla: "ģ",
220
+ gcircumflex: "ĝ",
221
+ gdotaccent: "ġ",
222
+ germandbls: "ß",
223
+ gmacron: "ḡ",
224
+ grave: "`",
225
+ greater: ">",
226
+ guillemotleft: "«",
227
+ guillemotright: "»",
228
+ guilsinglleft: "‹",
229
+ guilsinglright: "›",
230
+ hcaron: "ȟ",
231
+ hcedilla: "ḩ",
232
+ hcircumflex: "ĥ",
233
+ hdieresis: "ḧ",
234
+ hdotaccent: "ḣ",
235
+ hungarumlaut: "˝",
236
+ hyphen: "-",
237
+ iacute: "í",
238
+ ibreve: "ĭ",
239
+ icaron: "ǐ",
240
+ icircumflex: "î",
241
+ idieresis: "ï",
242
+ igrave: "ì",
243
+ imacron: "ī",
244
+ iogonek: "į",
245
+ itilde: "ĩ",
246
+ jcaron: "ǰ",
247
+ jcircumflex: "ĵ",
248
+ kacute: "ḱ",
249
+ kcaron: "ǩ",
250
+ kcedilla: "ķ",
251
+ lacute: "ĺ",
252
+ lcaron: "ľ",
253
+ lcedilla: "ļ",
254
+ less: "<",
255
+ logicalnot: "¬",
256
+ macron: "¯",
257
+ macute: "ḿ",
258
+ mdotaccent: "ṁ",
259
+ minus: "−",
260
+ mu: "µ",
261
+ multiply: "×",
262
+ nacute: "ń",
263
+ nbspace: "\xA0",
264
+ ncaron: "ň",
265
+ ncedilla: "ņ",
266
+ ndotaccent: "ṅ",
267
+ ngrave: "ǹ",
268
+ nine: "9",
269
+ ntilde: "ñ",
270
+ numbersign: "#",
271
+ oacute: "ó",
272
+ obreve: "ŏ",
273
+ ocaron: "ǒ",
274
+ ocircumflex: "ô",
275
+ odieresis: "ö",
276
+ odotaccent: "ȯ",
277
+ oe: "œ",
278
+ ogonek: "˛",
279
+ ograve: "ò",
280
+ ohungarumlaut: "ő",
281
+ omacron: "ō",
282
+ one: "1",
283
+ onehalf: "½",
284
+ onequarter: "¼",
285
+ onesuperior: "¹",
286
+ oogonek: "ǫ",
287
+ ordfeminine: "ª",
288
+ ordmasculine: "º",
289
+ oslash: "ø",
290
+ otilde: "õ",
291
+ pacute: "ṕ",
292
+ paragraph: "¶",
293
+ parenleft: "(",
294
+ parenright: ")",
295
+ pdotaccent: "ṗ",
296
+ percent: "%",
297
+ period: ".",
298
+ perthousand: "‰",
299
+ plus: "+",
300
+ plusminus: "±",
301
+ question: "?",
302
+ questiondown: "¿",
303
+ quotedbl: "\"",
304
+ quotedblbase: "„",
305
+ quotedblleft: "“",
306
+ quotedblright: "”",
307
+ quoteleft: "‘",
308
+ quoteright: "’",
309
+ quotesinglbase: "‚",
310
+ quotesingle: "'",
311
+ racute: "ŕ",
312
+ rcaron: "ř",
313
+ rcedilla: "ŗ",
314
+ rdotaccent: "ṙ",
315
+ registered: "®",
316
+ ring: "˚",
317
+ sacute: "ś",
318
+ scaron: "š",
319
+ scedilla: "ş",
320
+ scircumflex: "ŝ",
321
+ sdotaccent: "ṡ",
322
+ section: "§",
323
+ semicolon: ";",
324
+ seven: "7",
325
+ sfthyphen: "­",
326
+ six: "6",
327
+ slash: "/",
328
+ softhyphen: "­",
329
+ space: " ",
330
+ sterling: "£",
331
+ tcaron: "ť",
332
+ tcedilla: "ţ",
333
+ tdieresis: "ẗ",
334
+ tdotaccent: "ṫ",
335
+ thorn: "þ",
336
+ three: "3",
337
+ threequarters: "¾",
338
+ threesuperior: "³",
339
+ tilde: "˜",
340
+ trademark: "™",
341
+ two: "2",
342
+ twosuperior: "²",
343
+ uacute: "ú",
344
+ ubreve: "ŭ",
345
+ ucaron: "ǔ",
346
+ ucircumflex: "û",
347
+ udieresis: "ü",
348
+ ugrave: "ù",
349
+ uhungarumlaut: "ű",
350
+ umacron: "ū",
351
+ underscore: "_",
352
+ uogonek: "ų",
353
+ uring: "ů",
354
+ utilde: "ũ",
355
+ vtilde: "ṽ",
356
+ wacute: "ẃ",
357
+ wcircumflex: "ŵ",
358
+ wdieresis: "ẅ",
359
+ wdotaccent: "ẇ",
360
+ wgrave: "ẁ",
361
+ wring: "ẘ",
362
+ xdieresis: "ẍ",
363
+ xdotaccent: "ẋ",
364
+ yacute: "ý",
365
+ ycircumflex: "ŷ",
366
+ ydieresis: "ÿ",
367
+ ydotaccent: "ẏ",
368
+ yen: "¥",
369
+ ygrave: "ỳ",
370
+ ymacron: "ȳ",
371
+ yring: "ẙ",
372
+ ytilde: "ỹ",
373
+ zacute: "ź",
374
+ zcaron: "ž",
375
+ zcircumflex: "ẑ",
376
+ zdotaccent: "ż",
377
+ zero: "0"
378
+ };
379
+ /**
380
+ * The text a glyph name stands for, or `undefined` when the name says nothing.
381
+ *
382
+ * @param name The name as `/Differences` (or a font program's charset) gives it.
383
+ */
384
+ function textForGlyphName(name) {
385
+ const base = name.includes(".") ? name.split(".")[0] ?? name : name;
386
+ if (base === "") return void 0;
387
+ if (base.includes("_")) {
388
+ const parts = base.split("_").map((p) => textForGlyphName(p));
389
+ return parts.every((p) => p !== void 0) ? parts.join("") : void 0;
390
+ }
391
+ const known = GLYPHS[base];
392
+ if (known !== void 0) return known;
393
+ if (base.length === 1) return base;
394
+ const uni = /^uni((?:[0-9A-Fa-f]{4})+)$/u.exec(base);
395
+ if (uni) {
396
+ const hex = uni[1];
397
+ let out = "";
398
+ for (let i = 0; i < hex.length; i += 4) out += String.fromCodePoint(parseInt(hex.slice(i, i + 4), 16));
399
+ return out;
400
+ }
401
+ const u = /^u([0-9A-Fa-f]{4,6})$/u.exec(base);
402
+ if (u) {
403
+ const cp = parseInt(u[1], 16);
404
+ return cp <= 1114111 ? String.fromCodePoint(cp) : void 0;
405
+ }
406
+ }
407
+ //#endregion
408
+ export { textForGlyphName };
@@ -27,10 +27,14 @@ export type DecodedImage = {
27
27
  * Supports DeviceGray/RGB/CMYK, CalGray/CalRGB, ICCBased (by `/N`) and Indexed
28
28
  * colour spaces; Flate, LZW (EP12), RunLength, ASCII85, ASCIIHex and CCITT
29
29
  * Group 4 / Group 3 1-D fax (EP15) filters; PNG/TIFF predictors; bit depths
30
- * 1/2/4/8/16; and an `/SMask` folded in as the PNG alpha channel. Unsupported
31
- * inputs (stencil `/ImageMask`, Separation/DeviceN/Lab, JBIG2, CCITT Group 3
32
- * 2-D) return a typed failure so the caller records a loss.
30
+ * 1/2/4/8/16; an `/SMask` folded in as the PNG alpha channel; and a stencil
31
+ * `/ImageMask` (§8.9.6.2) given back as RGBA in `fillHex`. Unsupported inputs
32
+ * (Separation/DeviceN/Lab, CCITT Group 3 2-D) return a typed failure so the
33
+ * caller records a loss.
33
34
  *
35
+ * @param file The owning file.
36
+ * @param stream The image XObject, or an inline image wrapped as one.
37
+ * @param fillHex §8.9.6.2 — the non-stroking colour a stencil mask paints in.
34
38
  * @returns The decoded image, or `{ ok: false }` with the loss severity and reason.
35
39
  */
36
- export declare function decodePdfImage(file: PdfFile, stream: PdfStream): DecodedImage;
40
+ export declare function decodePdfImage(file: PdfFile, stream: PdfStream, fillHex?: string): DecodedImage;