@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.
- package/LICENSE +21 -21
- package/README.md +280 -186
- package/dist/cad-pdf-plugin-register.js +29 -11
- package/dist/cad-pdf-plugin-register.umd.cjs +1 -1
- package/dist/cad-pdf-plugin.js +17568 -8428
- package/dist/cad-pdf-plugin.umd.cjs +847 -13
- package/lib/AcApConvertToPdfCmd.d.ts.map +1 -1
- package/lib/AcApConvertToPdfCmd.js +14 -3
- package/lib/AcApConvertToPdfCmd.js.map +1 -1
- package/lib/AcApImportPdfCmd.d.ts +5 -3
- package/lib/AcApImportPdfCmd.d.ts.map +1 -1
- package/lib/AcApImportPdfCmd.js +5 -3
- package/lib/AcApImportPdfCmd.js.map +1 -1
- package/lib/AcApImportPdfPromptCmd.d.ts +16 -0
- package/lib/AcApImportPdfPromptCmd.d.ts.map +1 -0
- package/lib/AcApImportPdfPromptCmd.js +89 -0
- package/lib/AcApImportPdfPromptCmd.js.map +1 -0
- package/lib/AcApPdfBlockCmd.d.ts +15 -0
- package/lib/AcApPdfBlockCmd.d.ts.map +1 -0
- package/lib/AcApPdfBlockCmd.js +75 -0
- package/lib/AcApPdfBlockCmd.js.map +1 -0
- package/lib/AcApPdfDimCmd.d.ts +20 -0
- package/lib/AcApPdfDimCmd.d.ts.map +1 -0
- package/lib/AcApPdfDimCmd.js +413 -0
- package/lib/AcApPdfDimCmd.js.map +1 -0
- package/lib/AcApPdfDimSession.d.ts +82 -0
- package/lib/AcApPdfDimSession.d.ts.map +1 -0
- package/lib/AcApPdfDimSession.js +252 -0
- package/lib/AcApPdfDimSession.js.map +1 -0
- package/lib/AcApPdfFontResolver.d.ts.map +1 -1
- package/lib/AcApPdfFontResolver.js +2 -5
- package/lib/AcApPdfFontResolver.js.map +1 -1
- package/lib/AcApPdfHatchCmd.d.ts +33 -0
- package/lib/AcApPdfHatchCmd.d.ts.map +1 -0
- package/lib/AcApPdfHatchCmd.js +411 -0
- package/lib/AcApPdfHatchCmd.js.map +1 -0
- package/lib/AcApPdfHatchSession.d.ts +122 -0
- package/lib/AcApPdfHatchSession.d.ts.map +1 -0
- package/lib/AcApPdfHatchSession.js +357 -0
- package/lib/AcApPdfHatchSession.js.map +1 -0
- package/lib/AcApPdfImportConvertor.d.ts +47 -5
- package/lib/AcApPdfImportConvertor.d.ts.map +1 -1
- package/lib/AcApPdfImportConvertor.js +999 -108
- package/lib/AcApPdfImportConvertor.js.map +1 -1
- package/lib/AcApPdfImportOptions.d.ts +116 -0
- package/lib/AcApPdfImportOptions.d.ts.map +1 -0
- package/lib/AcApPdfImportOptions.js +31 -0
- package/lib/AcApPdfImportOptions.js.map +1 -0
- package/lib/AcApPdfImportResources.d.ts +41 -0
- package/lib/AcApPdfImportResources.d.ts.map +1 -0
- package/lib/AcApPdfImportResources.js +52 -0
- package/lib/AcApPdfImportResources.js.map +1 -0
- package/lib/AcApPdfPlugin.d.ts +3 -3
- package/lib/AcApPdfPlugin.d.ts.map +1 -1
- package/lib/AcApPdfPlugin.js +23 -5
- package/lib/AcApPdfPlugin.js.map +1 -1
- package/lib/AcApPdfScaleCmd.d.ts +22 -0
- package/lib/AcApPdfScaleCmd.d.ts.map +1 -0
- package/lib/AcApPdfScaleCmd.js +185 -0
- package/lib/AcApPdfScaleCmd.js.map +1 -0
- package/lib/AcApPdfTextCmd.d.ts +73 -0
- package/lib/AcApPdfTextCmd.d.ts.map +1 -0
- package/lib/AcApPdfTextCmd.js +777 -0
- package/lib/AcApPdfTextCmd.js.map +1 -0
- package/lib/AcApPdfTextSession.d.ts +232 -0
- package/lib/AcApPdfTextSession.d.ts.map +1 -0
- package/lib/AcApPdfTextSession.js +826 -0
- package/lib/AcApPdfTextSession.js.map +1 -0
- package/lib/acapPdfI18n.d.ts +11 -0
- package/lib/acapPdfI18n.d.ts.map +1 -0
- package/lib/acapPdfI18n.js +57 -0
- package/lib/acapPdfI18n.js.map +1 -0
- package/lib/acapPdfPrompts.d.ts +12 -0
- package/lib/acapPdfPrompts.d.ts.map +1 -0
- package/lib/acapPdfPrompts.js +100 -0
- package/lib/acapPdfPrompts.js.map +1 -0
- package/lib/index.d.ts +28 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +28 -0
- package/lib/index.js.map +1 -1
- package/lib/pdfDeprecatedMatching.d.ts +27 -0
- package/lib/pdfDeprecatedMatching.d.ts.map +1 -0
- package/lib/pdfDeprecatedMatching.js +20 -0
- package/lib/pdfDeprecatedMatching.js.map +1 -0
- package/lib/pdfDimStrokeTexts.d.ts +55 -0
- package/lib/pdfDimStrokeTexts.d.ts.map +1 -0
- package/lib/pdfDimStrokeTexts.js +274 -0
- package/lib/pdfDimStrokeTexts.js.map +1 -0
- package/lib/pdfDimensionConvert.d.ts +80 -0
- package/lib/pdfDimensionConvert.d.ts.map +1 -0
- package/lib/pdfDimensionConvert.js +566 -0
- package/lib/pdfDimensionConvert.js.map +1 -0
- package/lib/pdfEntityStrokes.d.ts +13 -0
- package/lib/pdfEntityStrokes.d.ts.map +1 -0
- package/lib/pdfEntityStrokes.js +86 -0
- package/lib/pdfEntityStrokes.js.map +1 -0
- package/lib/pdfHatchRecover.d.ts +57 -0
- package/lib/pdfHatchRecover.d.ts.map +1 -0
- package/lib/pdfHatchRecover.js +315 -0
- package/lib/pdfHatchRecover.js.map +1 -0
- package/lib/pdfImportAppend.d.ts +24 -0
- package/lib/pdfImportAppend.d.ts.map +1 -0
- package/lib/pdfImportAppend.js +35 -0
- package/lib/pdfImportAppend.js.map +1 -0
- package/lib/pdfImportEntities.d.ts +63 -0
- package/lib/pdfImportEntities.d.ts.map +1 -0
- package/lib/pdfImportEntities.js +307 -0
- package/lib/pdfImportEntities.js.map +1 -0
- package/lib/pdfImportImages.d.ts +90 -0
- package/lib/pdfImportImages.d.ts.map +1 -0
- package/lib/pdfImportImages.js +294 -0
- package/lib/pdfImportImages.js.map +1 -0
- package/lib/pdfImportShapes.d.ts +63 -0
- package/lib/pdfImportShapes.d.ts.map +1 -0
- package/lib/pdfImportShapes.js +248 -0
- package/lib/pdfImportShapes.js.map +1 -0
- package/lib/pdfVectorImport.d.ts +218 -5
- package/lib/pdfVectorImport.d.ts.map +1 -1
- package/lib/pdfVectorImport.js +566 -98
- package/lib/pdfVectorImport.js.map +1 -1
- package/lib/recognition/pdfCurveRecognition.d.ts +91 -0
- package/lib/recognition/pdfCurveRecognition.d.ts.map +1 -0
- package/lib/recognition/pdfCurveRecognition.js +506 -0
- package/lib/recognition/pdfCurveRecognition.js.map +1 -0
- package/lib/recognition/pdfDimDigitRecognition.d.ts +18 -0
- package/lib/recognition/pdfDimDigitRecognition.d.ts.map +1 -0
- package/lib/recognition/pdfDimDigitRecognition.js +520 -0
- package/lib/recognition/pdfDimDigitRecognition.js.map +1 -0
- package/lib/recognition/pdfDimensionPattern.d.ts +173 -0
- package/lib/recognition/pdfDimensionPattern.d.ts.map +1 -0
- package/lib/recognition/pdfDimensionPattern.js +1023 -0
- package/lib/recognition/pdfDimensionPattern.js.map +1 -0
- package/lib/recognition/pdfFormBlocks.d.ts +58 -0
- package/lib/recognition/pdfFormBlocks.d.ts.map +1 -0
- package/lib/recognition/pdfFormBlocks.js +260 -0
- package/lib/recognition/pdfFormBlocks.js.map +1 -0
- package/lib/recognition/pdfGlyphClustering.d.ts +81 -0
- package/lib/recognition/pdfGlyphClustering.d.ts.map +1 -0
- package/lib/recognition/pdfGlyphClustering.js +1005 -0
- package/lib/recognition/pdfGlyphClustering.js.map +1 -0
- package/lib/recognition/pdfGlyphDictionary.d.ts +49 -0
- package/lib/recognition/pdfGlyphDictionary.d.ts.map +1 -0
- package/lib/recognition/pdfGlyphDictionary.js +188 -0
- package/lib/recognition/pdfGlyphDictionary.js.map +1 -0
- package/lib/recognition/pdfHatchFaces.d.ts +84 -0
- package/lib/recognition/pdfHatchFaces.d.ts.map +1 -0
- package/lib/recognition/pdfHatchFaces.js +1285 -0
- package/lib/recognition/pdfHatchFaces.js.map +1 -0
- package/lib/recognition/pdfHatchRecognition.d.ts +222 -0
- package/lib/recognition/pdfHatchRecognition.d.ts.map +1 -0
- package/lib/recognition/pdfHatchRecognition.js +3781 -0
- package/lib/recognition/pdfHatchRecognition.js.map +1 -0
- package/lib/recognition/pdfRecGeometry.d.ts +67 -0
- package/lib/recognition/pdfRecGeometry.d.ts.map +1 -0
- package/lib/recognition/pdfRecGeometry.js +365 -0
- package/lib/recognition/pdfRecGeometry.js.map +1 -0
- package/lib/recognition/pdfTextFontKind.d.ts +16 -0
- package/lib/recognition/pdfTextFontKind.d.ts.map +1 -0
- package/lib/recognition/pdfTextFontKind.js +51 -0
- package/lib/recognition/pdfTextFontKind.js.map +1 -0
- package/lib/recognition/pdfTextMerge.d.ts +71 -0
- package/lib/recognition/pdfTextMerge.d.ts.map +1 -0
- package/lib/recognition/pdfTextMerge.js +382 -0
- package/lib/recognition/pdfTextMerge.js.map +1 -0
- package/lib/recognition/pdfTextRunMerge.d.ts +28 -0
- package/lib/recognition/pdfTextRunMerge.d.ts.map +1 -0
- package/lib/recognition/pdfTextRunMerge.js +90 -0
- package/lib/recognition/pdfTextRunMerge.js.map +1 -0
- package/lib/register.d.ts +8 -2
- package/lib/register.d.ts.map +1 -1
- package/lib/register.js +29 -4
- package/lib/register.js.map +1 -1
- package/lib/ui/AcUiPdfDimPanel.d.ts +55 -0
- package/lib/ui/AcUiPdfDimPanel.d.ts.map +1 -0
- package/lib/ui/AcUiPdfDimPanel.js +347 -0
- package/lib/ui/AcUiPdfDimPanel.js.map +1 -0
- package/lib/ui/AcUiPdfHatchPanel.d.ts +57 -0
- package/lib/ui/AcUiPdfHatchPanel.d.ts.map +1 -0
- package/lib/ui/AcUiPdfHatchPanel.js +420 -0
- package/lib/ui/AcUiPdfHatchPanel.js.map +1 -0
- package/lib/ui/AcUiPdfImportDialog.d.ts +120 -0
- package/lib/ui/AcUiPdfImportDialog.d.ts.map +1 -0
- package/lib/ui/AcUiPdfImportDialog.js +673 -0
- package/lib/ui/AcUiPdfImportDialog.js.map +1 -0
- package/lib/ui/AcUiPdfTextPanel.d.ts +95 -0
- package/lib/ui/AcUiPdfTextPanel.d.ts.map +1 -0
- package/lib/ui/AcUiPdfTextPanel.js +775 -0
- package/lib/ui/AcUiPdfTextPanel.js.map +1 -0
- package/package.json +11 -11
|
@@ -0,0 +1,566 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
var __values = (this && this.__values) || function(o) {
|
|
13
|
+
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
14
|
+
if (m) return m.call(o);
|
|
15
|
+
if (o && typeof o.length === "number") return {
|
|
16
|
+
next: function () {
|
|
17
|
+
if (o && i >= o.length) o = void 0;
|
|
18
|
+
return { value: o && o[i++], done: !o };
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
22
|
+
};
|
|
23
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
24
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
25
|
+
if (!m) return o;
|
|
26
|
+
var i = m.call(o), r, ar = [], e;
|
|
27
|
+
try {
|
|
28
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
29
|
+
}
|
|
30
|
+
catch (error) { e = { error: error }; }
|
|
31
|
+
finally {
|
|
32
|
+
try {
|
|
33
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
34
|
+
}
|
|
35
|
+
finally { if (e) throw e.error; }
|
|
36
|
+
}
|
|
37
|
+
return ar;
|
|
38
|
+
};
|
|
39
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
40
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
41
|
+
if (ar || !(i in from)) {
|
|
42
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
43
|
+
ar[i] = from[i];
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
47
|
+
};
|
|
48
|
+
import { applyCurrentDimStyle, commitDimBlock, disposeDimBlock, readDimStyleFields, setDimStyleOverride, writeDimStyleFields } from '@mlightcad/cad-simple-viewer';
|
|
49
|
+
import { AcDb3PointAngularDimension, AcDbArc, AcDbBlockReference, AcDbCircle, AcDbDiametricDimension, AcDbDimStyleTableRecord, AcDbHatch, AcDbLine, AcDbPolyline, AcDbRadialDimension, AcDbRotatedDimension, AcDbText, acdbWriteDimStyleOverrides, AcGePoint3d } from '@mlightcad/data-model';
|
|
50
|
+
import { parsePdfDimensionValue } from './recognition/pdfDimensionPattern';
|
|
51
|
+
/** Dimension style created for recovered dimensions. */
|
|
52
|
+
export var PDF_DIM_STYLE = 'PDF_DIM';
|
|
53
|
+
/**
|
|
54
|
+
* Describes entities for {@link recognizePdfDimensions}: lines and 2-vertex
|
|
55
|
+
* polylines as segments, closed polylines and small solid hatches as possible
|
|
56
|
+
* arrowheads, circles and arcs as radial targets, and texts as dimension
|
|
57
|
+
* values.
|
|
58
|
+
*/
|
|
59
|
+
export function pdfEntitiesToDimInput(entities) {
|
|
60
|
+
var e_1, _a;
|
|
61
|
+
var input = {
|
|
62
|
+
segments: [],
|
|
63
|
+
polygons: [],
|
|
64
|
+
curves: [],
|
|
65
|
+
texts: [],
|
|
66
|
+
arcs: []
|
|
67
|
+
};
|
|
68
|
+
try {
|
|
69
|
+
for (var entities_1 = __values(entities), entities_1_1 = entities_1.next(); !entities_1_1.done; entities_1_1 = entities_1.next()) {
|
|
70
|
+
var _b = __read(entities_1_1.value, 2), id = _b[0], entity = _b[1];
|
|
71
|
+
if (entity instanceof AcDbLine) {
|
|
72
|
+
input.segments.push({
|
|
73
|
+
id: id,
|
|
74
|
+
p0: { x: entity.startPoint.x, y: entity.startPoint.y },
|
|
75
|
+
p1: { x: entity.endPoint.x, y: entity.endPoint.y }
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
else if (entity instanceof AcDbPolyline) {
|
|
79
|
+
var vertices = [];
|
|
80
|
+
for (var i = 0; i < entity.numberOfVertices; i++) {
|
|
81
|
+
var p = entity.getPoint2dAt(i);
|
|
82
|
+
vertices.push({ x: p.x, y: p.y });
|
|
83
|
+
}
|
|
84
|
+
if (entity.closed && vertices.length >= 3) {
|
|
85
|
+
input.polygons.push({ id: id, vertices: vertices });
|
|
86
|
+
}
|
|
87
|
+
else if (vertices.length === 2) {
|
|
88
|
+
input.segments.push({ id: id, p0: vertices[0], p1: vertices[1] });
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
else if (entity instanceof AcDbHatch) {
|
|
92
|
+
// `pdfimport` imports a filled arrowhead as a solid hatch; its boundary
|
|
93
|
+
// vertices (grip points, in loop order) describe the triangle.
|
|
94
|
+
var vertices = hatchArrowVertices(entity);
|
|
95
|
+
if (vertices)
|
|
96
|
+
input.polygons.push({ id: id, vertices: vertices });
|
|
97
|
+
}
|
|
98
|
+
else if (entity instanceof AcDbCircle || entity instanceof AcDbArc) {
|
|
99
|
+
input.curves.push({
|
|
100
|
+
center: { x: entity.center.x, y: entity.center.y },
|
|
101
|
+
radius: entity.radius
|
|
102
|
+
});
|
|
103
|
+
if (entity instanceof AcDbArc) {
|
|
104
|
+
input.arcs.push({
|
|
105
|
+
id: id,
|
|
106
|
+
center: { x: entity.center.x, y: entity.center.y },
|
|
107
|
+
radius: entity.radius,
|
|
108
|
+
startAngle: entity.startAngle,
|
|
109
|
+
endAngle: entity.endAngle
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
else if (entity instanceof AcDbText) {
|
|
114
|
+
input.texts.push({
|
|
115
|
+
id: id,
|
|
116
|
+
text: entity.textString,
|
|
117
|
+
center: textCenter(entity),
|
|
118
|
+
height: entity.height
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
124
|
+
finally {
|
|
125
|
+
try {
|
|
126
|
+
if (entities_1_1 && !entities_1_1.done && (_a = entities_1.return)) _a.call(entities_1);
|
|
127
|
+
}
|
|
128
|
+
finally { if (e_1) throw e_1.error; }
|
|
129
|
+
}
|
|
130
|
+
return input;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Boundary of a solid hatch with three or four vertices, the shape of a
|
|
134
|
+
* filled arrowhead. Larger or curved fills are never arrowheads.
|
|
135
|
+
*/
|
|
136
|
+
function hatchArrowVertices(hatch) {
|
|
137
|
+
if (!hatch.isSolidFill)
|
|
138
|
+
return undefined;
|
|
139
|
+
var points = hatch.subGetGripPoints();
|
|
140
|
+
if (points.length < 3 || points.length > 4)
|
|
141
|
+
return undefined;
|
|
142
|
+
return points.map(function (p) { return ({ x: p.x, y: p.y }); });
|
|
143
|
+
}
|
|
144
|
+
/** Text box center; falls back to an estimate when no font metrics exist. */
|
|
145
|
+
function textCenter(text) {
|
|
146
|
+
try {
|
|
147
|
+
var box = text.geometricExtents;
|
|
148
|
+
if (box && Number.isFinite(box.min.x) && box.max.x > box.min.x) {
|
|
149
|
+
return { x: (box.min.x + box.max.x) / 2, y: (box.min.y + box.max.y) / 2 };
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
catch (_a) {
|
|
153
|
+
// Fonts not loaded yet: estimate below.
|
|
154
|
+
}
|
|
155
|
+
var width = text.textString.length * text.height * 0.6;
|
|
156
|
+
var c = Math.cos(text.rotation);
|
|
157
|
+
var s = Math.sin(text.rotation);
|
|
158
|
+
return {
|
|
159
|
+
x: text.position.x + (c * width - s * text.height) / 2,
|
|
160
|
+
y: text.position.y + (s * width + c * text.height) / 2
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Measures text height, arrow size and extension from recovered candidates so
|
|
165
|
+
* both the style record and per-entity overrides stay in sync.
|
|
166
|
+
*/
|
|
167
|
+
export function acapPdfDimStyleMetrics(candidates, scale) {
|
|
168
|
+
var linear = candidates.filter(function (c) {
|
|
169
|
+
return c.kind === 'linear';
|
|
170
|
+
});
|
|
171
|
+
// Dimensions drawn without terminators report size 0; they must not
|
|
172
|
+
// shrink the arrows of the others, and alone fall back to the text height.
|
|
173
|
+
var rawArrow = median(candidates.map(function (c) { return c.arrowSize; }).filter(function (s) { return s > 0; })) || 0;
|
|
174
|
+
var rawText = median(candidates.map(function (c) { return c.text.height; }).filter(function (h) { return h > 0; })) || 0;
|
|
175
|
+
var measured = median(linear.map(function (c) { return c.measured; }).filter(function (m) { return m > 0; })) ||
|
|
176
|
+
median(candidates.map(function (c) { return c.measured; }).filter(function (m) { return m > 0; })) ||
|
|
177
|
+
0;
|
|
178
|
+
// Bare dims (no terminators) keep the text height as arrow size so DIMASZ
|
|
179
|
+
// does not shrink below the recovered label.
|
|
180
|
+
var arrowSize = rawArrow || rawText || Math.max(measured * 0.05, 1);
|
|
181
|
+
// Prefer arrow-relative text size. Stroke OCR often reports a cluster bbox
|
|
182
|
+
// taller than the glyphs; CAD text is typically ≤ the arrow head.
|
|
183
|
+
var textHeight = rawArrow > 0
|
|
184
|
+
? clamp(rawText || rawArrow * 0.75, rawArrow * 0.45, rawArrow * 1.0)
|
|
185
|
+
: clamp(rawText || arrowSize * 0.8, arrowSize * 0.35, measured > 0 ? measured * 0.12 : arrowSize);
|
|
186
|
+
var ticks = linear.filter(function (c) { return c.ticks; }).length > linear.length / 2;
|
|
187
|
+
var bare = linear.filter(function (c) { return c.arrowSize === 0; }).length > linear.length / 2;
|
|
188
|
+
var arrowsOut = linear.filter(function (c) { return c.arrowsOut; }).length > linear.length / 2;
|
|
189
|
+
var beyond = median(linear.map(function (c) { return c.extensionBeyond; }).filter(function (b) { return b > 0; })) ||
|
|
190
|
+
arrowSize * 0.5;
|
|
191
|
+
return __assign({
|
|
192
|
+
// Paper geometry from the PDF — never inherit a drawing-scale DIMSCALE
|
|
193
|
+
// (e.g. Standard with DIMSCALE 100 would make text/arrows 100× too large
|
|
194
|
+
// and DIMEXO would eat the extension lines).
|
|
195
|
+
dimscale: 1, dimtxt: textHeight, dimasz: arrowSize, dimgap: textHeight * 0.25, dimexo: 0, dimexe: beyond, dimse1: 0, dimse2: 0, dimatfit: arrowsOut ? 0 : 3, dimtix: 0, dimtofl: arrowsOut ? 1 : 0, dimlfac: scale, dimdec: decimalsOf(candidates.map(function (c) { return c.text.text; })), dimtad: 1, dimsah: 0 }, (ticks
|
|
196
|
+
? { dimblk: '_ArchTick', dimblk1: '', dimblk2: '' }
|
|
197
|
+
: bare
|
|
198
|
+
? { dimblk: '_NONE', dimblk1: '', dimblk2: '' }
|
|
199
|
+
: { dimblk: '', dimblk1: '', dimblk2: '' }));
|
|
200
|
+
}
|
|
201
|
+
function clamp(value, min, max) {
|
|
202
|
+
return Math.min(max, Math.max(min, value));
|
|
203
|
+
}
|
|
204
|
+
/** DXF group-code overrides that pin recovered sizes onto a dimension entity. */
|
|
205
|
+
export function acapPdfDimStyleOverrides(metrics) {
|
|
206
|
+
return [
|
|
207
|
+
{ code: 40, value: metrics.dimscale },
|
|
208
|
+
{ code: 140, value: metrics.dimtxt },
|
|
209
|
+
{ code: 41, value: metrics.dimasz },
|
|
210
|
+
{ code: 147, value: metrics.dimgap },
|
|
211
|
+
{ code: 42, value: metrics.dimexo },
|
|
212
|
+
{ code: 44, value: metrics.dimexe },
|
|
213
|
+
{ code: 75, value: metrics.dimse1 },
|
|
214
|
+
{ code: 76, value: metrics.dimse2 },
|
|
215
|
+
{ code: 289, value: metrics.dimatfit },
|
|
216
|
+
{ code: 174, value: metrics.dimtix },
|
|
217
|
+
{ code: 172, value: metrics.dimtofl },
|
|
218
|
+
{ code: 144, value: metrics.dimlfac },
|
|
219
|
+
{ code: 271, value: metrics.dimdec },
|
|
220
|
+
{ code: 77, value: metrics.dimtad },
|
|
221
|
+
{ code: 173, value: metrics.dimsah }
|
|
222
|
+
];
|
|
223
|
+
}
|
|
224
|
+
/** Appearance fields copied from a picked style onto the working PDF style. */
|
|
225
|
+
var APPEARANCE_FIELDS = [
|
|
226
|
+
'dimclrd',
|
|
227
|
+
'dimclre',
|
|
228
|
+
'dimclrt',
|
|
229
|
+
'dimtxsty',
|
|
230
|
+
'dimlwd',
|
|
231
|
+
'dimlwe',
|
|
232
|
+
'dimtih',
|
|
233
|
+
'dimtoh',
|
|
234
|
+
'dimtad',
|
|
235
|
+
'dimjust',
|
|
236
|
+
'dimtfill',
|
|
237
|
+
'dimtfillclr'
|
|
238
|
+
];
|
|
239
|
+
/**
|
|
240
|
+
* Creates or updates a dim style with recovered paper sizes. Uses `attrs.set`
|
|
241
|
+
* so the write succeeds even when the record could not be opened for write.
|
|
242
|
+
*/
|
|
243
|
+
export function acapPdfEnsureDimStyle(db, candidates, scale, styleName, appearanceFrom) {
|
|
244
|
+
var e_2, _a;
|
|
245
|
+
var _b, _c;
|
|
246
|
+
if (styleName === void 0) { styleName = PDF_DIM_STYLE; }
|
|
247
|
+
var table = db.tables.dimStyleTable;
|
|
248
|
+
var name = styleName.trim() || PDF_DIM_STYLE;
|
|
249
|
+
var existing = table.getAt(name);
|
|
250
|
+
var style = existing
|
|
251
|
+
? ((_b = db.openObjectForWrite(existing.objectId)) !== null && _b !== void 0 ? _b : existing)
|
|
252
|
+
: new AcDbDimStyleTableRecord();
|
|
253
|
+
if (!existing) {
|
|
254
|
+
style.name = name;
|
|
255
|
+
var base = (_c = table.getAt(appearanceFrom || db.dimstyle || 'Standard')) !== null && _c !== void 0 ? _c : table.getAt('Standard');
|
|
256
|
+
if (base)
|
|
257
|
+
writeDimStyleFields(style, readDimStyleFields(base));
|
|
258
|
+
table.add(style);
|
|
259
|
+
}
|
|
260
|
+
else if (appearanceFrom) {
|
|
261
|
+
var appearance = table.getAt(appearanceFrom);
|
|
262
|
+
if (appearance) {
|
|
263
|
+
var fields = readDimStyleFields(appearance);
|
|
264
|
+
var picked = {};
|
|
265
|
+
try {
|
|
266
|
+
for (var APPEARANCE_FIELDS_1 = __values(APPEARANCE_FIELDS), APPEARANCE_FIELDS_1_1 = APPEARANCE_FIELDS_1.next(); !APPEARANCE_FIELDS_1_1.done; APPEARANCE_FIELDS_1_1 = APPEARANCE_FIELDS_1.next()) {
|
|
267
|
+
var key = APPEARANCE_FIELDS_1_1.value;
|
|
268
|
+
if (fields[key] !== undefined)
|
|
269
|
+
picked[key] = fields[key];
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
273
|
+
finally {
|
|
274
|
+
try {
|
|
275
|
+
if (APPEARANCE_FIELDS_1_1 && !APPEARANCE_FIELDS_1_1.done && (_a = APPEARANCE_FIELDS_1.return)) _a.call(APPEARANCE_FIELDS_1);
|
|
276
|
+
}
|
|
277
|
+
finally { if (e_2) throw e_2.error; }
|
|
278
|
+
}
|
|
279
|
+
writeStyleAttrs(style, picked);
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
writeStyleAttrs(style, __assign({}, acapPdfDimStyleMetrics(candidates, scale)));
|
|
283
|
+
return style;
|
|
284
|
+
}
|
|
285
|
+
/** Write dim style fields without requiring an open-for-write transaction. */
|
|
286
|
+
function writeStyleAttrs(style, values) {
|
|
287
|
+
var e_3, _a;
|
|
288
|
+
try {
|
|
289
|
+
for (var _b = __values(Object.entries(values)), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
290
|
+
var _d = __read(_c.value, 2), key = _d[0], value = _d[1];
|
|
291
|
+
if (value !== undefined) {
|
|
292
|
+
style.attrs.set(key, value);
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
297
|
+
finally {
|
|
298
|
+
try {
|
|
299
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
300
|
+
}
|
|
301
|
+
finally { if (e_3) throw e_3.error; }
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
/**
|
|
305
|
+
* Builds dimension entities from recovered candidates.
|
|
306
|
+
*
|
|
307
|
+
* Sizes are forced through a temporary dim-style override for `createDimBlock`
|
|
308
|
+
* (so a large DIMSCALE on Standard cannot blow up text or hide extensions),
|
|
309
|
+
* then the permanent style name is restored on the entity.
|
|
310
|
+
*
|
|
311
|
+
* @returns The created dimensions (caller appends or shows as transients).
|
|
312
|
+
*/
|
|
313
|
+
export function acapPdfCreateDimensions(db, candidates, scale, layerOf, styleName, options) {
|
|
314
|
+
var e_4, _a, e_5, _b;
|
|
315
|
+
var _c, _d, _e, _f;
|
|
316
|
+
if (styleName === void 0) { styleName = PDF_DIM_STYLE; }
|
|
317
|
+
var name = styleName.trim() || PDF_DIM_STYLE;
|
|
318
|
+
var append = (options === null || options === void 0 ? void 0 : options.append) !== false;
|
|
319
|
+
var metrics = acapPdfDimStyleMetrics(candidates, scale);
|
|
320
|
+
var decimals = (_d = (_c = db.tables.dimStyleTable.getAt(name)) === null || _c === void 0 ? void 0 : _c.dimdec) !== null && _d !== void 0 ? _d : metrics.dimdec;
|
|
321
|
+
var overrides = acapPdfDimStyleOverrides(metrics);
|
|
322
|
+
var appearanceName = ((_e = options === null || options === void 0 ? void 0 : options.appearanceFrom) === null || _e === void 0 ? void 0 : _e.trim()) || name;
|
|
323
|
+
var appearance = (_f = db.tables.dimStyleTable.getAt(appearanceName)) !== null && _f !== void 0 ? _f : db.tables.dimStyleTable.getAt(name);
|
|
324
|
+
var appearanceFields = appearance
|
|
325
|
+
? readDimStyleFields(appearance)
|
|
326
|
+
: undefined;
|
|
327
|
+
var overrideValues = __assign({}, metrics);
|
|
328
|
+
if (appearanceFields) {
|
|
329
|
+
try {
|
|
330
|
+
for (var APPEARANCE_FIELDS_2 = __values(APPEARANCE_FIELDS), APPEARANCE_FIELDS_2_1 = APPEARANCE_FIELDS_2.next(); !APPEARANCE_FIELDS_2_1.done; APPEARANCE_FIELDS_2_1 = APPEARANCE_FIELDS_2.next()) {
|
|
331
|
+
var key = APPEARANCE_FIELDS_2_1.value;
|
|
332
|
+
if (appearanceFields[key] !== undefined) {
|
|
333
|
+
overrideValues[key] = appearanceFields[key];
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
catch (e_4_1) { e_4 = { error: e_4_1 }; }
|
|
338
|
+
finally {
|
|
339
|
+
try {
|
|
340
|
+
if (APPEARANCE_FIELDS_2_1 && !APPEARANCE_FIELDS_2_1.done && (_a = APPEARANCE_FIELDS_2.return)) _a.call(APPEARANCE_FIELDS_2);
|
|
341
|
+
}
|
|
342
|
+
finally { if (e_4) throw e_4.error; }
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
setDimStyleOverride(db, overrideValues);
|
|
346
|
+
var created = [];
|
|
347
|
+
try {
|
|
348
|
+
try {
|
|
349
|
+
for (var candidates_1 = __values(candidates), candidates_1_1 = candidates_1.next(); !candidates_1_1.done; candidates_1_1 = candidates_1.next()) {
|
|
350
|
+
var candidate = candidates_1_1.value;
|
|
351
|
+
var prepared = candidate.kind === 'linear'
|
|
352
|
+
? ensureLinearExtensions(candidate)
|
|
353
|
+
: candidate;
|
|
354
|
+
var dimension = createDimension(prepared);
|
|
355
|
+
// Bake geometry with the override style (*DimOverride), then retarget
|
|
356
|
+
// the entity to the permanent style name for the drawing.
|
|
357
|
+
applyCurrentDimStyle(dimension, db);
|
|
358
|
+
acdbWriteDimStyleOverrides(dimension, overrides);
|
|
359
|
+
var value = parsePdfDimensionValue(prepared.text.text);
|
|
360
|
+
var angular = prepared.kind === 'angular';
|
|
361
|
+
var expected = angular ? prepared.measured : prepared.measured * scale;
|
|
362
|
+
var plain = (angular ? /^[\s\d.,°]*$/ : /^[\s\d.,]*$/).test(prepared.text.text);
|
|
363
|
+
var agrees = value !== undefined &&
|
|
364
|
+
Math.abs(value - expected) <=
|
|
365
|
+
Math.max(expected * 0.005, 0.5 * Math.pow(10, -decimals));
|
|
366
|
+
if (!agrees || !plain)
|
|
367
|
+
dimension.dimensionText = prepared.text.text;
|
|
368
|
+
var layer = layerOf === null || layerOf === void 0 ? void 0 : layerOf(prepared);
|
|
369
|
+
if (layer)
|
|
370
|
+
dimension.layer = layer;
|
|
371
|
+
commitDimBlock(db, dimension);
|
|
372
|
+
dimension.dimensionStyleName = name;
|
|
373
|
+
if (prepared.kind === 'linear' &&
|
|
374
|
+
prepared.arrowSize > 0 &&
|
|
375
|
+
dimension.dimBlockId) {
|
|
376
|
+
orientLinearDimArrows(db, dimension.dimBlockId, prepared.rotation, prepared.arrowsOut);
|
|
377
|
+
}
|
|
378
|
+
if (append)
|
|
379
|
+
db.tables.blockTable.modelSpace.appendEntity(dimension);
|
|
380
|
+
created.push(dimension);
|
|
381
|
+
}
|
|
382
|
+
}
|
|
383
|
+
catch (e_5_1) { e_5 = { error: e_5_1 }; }
|
|
384
|
+
finally {
|
|
385
|
+
try {
|
|
386
|
+
if (candidates_1_1 && !candidates_1_1.done && (_b = candidates_1.return)) _b.call(candidates_1);
|
|
387
|
+
}
|
|
388
|
+
finally { if (e_5) throw e_5.error; }
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
finally {
|
|
392
|
+
setDimStyleOverride(db, null);
|
|
393
|
+
}
|
|
394
|
+
return created;
|
|
395
|
+
}
|
|
396
|
+
/**
|
|
397
|
+
* Removes preview dimensions that were never appended to model space: drops
|
|
398
|
+
* their anonymous dim blocks from the block table.
|
|
399
|
+
*/
|
|
400
|
+
export function acapPdfDisposeDimensionPreviews(db, dimensions) {
|
|
401
|
+
var e_6, _a;
|
|
402
|
+
try {
|
|
403
|
+
for (var dimensions_1 = __values(dimensions), dimensions_1_1 = dimensions_1.next(); !dimensions_1_1.done; dimensions_1_1 = dimensions_1.next()) {
|
|
404
|
+
var dimension = dimensions_1_1.value;
|
|
405
|
+
var blockName = dimension.dimBlockId;
|
|
406
|
+
if (blockName)
|
|
407
|
+
disposeDimBlock(db, blockName);
|
|
408
|
+
dimension.dimBlockId = null;
|
|
409
|
+
}
|
|
410
|
+
}
|
|
411
|
+
catch (e_6_1) { e_6 = { error: e_6_1 }; }
|
|
412
|
+
finally {
|
|
413
|
+
try {
|
|
414
|
+
if (dimensions_1_1 && !dimensions_1_1.done && (_a = dimensions_1.return)) _a.call(dimensions_1);
|
|
415
|
+
}
|
|
416
|
+
finally { if (e_6) throw e_6.error; }
|
|
417
|
+
}
|
|
418
|
+
}
|
|
419
|
+
/**
|
|
420
|
+
* Sets arrow insert rotations to match the PDF: inside = pointing apart,
|
|
421
|
+
* outside = pointing toward each other. createDimBlock always draws the
|
|
422
|
+
* inside orientation (`start = rotation+π`, `end = rotation`); outside dims
|
|
423
|
+
* need a π flip.
|
|
424
|
+
*/
|
|
425
|
+
function orientLinearDimArrows(db, blockName, rotation, arrowsOut) {
|
|
426
|
+
var block = db.tables.blockTable.getAt(blockName);
|
|
427
|
+
if (!block)
|
|
428
|
+
return;
|
|
429
|
+
var inserts = __spreadArray([], __read(block.newIterator()), false).filter(function (e) { return e instanceof AcDbBlockReference; });
|
|
430
|
+
if (inserts.length < 2)
|
|
431
|
+
return;
|
|
432
|
+
var ux = Math.cos(rotation);
|
|
433
|
+
var uy = Math.sin(rotation);
|
|
434
|
+
inserts.sort(function (a, b) {
|
|
435
|
+
return a.position.x * ux +
|
|
436
|
+
a.position.y * uy -
|
|
437
|
+
(b.position.x * ux + b.position.y * uy);
|
|
438
|
+
});
|
|
439
|
+
// Closed-filled arrow block points +X. Inside (createDimBlock default):
|
|
440
|
+
// first tip faces −u, second +u. Outside: flip both.
|
|
441
|
+
var startRot = arrowsOut ? rotation : rotation + Math.PI;
|
|
442
|
+
var endRot = arrowsOut ? rotation + Math.PI : rotation;
|
|
443
|
+
inserts[0].rotation = startRot;
|
|
444
|
+
inserts[inserts.length - 1].rotation = endRot;
|
|
445
|
+
}
|
|
446
|
+
/**
|
|
447
|
+
* When recognition failed to find extension lines, the origins collapse to the
|
|
448
|
+
* arrow tips and the dim block only draws tiny DIMEXE stubs. Push the origins
|
|
449
|
+
* away from the dimension line so the verticals stay visible after erase.
|
|
450
|
+
*/
|
|
451
|
+
function ensureLinearExtensions(candidate) {
|
|
452
|
+
var ux = Math.cos(candidate.rotation);
|
|
453
|
+
var uy = Math.sin(candidate.rotation);
|
|
454
|
+
var nx = -uy;
|
|
455
|
+
var ny = ux;
|
|
456
|
+
// Invented stubs stay modest; recognized origins keep their full length.
|
|
457
|
+
var minLen = Math.max(candidate.arrowSize * 3, 4);
|
|
458
|
+
var beyond = Math.max(0, candidate.extensionBeyond);
|
|
459
|
+
var fix = function (origin, tip) {
|
|
460
|
+
var across = (origin.x - tip.x) * nx + (origin.y - tip.y) * ny;
|
|
461
|
+
if (Math.abs(across) >= minLen * 0.25) {
|
|
462
|
+
return { origin: origin, beyond: beyond };
|
|
463
|
+
}
|
|
464
|
+
// Prefer the side the (collapsed) origin already hints at; else toward the
|
|
465
|
+
// value text (usually between the dim line and the object).
|
|
466
|
+
var side = Math.abs(across) > 1e-9
|
|
467
|
+
? Math.sign(across)
|
|
468
|
+
: Math.sign((candidate.text.center.x - tip.x) * nx +
|
|
469
|
+
(candidate.text.center.y - tip.y) * ny) || 1;
|
|
470
|
+
return {
|
|
471
|
+
origin: {
|
|
472
|
+
x: tip.x + nx * side * minLen,
|
|
473
|
+
y: tip.y + ny * side * minLen
|
|
474
|
+
},
|
|
475
|
+
beyond: Math.max(beyond, candidate.arrowSize > 0 ? candidate.arrowSize * 0.25 : 0)
|
|
476
|
+
};
|
|
477
|
+
};
|
|
478
|
+
// Project reported origins onto the dim-line feet when they already sit on
|
|
479
|
+
// the span; otherwise keep dimLinePoint / dimLinePoint+measured as tips.
|
|
480
|
+
var along1 = (candidate.xLine1.x - candidate.dimLinePoint.x) * ux +
|
|
481
|
+
(candidate.xLine1.y - candidate.dimLinePoint.y) * uy;
|
|
482
|
+
var along2 = (candidate.xLine2.x - candidate.dimLinePoint.x) * ux +
|
|
483
|
+
(candidate.xLine2.y - candidate.dimLinePoint.y) * uy;
|
|
484
|
+
var foot1 = {
|
|
485
|
+
x: candidate.dimLinePoint.x + ux * along1,
|
|
486
|
+
y: candidate.dimLinePoint.y + uy * along1
|
|
487
|
+
};
|
|
488
|
+
var foot2 = {
|
|
489
|
+
x: candidate.dimLinePoint.x + ux * along2,
|
|
490
|
+
y: candidate.dimLinePoint.y + uy * along2
|
|
491
|
+
};
|
|
492
|
+
var a = fix(candidate.xLine1, foot1);
|
|
493
|
+
var b = fix(candidate.xLine2, foot2);
|
|
494
|
+
return __assign(__assign({}, candidate), { xLine1: a.origin, xLine2: b.origin, extensionBeyond: Math.max(a.beyond, b.beyond) });
|
|
495
|
+
}
|
|
496
|
+
function createDimension(candidate) {
|
|
497
|
+
var pt = function (p) { return new AcGePoint3d(p.x, p.y, 0); };
|
|
498
|
+
if (candidate.kind === 'linear') {
|
|
499
|
+
var dimension = new AcDbRotatedDimension(pt(candidate.xLine1), pt(candidate.xLine2), pt(candidate.dimLinePoint));
|
|
500
|
+
dimension.rotation = candidate.rotation;
|
|
501
|
+
return dimension;
|
|
502
|
+
}
|
|
503
|
+
if (candidate.kind === 'angular') {
|
|
504
|
+
return new AcDb3PointAngularDimension(pt(candidate.center), pt(candidate.xLine1), pt(candidate.xLine2), pt(candidate.arcPoint));
|
|
505
|
+
}
|
|
506
|
+
if (candidate.kind === 'radius') {
|
|
507
|
+
return new AcDbRadialDimension(pt(candidate.center), pt(candidate.chordPoint), candidate.leaderLength);
|
|
508
|
+
}
|
|
509
|
+
var far = {
|
|
510
|
+
x: 2 * candidate.center.x - candidate.chordPoint.x,
|
|
511
|
+
y: 2 * candidate.center.y - candidate.chordPoint.y
|
|
512
|
+
};
|
|
513
|
+
return new AcDbDiametricDimension(pt(candidate.chordPoint), pt(far), candidate.leaderLength);
|
|
514
|
+
}
|
|
515
|
+
function median(values) {
|
|
516
|
+
if (values.length === 0)
|
|
517
|
+
return 0;
|
|
518
|
+
var sorted = __spreadArray([], __read(values), false).sort(function (a, b) { return a - b; });
|
|
519
|
+
return sorted[Math.floor(sorted.length / 2)];
|
|
520
|
+
}
|
|
521
|
+
/** Decimal places used by the dimension texts (most common). */
|
|
522
|
+
function decimalsOf(texts) {
|
|
523
|
+
return median(texts.map(function (t) {
|
|
524
|
+
var match = /\d+[.,](\d+)/.exec(t);
|
|
525
|
+
return match ? match[1].length : 0;
|
|
526
|
+
}));
|
|
527
|
+
}
|
|
528
|
+
/**
|
|
529
|
+
* Snaps a drawing scale to the nearest common value (1, 2, 2.5, 5 × 10ⁿ)
|
|
530
|
+
* when within 1 %, since dimension texts are rounded.
|
|
531
|
+
*/
|
|
532
|
+
export function acapPdfNiceScale(scale) {
|
|
533
|
+
var e_7, _a, e_8, _b;
|
|
534
|
+
if (!(scale > 0))
|
|
535
|
+
return 1;
|
|
536
|
+
var exponent = Math.floor(Math.log10(scale));
|
|
537
|
+
try {
|
|
538
|
+
for (var _c = __values([exponent - 1, exponent, exponent + 1]), _d = _c.next(); !_d.done; _d = _c.next()) {
|
|
539
|
+
var e = _d.value;
|
|
540
|
+
try {
|
|
541
|
+
for (var _e = (e_8 = void 0, __values([1, 2, 2.5, 5])), _f = _e.next(); !_f.done; _f = _e.next()) {
|
|
542
|
+
var m = _f.value;
|
|
543
|
+
var nice = m * Math.pow(10, e);
|
|
544
|
+
if (Math.abs(nice - scale) <= scale * 0.01)
|
|
545
|
+
return nice;
|
|
546
|
+
}
|
|
547
|
+
}
|
|
548
|
+
catch (e_8_1) { e_8 = { error: e_8_1 }; }
|
|
549
|
+
finally {
|
|
550
|
+
try {
|
|
551
|
+
if (_f && !_f.done && (_b = _e.return)) _b.call(_e);
|
|
552
|
+
}
|
|
553
|
+
finally { if (e_8) throw e_8.error; }
|
|
554
|
+
}
|
|
555
|
+
}
|
|
556
|
+
}
|
|
557
|
+
catch (e_7_1) { e_7 = { error: e_7_1 }; }
|
|
558
|
+
finally {
|
|
559
|
+
try {
|
|
560
|
+
if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
|
|
561
|
+
}
|
|
562
|
+
finally { if (e_7) throw e_7.error; }
|
|
563
|
+
}
|
|
564
|
+
return scale;
|
|
565
|
+
}
|
|
566
|
+
//# sourceMappingURL=pdfDimensionConvert.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pdfDimensionConvert.js","sourceRoot":"","sources":["../src/pdfDimensionConvert.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type AcDbEntity } from '@mlightcad/data-model';
|
|
2
|
+
import type { PdfTextStroke } from './recognition/pdfGlyphClustering';
|
|
3
|
+
/**
|
|
4
|
+
* Samples a curve entity into a stroke polyline for text recognition.
|
|
5
|
+
*
|
|
6
|
+
* Only the shape matters (bounding boxes and glyph signatures), so arcs and
|
|
7
|
+
* ellipses are sampled coarsely and splines use their control polygon.
|
|
8
|
+
*
|
|
9
|
+
* @returns The stroke, or `undefined` for entities that cannot be glyph
|
|
10
|
+
* strokes (text, hatches, blocks, ...).
|
|
11
|
+
*/
|
|
12
|
+
export declare function pdfEntityToStroke<Id>(entity: AcDbEntity, id: Id): PdfTextStroke<Id> | undefined;
|
|
13
|
+
//# sourceMappingURL=pdfEntityStrokes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pdfEntityStrokes.d.ts","sourceRoot":"","sources":["../src/pdfEntityStrokes.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,UAAU,EAIhB,MAAM,uBAAuB,CAAA;AAE9B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAA;AAMrE;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAClC,MAAM,EAAE,UAAU,EAClB,EAAE,EAAE,EAAE,GACL,aAAa,CAAC,EAAE,CAAC,GAAG,SAAS,CAI/B"}
|