@mlightcad/cad-pdf-plugin 1.7.3 → 1.7.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.
@@ -4,6 +4,7 @@ import { AcApContext, AcEdCommand } from '@mlightcad/cad-simple-viewer';
4
4
  * The command name is `ipdf`.
5
5
  */
6
6
  export declare class AcApImportPdfCmd extends AcEdCommand {
7
+ constructor();
7
8
  /**
8
9
  * Opens a file picker and imports vector geometry from the selected PDF.
9
10
  *
@@ -1 +1 @@
1
- {"version":3,"file":"AcApImportPdfCmd.d.ts","sourceRoot":"","sources":["../src/AcApImportPdfCmd.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAIvE;;;GAGG;AACH,qBAAa,gBAAiB,SAAQ,WAAW;IAC/C;;;;OAIG;IACG,OAAO,CAAC,OAAO,EAAE,WAAW;CAInC"}
1
+ {"version":3,"file":"AcApImportPdfCmd.d.ts","sourceRoot":"","sources":["../src/AcApImportPdfCmd.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,WAAW,EAEZ,MAAM,8BAA8B,CAAA;AAIrC;;;GAGG;AACH,qBAAa,gBAAiB,SAAQ,WAAW;;IAK/C;;;;OAIG;IACG,OAAO,CAAC,OAAO,EAAE,WAAW;CAInC"}
@@ -49,7 +49,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
49
49
  if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
50
50
  }
51
51
  };
52
- import { AcEdCommand } from '@mlightcad/cad-simple-viewer';
52
+ import { AcEdCommand, AcEdOpenMode } from '@mlightcad/cad-simple-viewer';
53
53
  import { AcApPdfImportConvertor } from './AcApPdfImportConvertor';
54
54
  /**
55
55
  * Command for importing vector geometry from a PDF file.
@@ -58,7 +58,9 @@ import { AcApPdfImportConvertor } from './AcApPdfImportConvertor';
58
58
  var AcApImportPdfCmd = /** @class */ (function (_super) {
59
59
  __extends(AcApImportPdfCmd, _super);
60
60
  function AcApImportPdfCmd() {
61
- return _super !== null && _super.apply(this, arguments) || this;
61
+ var _this = _super.call(this) || this;
62
+ _this.mode = AcEdOpenMode.Write;
63
+ return _this;
62
64
  }
63
65
  /**
64
66
  * Opens a file picker and imports vector geometry from the selected PDF.
@@ -69,9 +71,14 @@ var AcApImportPdfCmd = /** @class */ (function (_super) {
69
71
  return __awaiter(this, void 0, void 0, function () {
70
72
  var convertor;
71
73
  return __generator(this, function (_a) {
72
- convertor = new AcApPdfImportConvertor();
73
- convertor.importFromFilePicker(context);
74
- return [2 /*return*/];
74
+ switch (_a.label) {
75
+ case 0:
76
+ convertor = new AcApPdfImportConvertor();
77
+ return [4 /*yield*/, convertor.importFromFilePicker(context)];
78
+ case 1:
79
+ _a.sent();
80
+ return [2 /*return*/];
81
+ }
75
82
  });
76
83
  });
77
84
  };
@@ -1 +1 @@
1
- {"version":3,"file":"AcApImportPdfCmd.js","sourceRoot":"","sources":["../src/AcApImportPdfCmd.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAe,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAEvE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AAEjE;;;GAGG;AACH;IAAsC,oCAAW;IAAjD;;IAUA,CAAC;IATC;;;;OAIG;IACG,kCAAO,GAAb,UAAc,OAAoB;;;;gBAC1B,SAAS,GAAG,IAAI,sBAAsB,EAAE,CAAA;gBAC9C,SAAS,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAA;;;;KACxC;IACH,uBAAC;AAAD,CAAC,AAVD,CAAsC,WAAW,GAUhD"}
1
+ {"version":3,"file":"AcApImportPdfCmd.js","sourceRoot":"","sources":["../src/AcApImportPdfCmd.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAEL,WAAW,EACX,YAAY,EACb,MAAM,8BAA8B,CAAA;AAErC,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AAEjE;;;GAGG;AACH;IAAsC,oCAAW;IAC/C;QACE,YAAA,MAAK,WAAE,SAAA;QACP,KAAI,CAAC,IAAI,GAAG,YAAY,CAAC,KAAK,CAAA;;IAChC,CAAC;IACD;;;;OAIG;IACG,kCAAO,GAAb,UAAc,OAAoB;;;;;;wBAC1B,SAAS,GAAG,IAAI,sBAAsB,EAAE,CAAA;wBAC9C,qBAAM,SAAS,CAAC,oBAAoB,CAAC,OAAO,CAAC,EAAA;;wBAA7C,SAA6C,CAAA;;;;;KAC9C;IACH,uBAAC;AAAD,CAAC,AAdD,CAAsC,WAAW,GAchD"}
@@ -9,9 +9,11 @@ import type { AcPdfTextFontResolver } from '@mlightcad/pdf-renderer';
9
9
  * Only a catalog *miss* falls through to the replacement — a direct SHX hit
10
10
  * stays SHX so those texts keep their vector-glyph appearance in the PDF.
11
11
  *
12
- * The catalog entry's `url` is fetched on demand; bytes are not kept between
13
- * calls beyond pdf-lib's own embed cache, so a document using several CJK
14
- * faces embeds each subset once regardless of how many texts reference it.
12
+ * Prefer IndexedDB (`AcApFontUtil.getCachedMeshFontProgram`) when the face was
13
+ * already cached during rendering. Fall back to `fetch` the catalog URL, then
14
+ * persist the program to IndexedDB for later exports. MeshFont itself keeps
15
+ * only parsed glyph tables, so without IDB/fetch PDF export would have nothing
16
+ * to embed.
15
17
  *
16
18
  * SHX fonts have no embeddable program and resolve `undefined` — the renderer
17
19
  * then paints those texts as vector glyphs, matching the on-screen fallback.
@@ -1 +1 @@
1
- {"version":3,"file":"AcApPdfFontResolver.d.ts","sourceRoot":"","sources":["../src/AcApPdfFontResolver.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAEpE;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,qBAAqB,EAAE,qBA+BnC,CAAA"}
1
+ {"version":3,"file":"AcApPdfFontResolver.d.ts","sourceRoot":"","sources":["../src/AcApPdfFontResolver.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAEpE;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,qBAAqB,EAAE,qBA4CnC,CAAA"}
@@ -34,6 +34,31 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
34
34
  if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
35
  }
36
36
  };
37
+ var __read = (this && this.__read) || function (o, n) {
38
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
39
+ if (!m) return o;
40
+ var i = m.call(o), r, ar = [], e;
41
+ try {
42
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
43
+ }
44
+ catch (error) { e = { error: error }; }
45
+ finally {
46
+ try {
47
+ if (r && !r.done && (m = i["return"])) m.call(i);
48
+ }
49
+ finally { if (e) throw e.error; }
50
+ }
51
+ return ar;
52
+ };
53
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
54
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
55
+ if (ar || !(i in from)) {
56
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
57
+ ar[i] = from[i];
58
+ }
59
+ }
60
+ return to.concat(ar || Array.prototype.slice.call(from));
61
+ };
37
62
  import { AcApFontUtil } from '@mlightcad/cad-simple-viewer';
38
63
  /**
39
64
  * Resolves embeddable TTF/OTF/WOFF font programs for `textMode: 'text'` PDF
@@ -45,15 +70,18 @@ import { AcApFontUtil } from '@mlightcad/cad-simple-viewer';
45
70
  * Only a catalog *miss* falls through to the replacement — a direct SHX hit
46
71
  * stays SHX so those texts keep their vector-glyph appearance in the PDF.
47
72
  *
48
- * The catalog entry's `url` is fetched on demand; bytes are not kept between
49
- * calls beyond pdf-lib's own embed cache, so a document using several CJK
50
- * faces embeds each subset once regardless of how many texts reference it.
73
+ * Prefer IndexedDB (`AcApFontUtil.getCachedMeshFontProgram`) when the face was
74
+ * already cached during rendering. Fall back to `fetch` the catalog URL, then
75
+ * persist the program to IndexedDB for later exports. MeshFont itself keeps
76
+ * only parsed glyph tables, so without IDB/fetch PDF export would have nothing
77
+ * to embed.
51
78
  *
52
79
  * SHX fonts have no embeddable program and resolve `undefined` — the renderer
53
80
  * then paints those texts as vector glyphs, matching the on-screen fallback.
54
81
  */
55
82
  export var resolveViewerTextFont = function (fontName) { return __awaiter(void 0, void 0, void 0, function () {
56
- var info, res, bytes, _a, error_1;
83
+ var info, cached, res, buffer, aliases, error_1;
84
+ var _a;
57
85
  return __generator(this, function (_b) {
58
86
  switch (_b.label) {
59
87
  case 0:
@@ -66,29 +94,41 @@ export var resolveViewerTextFont = function (fontName) { return __awaiter(void 0
66
94
  'texts using it are painted as vector glyphs');
67
95
  return [2 /*return*/, undefined];
68
96
  }
69
- _b.label = 1;
97
+ return [4 /*yield*/, AcApFontUtil.getCachedMeshFontProgram(fontName)];
70
98
  case 1:
71
- _b.trys.push([1, 4, , 5]);
72
- return [4 /*yield*/, fetch(info.url)];
99
+ cached = _b.sent();
100
+ if (cached && cached.byteLength > 0) {
101
+ return [2 /*return*/, cached];
102
+ }
103
+ _b.label = 2;
73
104
  case 2:
105
+ _b.trys.push([2, 6, , 7]);
106
+ return [4 /*yield*/, fetch(info.url)];
107
+ case 3:
74
108
  res = _b.sent();
75
109
  if (!res.ok) {
76
110
  console.warn("[cad-pdf-plugin] Font \"".concat(fontName, "\" fetch failed (").concat(res.status, " ").concat(info.url, "); ") +
77
111
  'texts using it are painted as vector glyphs');
78
112
  return [2 /*return*/, undefined];
79
113
  }
80
- _a = Uint8Array.bind;
81
114
  return [4 /*yield*/, res.arrayBuffer()];
82
- case 3:
83
- bytes = new (_a.apply(Uint8Array, [void 0, _b.sent()]))();
84
- return [2 /*return*/, bytes.byteLength > 0 ? bytes : undefined];
85
115
  case 4:
116
+ buffer = _b.sent();
117
+ if (buffer.byteLength <= 0) {
118
+ return [2 /*return*/, undefined];
119
+ }
120
+ aliases = __spreadArray([fontName], __read(((_a = info.name) !== null && _a !== void 0 ? _a : [])), false).filter(function (n) { return typeof n === 'string' && n.length > 0; });
121
+ return [4 /*yield*/, AcApFontUtil.persistMeshFontProgram(buffer, info.file, aliases)];
122
+ case 5:
123
+ _b.sent();
124
+ return [2 /*return*/, new Uint8Array(buffer)];
125
+ case 6:
86
126
  error_1 = _b.sent();
87
127
  console.warn("[cad-pdf-plugin] Font \"".concat(fontName, "\" fetch errored (").concat(info.url, "): ") +
88
128
  "".concat(error_1 instanceof Error ? error_1.message : String(error_1), "; ") +
89
129
  'texts using it are painted as vector glyphs');
90
130
  return [2 /*return*/, undefined];
91
- case 5: return [2 /*return*/];
131
+ case 7: return [2 /*return*/];
92
132
  }
93
133
  });
94
134
  }); };
@@ -1 +1 @@
1
- {"version":3,"file":"AcApPdfFontResolver.js","sourceRoot":"","sources":["../src/AcApPdfFontResolver.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAG3D;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,IAAM,qBAAqB,GAA0B,UAAM,QAAQ;;;;;gBAClE,IAAI,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAA;gBACzC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;oBAC/C,wEAAwE;oBACxE,iEAAiE;oBACjE,OAAO,CAAC,IAAI,CACV,oDAA4C,QAAQ,QAAI;wBACtD,mBAAY,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,mBAAS,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,GAAG,EAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,QAAK;wBAC3E,6CAA6C,CAChD,CAAA;oBACD,sBAAO,SAAS,EAAA;gBAClB,CAAC;;;;gBAEa,qBAAM,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAA;;gBAA3B,GAAG,GAAG,SAAqB;gBACjC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;oBACZ,OAAO,CAAC,IAAI,CACV,kCAA0B,QAAQ,8BAAmB,GAAG,CAAC,MAAM,cAAI,IAAI,CAAC,GAAG,QAAK;wBAC9E,6CAA6C,CAChD,CAAA;oBACD,sBAAO,SAAS,EAAA;gBAClB,CAAC;qBACiB,UAAU;gBAAC,qBAAM,GAAG,CAAC,WAAW,EAAE,EAAA;;gBAA9C,KAAK,GAAG,cAAI,UAAU,WAAC,SAAuB,KAAC;gBACrD,sBAAO,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,EAAA;;;gBAE/C,OAAO,CAAC,IAAI,CACV,kCAA0B,QAAQ,+BAAoB,IAAI,CAAC,GAAG,QAAK;oBACjE,UAAG,OAAK,YAAY,KAAK,CAAC,CAAC,CAAC,OAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAK,CAAC,OAAI;oBAC7D,6CAA6C,CAChD,CAAA;gBACD,sBAAO,SAAS,EAAA;;;;KAEnB,CAAA;AAED,SAAS,kBAAkB,CAAC,QAAgB;IAC1C,IAAM,MAAM,GAAG,YAAY,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAA;IACxD,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,MAAM,CAAA;IACf,CAAC;IACD,IAAM,WAAW,GAAG,YAAY,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAA;IACjE,OAAO,WAAW,IAAI,WAAW,KAAK,QAAQ;QAC5C,CAAC,CAAC,YAAY,CAAC,kBAAkB,CAAC,WAAW,CAAC;QAC9C,CAAC,CAAC,SAAS,CAAA;AACf,CAAC"}
1
+ {"version":3,"file":"AcApPdfFontResolver.js","sourceRoot":"","sources":["../src/AcApPdfFontResolver.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"AcApPdfGlyphProvider.d.ts","sourceRoot":"","sources":["../src/AcApPdfGlyphProvider.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAGV,kBAAkB,EACnB,MAAM,yBAAyB,CAAA;AA0BhC;;;;;;;;;;;GAWG;AACH,wBAAgB,4BAA4B,IAAI,kBAAkB,CAgDjE"}
1
+ {"version":3,"file":"AcApPdfGlyphProvider.d.ts","sourceRoot":"","sources":["../src/AcApPdfGlyphProvider.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAKV,kBAAkB,EACnB,MAAM,yBAAyB,CAAA;AA+BhC;;;;;;;;;;;GAWG;AACH,wBAAgB,4BAA4B,IAAI,kBAAkB,CAqDjE"}
@@ -34,6 +34,31 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
34
34
  if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
35
  }
36
36
  };
37
+ var __read = (this && this.__read) || function (o, n) {
38
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
39
+ if (!m) return o;
40
+ var i = m.call(o), r, ar = [], e;
41
+ try {
42
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
43
+ }
44
+ catch (error) { e = { error: error }; }
45
+ finally {
46
+ try {
47
+ if (r && !r.done && (m = i["return"])) m.call(i);
48
+ }
49
+ finally { if (e) throw e.error; }
50
+ }
51
+ return ar;
52
+ };
53
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
54
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
55
+ if (ar || !(i in from)) {
56
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
57
+ ar[i] = from[i];
58
+ }
59
+ }
60
+ return to.concat(ar || Array.prototype.slice.call(from));
61
+ };
37
62
  var __values = (this && this.__values) || function(o) {
38
63
  var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
39
64
  if (m) return m.call(o);
@@ -45,6 +70,7 @@ var __values = (this && this.__values) || function(o) {
45
70
  };
46
71
  throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
47
72
  };
73
+ import { MTextColor } from '@mlightcad/mtext-parser';
48
74
  import { AcTrMTextRenderer } from '@mlightcad/three-renderer';
49
75
  /**
50
76
  * Turns the viewer's already-initialized mtext renderer into PDF glyph
@@ -65,9 +91,9 @@ export function createViewerPdfGlyphProvider() {
65
91
  };
66
92
  var emptyBox = { min: { x: 0, y: 0 }, max: { x: 0, y: 0 } };
67
93
  return {
68
- renderMText: function (data, style) {
94
+ renderMText: function (data, style, colorSettings) {
69
95
  return __awaiter(this, void 0, void 0, function () {
70
- var renderer, object, contents, _a, primitives, box, _b;
96
+ var renderer, object, contents, _a, primitives, colorGroups, box, _b;
71
97
  var _c, _d, _e, _f, _g, _h;
72
98
  return __generator(this, function (_j) {
73
99
  switch (_j.label) {
@@ -77,12 +103,12 @@ export function createViewerPdfGlyphProvider() {
77
103
  return [4 /*yield*/, renderer.asyncRenderMText(
78
104
  // AcGi and mtext-renderer attachment enums are structurally compatible
79
105
  // at runtime but diverge in the TypeScript type graph.
80
- data, style)];
106
+ data, style, toMTextColorSettings(colorSettings))];
81
107
  case 1:
82
108
  object = (_j.sent());
83
109
  contents = (_d = (_c = data.contents) !== null && _c !== void 0 ? _c : data.text) !== null && _d !== void 0 ? _d : '';
84
- _a = extractGlyphPrimitives(object, (_f = (_e = data.position) === null || _e === void 0 ? void 0 : _e.x) !== null && _f !== void 0 ? _f : 0, (_h = (_g = data.position) === null || _g === void 0 ? void 0 : _g.y) !== null && _h !== void 0 ? _h : 0), primitives = _a.primitives, box = _a.box;
85
- return [2 /*return*/, { primitives: primitives, actualText: contents, box: box }];
110
+ _a = extractGlyphPrimitives(object, (_f = (_e = data.position) === null || _e === void 0 ? void 0 : _e.x) !== null && _f !== void 0 ? _f : 0, (_h = (_g = data.position) === null || _g === void 0 ? void 0 : _g.y) !== null && _h !== void 0 ? _h : 0), primitives = _a.primitives, colorGroups = _a.colorGroups, box = _a.box;
111
+ return [2 /*return*/, { primitives: primitives, colorGroups: colorGroups, actualText: contents, box: box }];
86
112
  case 2:
87
113
  _b = _j.sent();
88
114
  return [2 /*return*/, { primitives: empty, actualText: '', box: emptyBox }];
@@ -115,20 +141,51 @@ export function createViewerPdfGlyphProvider() {
115
141
  }
116
142
  };
117
143
  }
144
+ function toMTextColorSettings(settings) {
145
+ if (!settings) {
146
+ return undefined;
147
+ }
148
+ var color = new MTextColor();
149
+ if (settings.entityIsByLayer) {
150
+ color.aci = 256;
151
+ }
152
+ else if (settings.entityIsByBlock) {
153
+ color.aci = 0;
154
+ }
155
+ else if (settings.entityIsForeground) {
156
+ color.aci = 7;
157
+ }
158
+ else if (typeof settings.entityAci === 'number') {
159
+ color.aci = settings.entityAci;
160
+ }
161
+ else if (typeof settings.entityRgb === 'number') {
162
+ color.rgbValue = settings.entityRgb;
163
+ }
164
+ else {
165
+ color.aci = 7;
166
+ }
167
+ return {
168
+ color: color,
169
+ byLayerColor: settings.byLayerColor,
170
+ byBlockColor: settings.byBlockColor,
171
+ layer: settings.layer
172
+ };
173
+ }
118
174
  /**
119
175
  * Builds flat triangle/polyline buffers from the rendered scene graph,
120
176
  * baking each node's world matrix and translating the result so (0,0) is the
121
- * text's insertion point.
177
+ * text's insertion point. Geometry is also grouped by material colour so
178
+ * inline `\C` overrides survive vector PDF export.
122
179
  */
123
180
  function extractGlyphPrimitives(root, originX, originY) {
124
- var e_1, _a;
125
- var _b;
126
- (_b = root.updateMatrixWorld) === null || _b === void 0 ? void 0 : _b.call(root, true);
181
+ var e_1, _a, e_2, _b, e_3, _c, e_4, _d;
182
+ var _e, _f, _g;
183
+ (_e = root.updateMatrixWorld) === null || _e === void 0 ? void 0 : _e.call(root, true);
127
184
  var sources = [];
128
- var triangleFloats = 0;
129
- var lineFloats = 0;
185
+ var triangleFloatsByColor = new Map();
186
+ var lineFloatsByColor = new Map();
130
187
  root.traverse(function (node) {
131
- var _a, _b;
188
+ var _a, _b, _c, _d, _e;
132
189
  var geom = node.geometry;
133
190
  if (!geom) {
134
191
  return;
@@ -137,6 +194,7 @@ function extractGlyphPrimitives(root, originX, originY) {
137
194
  if (!pos || pos.count < 1) {
138
195
  return;
139
196
  }
197
+ var rgb = (_a = readMaterialRgb(node)) !== null && _a !== void 0 ? _a : 0xffffff;
140
198
  if (node.isMesh) {
141
199
  var index = geom.getIndex();
142
200
  var triCount = index ? index.count / 3 : Math.floor(pos.count / 3);
@@ -144,60 +202,72 @@ function extractGlyphPrimitives(root, originX, originY) {
144
202
  return;
145
203
  }
146
204
  sources.push({
147
- elements: (_a = node.matrixWorld) === null || _a === void 0 ? void 0 : _a.elements,
205
+ elements: (_b = node.matrixWorld) === null || _b === void 0 ? void 0 : _b.elements,
148
206
  pos: pos,
149
207
  index: index,
150
208
  isMesh: true,
151
- isSegments: false
209
+ isSegments: false,
210
+ rgb: rgb
152
211
  });
153
- triangleFloats += triCount * 6;
212
+ triangleFloatsByColor.set(rgb, ((_c = triangleFloatsByColor.get(rgb)) !== null && _c !== void 0 ? _c : 0) + triCount * 6);
154
213
  return;
155
214
  }
156
215
  if (node.isLine) {
157
- // three.js: LineSegments extends Line, so `isLine` is true for both.
158
- // Stroke-font glyphs (SHX) arrive as LineSegments where every vertex
159
- // PAIR is an independent stroke — expanding them as one continuous
160
- // polyline would connect glyph strokes end-to-end.
161
216
  var segments = !!node.isLineSegments;
162
217
  sources.push({
163
- elements: (_b = node.matrixWorld) === null || _b === void 0 ? void 0 : _b.elements,
218
+ elements: (_d = node.matrixWorld) === null || _d === void 0 ? void 0 : _d.elements,
164
219
  pos: pos,
165
220
  index: null,
166
221
  isMesh: false,
167
- isSegments: segments
222
+ isSegments: segments,
223
+ rgb: rgb
168
224
  });
169
- lineFloats += segments
225
+ var floats = segments
170
226
  ? Math.floor(pos.count / 2) * 5
171
227
  : pos.count * 2 + 1;
228
+ lineFloatsByColor.set(rgb, ((_e = lineFloatsByColor.get(rgb)) !== null && _e !== void 0 ? _e : 0) + floats);
172
229
  }
173
230
  });
174
- var triangles = new Float32Array(triangleFloats);
175
- var polylines = new Float32Array(lineFloats);
231
+ var colors = __spreadArray([], __read(new Set(__spreadArray(__spreadArray([], __read(triangleFloatsByColor.keys()), false), __read(lineFloatsByColor.keys()), false))), false);
232
+ var groups = new Map();
233
+ try {
234
+ for (var colors_1 = __values(colors), colors_1_1 = colors_1.next(); !colors_1_1.done; colors_1_1 = colors_1.next()) {
235
+ var rgb = colors_1_1.value;
236
+ groups.set(rgb, {
237
+ triangles: new Float32Array((_f = triangleFloatsByColor.get(rgb)) !== null && _f !== void 0 ? _f : 0),
238
+ polylines: new Float32Array((_g = lineFloatsByColor.get(rgb)) !== null && _g !== void 0 ? _g : 0),
239
+ triOffset: 0,
240
+ lineOffset: 0
241
+ });
242
+ }
243
+ }
244
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
245
+ finally {
246
+ try {
247
+ if (colors_1_1 && !colors_1_1.done && (_a = colors_1.return)) _a.call(colors_1);
248
+ }
249
+ finally { if (e_1) throw e_1.error; }
250
+ }
176
251
  var minX = Infinity;
177
252
  var minY = Infinity;
178
253
  var maxX = -Infinity;
179
254
  var maxY = -Infinity;
180
255
  var expand = function (x, y) {
181
- if (x < minX) {
256
+ if (x < minX)
182
257
  minX = x;
183
- }
184
- if (y < minY) {
258
+ if (y < minY)
185
259
  minY = y;
186
- }
187
- if (x > maxX) {
260
+ if (x > maxX)
188
261
  maxX = x;
189
- }
190
- if (y > maxY) {
262
+ if (y > maxY)
191
263
  maxY = y;
192
- }
193
264
  };
194
- var triOffset = 0;
195
- var lineOffset = 0;
196
265
  var _loop_1 = function (source) {
266
+ var group = groups.get(source.rgb);
267
+ if (!group)
268
+ return "continue";
197
269
  var el = source.elements;
198
270
  var pos = source.pos;
199
- // Full 4x4 transform with perspective divide, matching the previous
200
- // per-point `applyWorldMatrix` behavior.
201
271
  var world = function (i) {
202
272
  var x = pos.getX(i);
203
273
  var y = pos.getY(i);
@@ -222,35 +292,34 @@ function extractGlyphPrimitives(root, originX, originY) {
222
292
  var p = world(vi);
223
293
  var x = p.x - originX;
224
294
  var y = p.y - originY;
225
- triangles[triOffset++] = x;
226
- triangles[triOffset++] = y;
295
+ group.triangles[group.triOffset++] = x;
296
+ group.triangles[group.triOffset++] = y;
227
297
  expand(x, y);
228
298
  }
229
299
  }
230
300
  }
231
301
  else if (source.isSegments) {
232
- // One polyline per vertex pair: each stroke stays independent.
233
302
  var pairCount = Math.floor(pos.count / 2);
234
303
  for (var s = 0; s < pairCount; s++) {
235
- polylines[lineOffset++] = 2;
304
+ group.polylines[group.lineOffset++] = 2;
236
305
  for (var k = 0; k < 2; k++) {
237
306
  var p = world(s * 2 + k);
238
307
  var x = p.x - originX;
239
308
  var y = p.y - originY;
240
- polylines[lineOffset++] = x;
241
- polylines[lineOffset++] = y;
309
+ group.polylines[group.lineOffset++] = x;
310
+ group.polylines[group.lineOffset++] = y;
242
311
  expand(x, y);
243
312
  }
244
313
  }
245
314
  }
246
315
  else {
247
- polylines[lineOffset++] = pos.count;
316
+ group.polylines[group.lineOffset++] = pos.count;
248
317
  for (var i = 0; i < pos.count; i++) {
249
318
  var p = world(i);
250
319
  var x = p.x - originX;
251
320
  var y = p.y - originY;
252
- polylines[lineOffset++] = x;
253
- polylines[lineOffset++] = y;
321
+ group.polylines[group.lineOffset++] = x;
322
+ group.polylines[group.lineOffset++] = y;
254
323
  expand(x, y);
255
324
  }
256
325
  }
@@ -261,17 +330,78 @@ function extractGlyphPrimitives(root, originX, originY) {
261
330
  _loop_1(source);
262
331
  }
263
332
  }
264
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
333
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
265
334
  finally {
266
335
  try {
267
- if (sources_1_1 && !sources_1_1.done && (_a = sources_1.return)) _a.call(sources_1);
336
+ if (sources_1_1 && !sources_1_1.done && (_b = sources_1.return)) _b.call(sources_1);
337
+ }
338
+ finally { if (e_2) throw e_2.error; }
339
+ }
340
+ var colorGroups = [];
341
+ var totalTri = 0;
342
+ var totalLine = 0;
343
+ try {
344
+ for (var groups_1 = __values(groups), groups_1_1 = groups_1.next(); !groups_1_1.done; groups_1_1 = groups_1.next()) {
345
+ var _h = __read(groups_1_1.value, 2), rgb = _h[0], group = _h[1];
346
+ var primitives_1 = {
347
+ triangles: group.triangles,
348
+ polylines: group.polylines
349
+ };
350
+ if (primitives_1.triangles.length >= 6 || primitives_1.polylines.length >= 2) {
351
+ colorGroups.push({ rgb: rgb, primitives: primitives_1 });
352
+ }
353
+ totalTri += group.triangles.length;
354
+ totalLine += group.polylines.length;
268
355
  }
269
- finally { if (e_1) throw e_1.error; }
356
+ }
357
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
358
+ finally {
359
+ try {
360
+ if (groups_1_1 && !groups_1_1.done && (_c = groups_1.return)) _c.call(groups_1);
361
+ }
362
+ finally { if (e_3) throw e_3.error; }
363
+ }
364
+ // Combined buffers keep callers that ignore colorGroups working.
365
+ var triangles = new Float32Array(totalTri);
366
+ var polylines = new Float32Array(totalLine);
367
+ var triOffset = 0;
368
+ var lineOffset = 0;
369
+ try {
370
+ for (var colorGroups_1 = __values(colorGroups), colorGroups_1_1 = colorGroups_1.next(); !colorGroups_1_1.done; colorGroups_1_1 = colorGroups_1.next()) {
371
+ var group = colorGroups_1_1.value;
372
+ triangles.set(group.primitives.triangles, triOffset);
373
+ triOffset += group.primitives.triangles.length;
374
+ polylines.set(group.primitives.polylines, lineOffset);
375
+ lineOffset += group.primitives.polylines.length;
376
+ }
377
+ }
378
+ catch (e_4_1) { e_4 = { error: e_4_1 }; }
379
+ finally {
380
+ try {
381
+ if (colorGroups_1_1 && !colorGroups_1_1.done && (_d = colorGroups_1.return)) _d.call(colorGroups_1);
382
+ }
383
+ finally { if (e_4) throw e_4.error; }
270
384
  }
271
385
  var primitives = { triangles: triangles, polylines: polylines };
272
386
  var box = Number.isFinite(minX)
273
387
  ? { min: { x: minX, y: minY }, max: { x: maxX, y: maxY } }
274
388
  : { min: { x: 0, y: 0 }, max: { x: 0, y: 0 } };
275
- return { primitives: primitives, box: box };
389
+ return {
390
+ primitives: primitives,
391
+ // Always surface groups when present so a lone `\C256` green run is not
392
+ // painted with the entity fill (often ACI 7 white).
393
+ colorGroups: colorGroups.length > 0 ? colorGroups : undefined,
394
+ box: box
395
+ };
396
+ }
397
+ function readMaterialRgb(node) {
398
+ var _a, _b;
399
+ var material = node.material;
400
+ if (!material) {
401
+ return undefined;
402
+ }
403
+ var first = Array.isArray(material) ? material[0] : material;
404
+ var hex = (_b = (_a = first === null || first === void 0 ? void 0 : first.color) === null || _a === void 0 ? void 0 : _a.getHex) === null || _b === void 0 ? void 0 : _b.call(_a);
405
+ return typeof hex === 'number' ? hex : undefined;
276
406
  }
277
407
  //# sourceMappingURL=AcApPdfGlyphProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AcApPdfGlyphProvider.js","sourceRoot":"","sources":["../src/AcApPdfGlyphProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AcApPdfGlyphProvider.js","sourceRoot":"","sources":["../src/AcApPdfGlyphProvider.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { AcApContext } from '@mlightcad/cad-simple-viewer';
1
+ import { type AcApContext } from '@mlightcad/cad-simple-viewer';
2
2
  /**
3
3
  * Converts a PDF file into CAD entities appended to the current document's
4
4
  * model space.
@@ -7,17 +7,25 @@ export declare class AcApPdfImportConvertor {
7
7
  /**
8
8
  * Prompts the user to pick a PDF file and imports vector geometry.
9
9
  *
10
+ * Returns without database edits when the picker is dismissed. The command
11
+ * undo mark then has no committed changes, so nothing is pushed onto the
12
+ * undo stack.
13
+ *
10
14
  * @param context - Application context for the target document
11
15
  */
12
- importFromFilePicker(context: AcApContext): void;
16
+ importFromFilePicker(context: AcApContext): Promise<void>;
13
17
  /**
14
- * Converts the first page of a PDF ArrayBuffer into CAD entities.
15
- * @param context - Application context for the target document
16
- * @param data - Raw PDF bytes
17
- * @param pageNumber - 1-based page number (default: 1)
18
+ * Opens the browser file picker.
19
+ *
20
+ * Resolves `undefined` when the user cancels the picker. `cancel` does not
21
+ * fire for every dismiss path, so closing the dialog (window focus with no
22
+ * selected file) also settles the promise. Otherwise `ipdf` would stay
23
+ * inside its write transaction.
18
24
  */
25
+ private pickPdfFile;
19
26
  convert(context: AcApContext, data: ArrayBuffer, pageNumber?: number): Promise<void>;
20
- private extractEntities;
27
+ private importPage;
21
28
  private subpathToEntity;
29
+ private textToEntity;
22
30
  }
23
31
  //# sourceMappingURL=AcApPdfImportConvertor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AcApPdfImportConvertor.d.ts","sourceRoot":"","sources":["../src/AcApPdfImportConvertor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAsB/D;;;GAGG;AACH,qBAAa,sBAAsB;IACjC;;;;OAIG;IACH,oBAAoB,CAAC,OAAO,EAAE,WAAW;IAkBzC;;;;;OAKG;IACG,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,SAAI;IA2BrE,OAAO,CAAC,eAAe;IAuHvB,OAAO,CAAC,eAAe;CAyBxB"}
1
+ {"version":3,"file":"AcApPdfImportConvertor.d.ts","sourceRoot":"","sources":["../src/AcApPdfImportConvertor.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,WAAW,EAIjB,MAAM,8BAA8B,CAAA;AA4CrC;;;GAGG;AACH,qBAAa,sBAAsB;IACjC;;;;;;;;OAQG;IACG,oBAAoB,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAa/D;;;;;;;OAOG;IACH,OAAO,CAAC,WAAW;IA8Cb,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,SAAI;YAOvD,UAAU;IAiGxB,OAAO,CAAC,eAAe;IAyCvB,OAAO,CAAC,YAAY;CAiBrB"}