@mlightcad/cad-pdf-plugin 1.8.0-preview.3 → 1.8.0-preview.4

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 (189) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +280 -186
  3. package/dist/cad-pdf-plugin-register.js +29 -11
  4. package/dist/cad-pdf-plugin-register.umd.cjs +1 -1
  5. package/dist/cad-pdf-plugin.js +17568 -8428
  6. package/dist/cad-pdf-plugin.umd.cjs +847 -13
  7. package/lib/AcApConvertToPdfCmd.d.ts.map +1 -1
  8. package/lib/AcApConvertToPdfCmd.js +14 -3
  9. package/lib/AcApConvertToPdfCmd.js.map +1 -1
  10. package/lib/AcApImportPdfCmd.d.ts +5 -3
  11. package/lib/AcApImportPdfCmd.d.ts.map +1 -1
  12. package/lib/AcApImportPdfCmd.js +5 -3
  13. package/lib/AcApImportPdfCmd.js.map +1 -1
  14. package/lib/AcApImportPdfPromptCmd.d.ts +16 -0
  15. package/lib/AcApImportPdfPromptCmd.d.ts.map +1 -0
  16. package/lib/AcApImportPdfPromptCmd.js +89 -0
  17. package/lib/AcApImportPdfPromptCmd.js.map +1 -0
  18. package/lib/AcApPdfBlockCmd.d.ts +15 -0
  19. package/lib/AcApPdfBlockCmd.d.ts.map +1 -0
  20. package/lib/AcApPdfBlockCmd.js +75 -0
  21. package/lib/AcApPdfBlockCmd.js.map +1 -0
  22. package/lib/AcApPdfDimCmd.d.ts +20 -0
  23. package/lib/AcApPdfDimCmd.d.ts.map +1 -0
  24. package/lib/AcApPdfDimCmd.js +413 -0
  25. package/lib/AcApPdfDimCmd.js.map +1 -0
  26. package/lib/AcApPdfDimSession.d.ts +82 -0
  27. package/lib/AcApPdfDimSession.d.ts.map +1 -0
  28. package/lib/AcApPdfDimSession.js +252 -0
  29. package/lib/AcApPdfDimSession.js.map +1 -0
  30. package/lib/AcApPdfFontResolver.d.ts.map +1 -1
  31. package/lib/AcApPdfFontResolver.js +2 -5
  32. package/lib/AcApPdfFontResolver.js.map +1 -1
  33. package/lib/AcApPdfHatchCmd.d.ts +33 -0
  34. package/lib/AcApPdfHatchCmd.d.ts.map +1 -0
  35. package/lib/AcApPdfHatchCmd.js +411 -0
  36. package/lib/AcApPdfHatchCmd.js.map +1 -0
  37. package/lib/AcApPdfHatchSession.d.ts +122 -0
  38. package/lib/AcApPdfHatchSession.d.ts.map +1 -0
  39. package/lib/AcApPdfHatchSession.js +357 -0
  40. package/lib/AcApPdfHatchSession.js.map +1 -0
  41. package/lib/AcApPdfImportConvertor.d.ts +47 -5
  42. package/lib/AcApPdfImportConvertor.d.ts.map +1 -1
  43. package/lib/AcApPdfImportConvertor.js +999 -108
  44. package/lib/AcApPdfImportConvertor.js.map +1 -1
  45. package/lib/AcApPdfImportOptions.d.ts +116 -0
  46. package/lib/AcApPdfImportOptions.d.ts.map +1 -0
  47. package/lib/AcApPdfImportOptions.js +31 -0
  48. package/lib/AcApPdfImportOptions.js.map +1 -0
  49. package/lib/AcApPdfImportResources.d.ts +41 -0
  50. package/lib/AcApPdfImportResources.d.ts.map +1 -0
  51. package/lib/AcApPdfImportResources.js +52 -0
  52. package/lib/AcApPdfImportResources.js.map +1 -0
  53. package/lib/AcApPdfPlugin.d.ts +3 -3
  54. package/lib/AcApPdfPlugin.d.ts.map +1 -1
  55. package/lib/AcApPdfPlugin.js +23 -5
  56. package/lib/AcApPdfPlugin.js.map +1 -1
  57. package/lib/AcApPdfScaleCmd.d.ts +22 -0
  58. package/lib/AcApPdfScaleCmd.d.ts.map +1 -0
  59. package/lib/AcApPdfScaleCmd.js +185 -0
  60. package/lib/AcApPdfScaleCmd.js.map +1 -0
  61. package/lib/AcApPdfTextCmd.d.ts +73 -0
  62. package/lib/AcApPdfTextCmd.d.ts.map +1 -0
  63. package/lib/AcApPdfTextCmd.js +777 -0
  64. package/lib/AcApPdfTextCmd.js.map +1 -0
  65. package/lib/AcApPdfTextSession.d.ts +232 -0
  66. package/lib/AcApPdfTextSession.d.ts.map +1 -0
  67. package/lib/AcApPdfTextSession.js +826 -0
  68. package/lib/AcApPdfTextSession.js.map +1 -0
  69. package/lib/acapPdfI18n.d.ts +11 -0
  70. package/lib/acapPdfI18n.d.ts.map +1 -0
  71. package/lib/acapPdfI18n.js +57 -0
  72. package/lib/acapPdfI18n.js.map +1 -0
  73. package/lib/acapPdfPrompts.d.ts +12 -0
  74. package/lib/acapPdfPrompts.d.ts.map +1 -0
  75. package/lib/acapPdfPrompts.js +100 -0
  76. package/lib/acapPdfPrompts.js.map +1 -0
  77. package/lib/index.d.ts +28 -0
  78. package/lib/index.d.ts.map +1 -1
  79. package/lib/index.js +28 -0
  80. package/lib/index.js.map +1 -1
  81. package/lib/pdfDeprecatedMatching.d.ts +27 -0
  82. package/lib/pdfDeprecatedMatching.d.ts.map +1 -0
  83. package/lib/pdfDeprecatedMatching.js +20 -0
  84. package/lib/pdfDeprecatedMatching.js.map +1 -0
  85. package/lib/pdfDimStrokeTexts.d.ts +55 -0
  86. package/lib/pdfDimStrokeTexts.d.ts.map +1 -0
  87. package/lib/pdfDimStrokeTexts.js +274 -0
  88. package/lib/pdfDimStrokeTexts.js.map +1 -0
  89. package/lib/pdfDimensionConvert.d.ts +80 -0
  90. package/lib/pdfDimensionConvert.d.ts.map +1 -0
  91. package/lib/pdfDimensionConvert.js +566 -0
  92. package/lib/pdfDimensionConvert.js.map +1 -0
  93. package/lib/pdfEntityStrokes.d.ts +13 -0
  94. package/lib/pdfEntityStrokes.d.ts.map +1 -0
  95. package/lib/pdfEntityStrokes.js +86 -0
  96. package/lib/pdfEntityStrokes.js.map +1 -0
  97. package/lib/pdfHatchRecover.d.ts +57 -0
  98. package/lib/pdfHatchRecover.d.ts.map +1 -0
  99. package/lib/pdfHatchRecover.js +315 -0
  100. package/lib/pdfHatchRecover.js.map +1 -0
  101. package/lib/pdfImportAppend.d.ts +24 -0
  102. package/lib/pdfImportAppend.d.ts.map +1 -0
  103. package/lib/pdfImportAppend.js +35 -0
  104. package/lib/pdfImportAppend.js.map +1 -0
  105. package/lib/pdfImportEntities.d.ts +63 -0
  106. package/lib/pdfImportEntities.d.ts.map +1 -0
  107. package/lib/pdfImportEntities.js +307 -0
  108. package/lib/pdfImportEntities.js.map +1 -0
  109. package/lib/pdfImportImages.d.ts +90 -0
  110. package/lib/pdfImportImages.d.ts.map +1 -0
  111. package/lib/pdfImportImages.js +294 -0
  112. package/lib/pdfImportImages.js.map +1 -0
  113. package/lib/pdfImportShapes.d.ts +63 -0
  114. package/lib/pdfImportShapes.d.ts.map +1 -0
  115. package/lib/pdfImportShapes.js +248 -0
  116. package/lib/pdfImportShapes.js.map +1 -0
  117. package/lib/pdfVectorImport.d.ts +218 -5
  118. package/lib/pdfVectorImport.d.ts.map +1 -1
  119. package/lib/pdfVectorImport.js +566 -98
  120. package/lib/pdfVectorImport.js.map +1 -1
  121. package/lib/recognition/pdfCurveRecognition.d.ts +91 -0
  122. package/lib/recognition/pdfCurveRecognition.d.ts.map +1 -0
  123. package/lib/recognition/pdfCurveRecognition.js +506 -0
  124. package/lib/recognition/pdfCurveRecognition.js.map +1 -0
  125. package/lib/recognition/pdfDimDigitRecognition.d.ts +18 -0
  126. package/lib/recognition/pdfDimDigitRecognition.d.ts.map +1 -0
  127. package/lib/recognition/pdfDimDigitRecognition.js +520 -0
  128. package/lib/recognition/pdfDimDigitRecognition.js.map +1 -0
  129. package/lib/recognition/pdfDimensionPattern.d.ts +173 -0
  130. package/lib/recognition/pdfDimensionPattern.d.ts.map +1 -0
  131. package/lib/recognition/pdfDimensionPattern.js +1023 -0
  132. package/lib/recognition/pdfDimensionPattern.js.map +1 -0
  133. package/lib/recognition/pdfFormBlocks.d.ts +58 -0
  134. package/lib/recognition/pdfFormBlocks.d.ts.map +1 -0
  135. package/lib/recognition/pdfFormBlocks.js +260 -0
  136. package/lib/recognition/pdfFormBlocks.js.map +1 -0
  137. package/lib/recognition/pdfGlyphClustering.d.ts +81 -0
  138. package/lib/recognition/pdfGlyphClustering.d.ts.map +1 -0
  139. package/lib/recognition/pdfGlyphClustering.js +1005 -0
  140. package/lib/recognition/pdfGlyphClustering.js.map +1 -0
  141. package/lib/recognition/pdfGlyphDictionary.d.ts +49 -0
  142. package/lib/recognition/pdfGlyphDictionary.d.ts.map +1 -0
  143. package/lib/recognition/pdfGlyphDictionary.js +188 -0
  144. package/lib/recognition/pdfGlyphDictionary.js.map +1 -0
  145. package/lib/recognition/pdfHatchFaces.d.ts +84 -0
  146. package/lib/recognition/pdfHatchFaces.d.ts.map +1 -0
  147. package/lib/recognition/pdfHatchFaces.js +1285 -0
  148. package/lib/recognition/pdfHatchFaces.js.map +1 -0
  149. package/lib/recognition/pdfHatchRecognition.d.ts +222 -0
  150. package/lib/recognition/pdfHatchRecognition.d.ts.map +1 -0
  151. package/lib/recognition/pdfHatchRecognition.js +3781 -0
  152. package/lib/recognition/pdfHatchRecognition.js.map +1 -0
  153. package/lib/recognition/pdfRecGeometry.d.ts +67 -0
  154. package/lib/recognition/pdfRecGeometry.d.ts.map +1 -0
  155. package/lib/recognition/pdfRecGeometry.js +365 -0
  156. package/lib/recognition/pdfRecGeometry.js.map +1 -0
  157. package/lib/recognition/pdfTextFontKind.d.ts +16 -0
  158. package/lib/recognition/pdfTextFontKind.d.ts.map +1 -0
  159. package/lib/recognition/pdfTextFontKind.js +51 -0
  160. package/lib/recognition/pdfTextFontKind.js.map +1 -0
  161. package/lib/recognition/pdfTextMerge.d.ts +71 -0
  162. package/lib/recognition/pdfTextMerge.d.ts.map +1 -0
  163. package/lib/recognition/pdfTextMerge.js +382 -0
  164. package/lib/recognition/pdfTextMerge.js.map +1 -0
  165. package/lib/recognition/pdfTextRunMerge.d.ts +28 -0
  166. package/lib/recognition/pdfTextRunMerge.d.ts.map +1 -0
  167. package/lib/recognition/pdfTextRunMerge.js +90 -0
  168. package/lib/recognition/pdfTextRunMerge.js.map +1 -0
  169. package/lib/register.d.ts +8 -2
  170. package/lib/register.d.ts.map +1 -1
  171. package/lib/register.js +29 -4
  172. package/lib/register.js.map +1 -1
  173. package/lib/ui/AcUiPdfDimPanel.d.ts +55 -0
  174. package/lib/ui/AcUiPdfDimPanel.d.ts.map +1 -0
  175. package/lib/ui/AcUiPdfDimPanel.js +347 -0
  176. package/lib/ui/AcUiPdfDimPanel.js.map +1 -0
  177. package/lib/ui/AcUiPdfHatchPanel.d.ts +57 -0
  178. package/lib/ui/AcUiPdfHatchPanel.d.ts.map +1 -0
  179. package/lib/ui/AcUiPdfHatchPanel.js +420 -0
  180. package/lib/ui/AcUiPdfHatchPanel.js.map +1 -0
  181. package/lib/ui/AcUiPdfImportDialog.d.ts +120 -0
  182. package/lib/ui/AcUiPdfImportDialog.d.ts.map +1 -0
  183. package/lib/ui/AcUiPdfImportDialog.js +673 -0
  184. package/lib/ui/AcUiPdfImportDialog.js.map +1 -0
  185. package/lib/ui/AcUiPdfTextPanel.d.ts +95 -0
  186. package/lib/ui/AcUiPdfTextPanel.d.ts.map +1 -0
  187. package/lib/ui/AcUiPdfTextPanel.js +775 -0
  188. package/lib/ui/AcUiPdfTextPanel.js.map +1 -0
  189. package/package.json +11 -11
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pdfGlyphClustering.js","sourceRoot":"","sources":["../../src/recognition/pdfGlyphClustering.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * "Teach once, recognize everywhere" dictionary for exploded text.
3
+ *
4
+ * Within one drawing, an SHX or outlined font draws the same character with
5
+ * the same strokes every time. Once the user types the text of one line,
6
+ * each glyph's normalized geometry is stored with its character; later lines
7
+ * whose glyphs are all known are recognized without asking.
8
+ */
9
+ import type { PdfTextGlyph, PdfTextLineCandidate } from './pdfGlyphClustering';
10
+ /**
11
+ * Computes a translation-, scale- and rotation-invariant signature of one
12
+ * glyph: its stroke segments in line-local coordinates, relative to the
13
+ * glyph's left edge and the line baseline, divided by the text height and
14
+ * quantized.
15
+ */
16
+ export declare function pdfGlyphSignature(glyph: PdfTextGlyph, line: Pick<PdfTextLineCandidate, 'rotation' | 'position' | 'height'>): string;
17
+ /** Learns glyph signatures from confirmed lines and recognizes new lines. */
18
+ export declare class PdfGlyphDictionary {
19
+ private readonly glyphs;
20
+ /** Number of distinct glyph shapes learned. */
21
+ get size(): number;
22
+ /**
23
+ * Serializable form: `[signature, character]` pairs, newest last.
24
+ *
25
+ * @param limit - Keep at most this many entries (the most recent ones).
26
+ */
27
+ toJSON(limit?: number): Array<[string, string]>;
28
+ /**
29
+ * Adds entries produced by {@link toJSON}; malformed entries are skipped.
30
+ *
31
+ * @returns Number of entries loaded.
32
+ */
33
+ load(entries: unknown): number;
34
+ /**
35
+ * Records the characters of a confirmed line.
36
+ *
37
+ * Learning only happens when the typed text (spaces removed) has exactly
38
+ * one character per glyph box; otherwise the pairing is ambiguous.
39
+ *
40
+ * @returns Number of glyph shapes added or confirmed.
41
+ */
42
+ learn(line: PdfTextLineCandidate, text: string): number;
43
+ /**
44
+ * Returns the line text when every glyph is known, inserting a space where
45
+ * two glyphs are further apart than half the text height.
46
+ */
47
+ lookup(line: PdfTextLineCandidate): string | undefined;
48
+ }
49
+ //# sourceMappingURL=pdfGlyphDictionary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pdfGlyphDictionary.d.ts","sourceRoot":"","sources":["../../src/recognition/pdfGlyphDictionary.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAQ9E;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,YAAY,EACnB,IAAI,EAAE,IAAI,CAAC,oBAAoB,EAAE,UAAU,GAAG,UAAU,GAAG,QAAQ,CAAC,GACnE,MAAM,CAwBR;AAED,6EAA6E;AAC7E,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA4B;IAEnD,+CAA+C;IAC/C,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;;;OAIG;IACH,MAAM,CAAC,KAAK,SAAW,GAAG,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAKjD;;;;OAIG;IACH,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM;IAiB9B;;;;;;;OAOG;IACH,KAAK,CAAC,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM;IAYvD;;;OAGG;IACH,MAAM,CAAC,IAAI,EAAE,oBAAoB,GAAG,MAAM,GAAG,SAAS;CAgBvD"}
@@ -0,0 +1,188 @@
1
+ /**
2
+ * "Teach once, recognize everywhere" dictionary for exploded text.
3
+ *
4
+ * Within one drawing, an SHX or outlined font draws the same character with
5
+ * the same strokes every time. Once the user types the text of one line,
6
+ * each glyph's normalized geometry is stored with its character; later lines
7
+ * whose glyphs are all known are recognized without asking.
8
+ */
9
+ var __values = (this && this.__values) || function(o) {
10
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
11
+ if (m) return m.call(o);
12
+ if (o && typeof o.length === "number") return {
13
+ next: function () {
14
+ if (o && i >= o.length) o = void 0;
15
+ return { value: o && o[i++], done: !o };
16
+ }
17
+ };
18
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
19
+ };
20
+ var __read = (this && this.__read) || function (o, n) {
21
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
22
+ if (!m) return o;
23
+ var i = m.call(o), r, ar = [], e;
24
+ try {
25
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
26
+ }
27
+ catch (error) { e = { error: error }; }
28
+ finally {
29
+ try {
30
+ if (r && !r.done && (m = i["return"])) m.call(i);
31
+ }
32
+ finally { if (e) throw e.error; }
33
+ }
34
+ return ar;
35
+ };
36
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
37
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
38
+ if (ar || !(i in from)) {
39
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
40
+ ar[i] = from[i];
41
+ }
42
+ }
43
+ return to.concat(ar || Array.prototype.slice.call(from));
44
+ };
45
+ /** Grid used to quantize normalized glyph coordinates (1/GRID of height). */
46
+ var GRID = 16;
47
+ /** Gap between glyphs (fraction of height) that reads as a space. */
48
+ var SPACE_GAP = 0.5;
49
+ /**
50
+ * Computes a translation-, scale- and rotation-invariant signature of one
51
+ * glyph: its stroke segments in line-local coordinates, relative to the
52
+ * glyph's left edge and the line baseline, divided by the text height and
53
+ * quantized.
54
+ */
55
+ export function pdfGlyphSignature(glyph, line) {
56
+ var e_1, _a;
57
+ var c = Math.cos(line.rotation);
58
+ var s = Math.sin(line.rotation);
59
+ var baseV = -line.position.x * s + line.position.y * c;
60
+ var q = function (value) { return Math.round(value * GRID); };
61
+ var keys = new Set();
62
+ try {
63
+ for (var _b = __values(glyph.strokes), _c = _b.next(); !_c.done; _c = _b.next()) {
64
+ var stroke = _c.value;
65
+ var pts = stroke.points.map(function (p) {
66
+ var u = p.x * c + p.y * s;
67
+ var v = -p.x * s + p.y * c;
68
+ return "".concat(q((u - glyph.minU) / line.height), ",").concat(q((v - baseV) / line.height));
69
+ });
70
+ if (pts.length === 1)
71
+ keys.add(pts[0]);
72
+ for (var i = 0; i < pts.length - 1; i++) {
73
+ if (pts[i] === pts[i + 1])
74
+ continue;
75
+ // Direction-free segment key: strokes may be drawn either way.
76
+ keys.add(pts[i] < pts[i + 1]
77
+ ? "".concat(pts[i], "|").concat(pts[i + 1])
78
+ : "".concat(pts[i + 1], "|").concat(pts[i]));
79
+ }
80
+ }
81
+ }
82
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
83
+ finally {
84
+ try {
85
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
86
+ }
87
+ finally { if (e_1) throw e_1.error; }
88
+ }
89
+ return __spreadArray([], __read(keys), false).sort().join(';');
90
+ }
91
+ /** Learns glyph signatures from confirmed lines and recognizes new lines. */
92
+ var PdfGlyphDictionary = /** @class */ (function () {
93
+ function PdfGlyphDictionary() {
94
+ this.glyphs = new Map();
95
+ }
96
+ Object.defineProperty(PdfGlyphDictionary.prototype, "size", {
97
+ /** Number of distinct glyph shapes learned. */
98
+ get: function () {
99
+ return this.glyphs.size;
100
+ },
101
+ enumerable: false,
102
+ configurable: true
103
+ });
104
+ /**
105
+ * Serializable form: `[signature, character]` pairs, newest last.
106
+ *
107
+ * @param limit - Keep at most this many entries (the most recent ones).
108
+ */
109
+ PdfGlyphDictionary.prototype.toJSON = function (limit) {
110
+ if (limit === void 0) { limit = Infinity; }
111
+ var entries = __spreadArray([], __read(this.glyphs.entries()), false);
112
+ return entries.slice(Math.max(0, entries.length - limit));
113
+ };
114
+ /**
115
+ * Adds entries produced by {@link toJSON}; malformed entries are skipped.
116
+ *
117
+ * @returns Number of entries loaded.
118
+ */
119
+ PdfGlyphDictionary.prototype.load = function (entries) {
120
+ var e_2, _a;
121
+ if (!Array.isArray(entries))
122
+ return 0;
123
+ var count = 0;
124
+ try {
125
+ for (var entries_1 = __values(entries), entries_1_1 = entries_1.next(); !entries_1_1.done; entries_1_1 = entries_1.next()) {
126
+ var entry = entries_1_1.value;
127
+ if (Array.isArray(entry) &&
128
+ typeof entry[0] === 'string' &&
129
+ typeof entry[1] === 'string' &&
130
+ __spreadArray([], __read(entry[1]), false).length === 1) {
131
+ this.glyphs.set(entry[0], entry[1]);
132
+ count++;
133
+ }
134
+ }
135
+ }
136
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
137
+ finally {
138
+ try {
139
+ if (entries_1_1 && !entries_1_1.done && (_a = entries_1.return)) _a.call(entries_1);
140
+ }
141
+ finally { if (e_2) throw e_2.error; }
142
+ }
143
+ return count;
144
+ };
145
+ /**
146
+ * Records the characters of a confirmed line.
147
+ *
148
+ * Learning only happens when the typed text (spaces removed) has exactly
149
+ * one character per glyph box; otherwise the pairing is ambiguous.
150
+ *
151
+ * @returns Number of glyph shapes added or confirmed.
152
+ */
153
+ PdfGlyphDictionary.prototype.learn = function (line, text) {
154
+ var _this = this;
155
+ var chars = __spreadArray([], __read(text.replace(/\s+/g, '')), false);
156
+ if (chars.length === 0 || chars.length !== line.glyphs.length)
157
+ return 0;
158
+ line.glyphs.forEach(function (glyph, i) {
159
+ var signature = pdfGlyphSignature(glyph, line);
160
+ // Re-insert so the Map keeps recently confirmed shapes last.
161
+ _this.glyphs.delete(signature);
162
+ _this.glyphs.set(signature, chars[i]);
163
+ });
164
+ return chars.length;
165
+ };
166
+ /**
167
+ * Returns the line text when every glyph is known, inserting a space where
168
+ * two glyphs are further apart than half the text height.
169
+ */
170
+ PdfGlyphDictionary.prototype.lookup = function (line) {
171
+ var text = '';
172
+ for (var i = 0; i < line.glyphs.length; i++) {
173
+ var glyph = line.glyphs[i];
174
+ var char = this.glyphs.get(pdfGlyphSignature(glyph, line));
175
+ if (char === undefined)
176
+ return undefined;
177
+ if (i > 0 &&
178
+ glyph.minU - line.glyphs[i - 1].maxU > SPACE_GAP * line.height) {
179
+ text += ' ';
180
+ }
181
+ text += char;
182
+ }
183
+ return text.length > 0 ? text : undefined;
184
+ };
185
+ return PdfGlyphDictionary;
186
+ }());
187
+ export { PdfGlyphDictionary };
188
+ //# sourceMappingURL=pdfGlyphDictionary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pdfGlyphDictionary.js","sourceRoot":"","sources":["../../src/recognition/pdfGlyphDictionary.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,84 @@
1
+ /**
2
+ * Hatch boundaries from the faces of the surrounding line work.
3
+ *
4
+ * A hatch written to PDF keeps its strokes but loses its boundary object;
5
+ * the boundary usually survives as ordinary lines, arcs and polylines that
6
+ * cross each other, meet in T-junctions and run on past the hatch. This
7
+ * module splits those edges at every intersection (a planar arrangement),
8
+ * walks the faces of the resulting graph and returns the outline of the
9
+ * faces that hold hatch strokes, holes included.
10
+ *
11
+ * Pure data in, pure data out.
12
+ */
13
+ import type { PdfRecognizedShape } from './pdfCurveRecognition';
14
+ import { type PdfRecPoint } from './pdfRecGeometry';
15
+ /** Tuning for {@link acapPdfFaceBoundary}. */
16
+ export interface PdfFaceBoundaryOptions {
17
+ /** Snap and intersection tolerance in drawing units. */
18
+ tolerance: number;
19
+ /**
20
+ * Share of the hit points the chosen faces must hold, in `[0, 1]`.
21
+ * Default `0.9`.
22
+ */
23
+ minCoverage?: number;
24
+ /** Most edge segments considered (larger inputs are refused). */
25
+ maxSegments?: number;
26
+ }
27
+ /**
28
+ * Planar arrangement of some line work: the faces its edges enclose, ready
29
+ * to be matched against several hit sets with
30
+ * {@link acapPdfFaceBoundaryIn}. Opaque to callers.
31
+ */
32
+ export interface PdfFaceArrangement {
33
+ /** Brand; the contents are internal. */
34
+ readonly kind: 'pdfFaceArrangement';
35
+ }
36
+ /**
37
+ * Splits `edges` at every crossing and near touch and walks the faces of
38
+ * the result. Returns `undefined` when they enclose nothing or hold more
39
+ * than `maxSegments` segments.
40
+ *
41
+ * @param edges - Open or closed polylines of the line work.
42
+ */
43
+ export declare function acapPdfFaceArrangement(edges: readonly (readonly PdfRecPoint[])[], options: Omit<PdfFaceBoundaryOptions, 'minCoverage'>): PdfFaceArrangement | undefined;
44
+ /**
45
+ * Outline loops (outer and holes, to be filled even-odd) of the faces of
46
+ * `edges` that contain the `hits`, or `undefined` when the edges do not
47
+ * enclose them.
48
+ *
49
+ * @param edges - Open or closed polylines of the line work around the hatch.
50
+ * @param hits - Points known to lie inside the hatch (stroke midpoints).
51
+ */
52
+ export declare function acapPdfFaceBoundary(edges: readonly (readonly PdfRecPoint[])[], hits: readonly PdfRecPoint[], options: PdfFaceBoundaryOptions): PdfRecPoint[][] | undefined;
53
+ /**
54
+ * {@link acapPdfFaceBoundary} on an arrangement built once with
55
+ * {@link acapPdfFaceArrangement}, for callers that try several hit sets
56
+ * against the same line work.
57
+ *
58
+ * @param arrangement - Faces of the line work around the hatch.
59
+ * @param hits - Points known to lie inside the hatch (stroke midpoints).
60
+ */
61
+ export declare function acapPdfFaceBoundaryIn(arrangement: PdfFaceArrangement, hits: readonly PdfRecPoint[], options?: Pick<PdfFaceBoundaryOptions, 'minCoverage'>): PdfRecPoint[][] | undefined;
62
+ /** A hatch stroke, for {@link acapPdfFaceBoundaryParts}. */
63
+ export type PdfFaceStroke = readonly [PdfRecPoint, PdfRecPoint];
64
+ /**
65
+ * Like {@link acapPdfFaceBoundaryIn}, but split into separate hatches.
66
+ *
67
+ * Without `strokes` every face holding hits joins one outline. With them,
68
+ * two such faces join only when strokes run across the edge between them
69
+ * (a line drawn over one hatch, such as an axis). When strokes stop on the
70
+ * edge from both sides instead, each side was clipped to its own boundary:
71
+ * two hatches of one pattern that touch, kept apart.
72
+ *
73
+ * @param strokes - The hatch strokes the hits came from.
74
+ * @returns Outline loops per hatch, the one with the most hits first.
75
+ */
76
+ export declare function acapPdfFaceBoundaryParts(arrangement: PdfFaceArrangement, hits: readonly PdfRecPoint[], options?: Pick<PdfFaceBoundaryOptions, 'minCoverage'> & {
77
+ strokes?: readonly PdfFaceStroke[];
78
+ }): PdfRecPoint[][][] | undefined;
79
+ /**
80
+ * Polyline through a recognized shape, with curves sampled so no chord is
81
+ * further than `chordTolerance` from the curve.
82
+ */
83
+ export declare function acapPdfShapePolyline(shape: PdfRecognizedShape, chordTolerance: number): PdfRecPoint[];
84
+ //# sourceMappingURL=pdfHatchFaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pdfHatchFaces.d.ts","sourceRoot":"","sources":["../../src/recognition/pdfHatchFaces.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAC/D,OAAO,EAAW,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAE5D,8CAA8C;AAC9C,MAAM,WAAW,sBAAsB;IACrC,wDAAwD;IACxD,SAAS,EAAE,MAAM,CAAA;IACjB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,iEAAiE;IACjE,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,wCAAwC;IACxC,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAA;CACpC;AAcD;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,SAAS,CAAC,SAAS,WAAW,EAAE,CAAC,EAAE,EAC1C,OAAO,EAAE,IAAI,CAAC,sBAAsB,EAAE,aAAa,CAAC,GACnD,kBAAkB,GAAG,SAAS,CAwBhC;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,SAAS,CAAC,SAAS,WAAW,EAAE,CAAC,EAAE,EAC1C,IAAI,EAAE,SAAS,WAAW,EAAE,EAC5B,OAAO,EAAE,sBAAsB,GAC9B,WAAW,EAAE,EAAE,GAAG,SAAS,CAM7B;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,kBAAkB,EAC/B,IAAI,EAAE,SAAS,WAAW,EAAE,EAC5B,OAAO,CAAC,EAAE,IAAI,CAAC,sBAAsB,EAAE,aAAa,CAAC,GACpD,WAAW,EAAE,EAAE,GAAG,SAAS,CAE7B;AAED,4DAA4D;AAC5D,MAAM,MAAM,aAAa,GAAG,SAAS,CAAC,WAAW,EAAE,WAAW,CAAC,CAAA;AAE/D;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CACtC,WAAW,EAAE,kBAAkB,EAC/B,IAAI,EAAE,SAAS,WAAW,EAAE,EAC5B,OAAO,CAAC,EAAE,IAAI,CAAC,sBAAsB,EAAE,aAAa,CAAC,GAAG;IACtD,OAAO,CAAC,EAAE,SAAS,aAAa,EAAE,CAAA;CACnC,GACA,WAAW,EAAE,EAAE,EAAE,GAAG,SAAS,CA0E/B;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,kBAAkB,EACzB,cAAc,EAAE,MAAM,GACrB,WAAW,EAAE,CAsFf"}