@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
@@ -12,6 +12,24 @@ export type PdfImportPoint = {
12
12
  x: number;
13
13
  y: number;
14
14
  };
15
+ /**
16
+ * One exact path segment in model-space millimeters.
17
+ *
18
+ * Affine maps keep Bezier curves Bezier, so control points transformed
19
+ * through the CTM and viewport describe the page curve exactly. Quadratic
20
+ * curves are degree-elevated to cubics.
21
+ */
22
+ export type PdfImportSegment = {
23
+ kind: 'line';
24
+ p0: PdfImportPoint;
25
+ p1: PdfImportPoint;
26
+ } | {
27
+ kind: 'cubic';
28
+ p0: PdfImportPoint;
29
+ p1: PdfImportPoint;
30
+ p2: PdfImportPoint;
31
+ p3: PdfImportPoint;
32
+ };
15
33
  export interface PdfImportViewport {
16
34
  height: number;
17
35
  convertToViewportPoint(x: number, y: number): number[];
@@ -44,6 +62,15 @@ export interface PdfImportOps {
44
62
  fillStroke: number;
45
63
  eoFillStroke: number;
46
64
  endPath: number;
65
+ /** Clip (`W`); the path painted next becomes the clip. */
66
+ clip?: number;
67
+ /** Even-odd clip (`W*`). */
68
+ eoClip?: number;
69
+ /**
70
+ * PDF.js internal fill used for Type3 / mask path compilation. Treat like
71
+ * {@link PdfImportOps.fill} when present in a packed `constructPath`.
72
+ */
73
+ rawFillPath?: number;
47
74
  setStrokeRGBColor: number;
48
75
  setFillRGBColor: number;
49
76
  beginText: number;
@@ -60,33 +87,221 @@ export interface PdfImportOps {
60
87
  setTextRise: number;
61
88
  setTextRenderingMode: number;
62
89
  showText: number;
90
+ /** Line width (`w`). Optional so older op tables still type-check. */
91
+ setLineWidth?: number;
92
+ /** Dash pattern (`d`): args `[dashArray, phase]`. */
93
+ setDash?: number;
94
+ /** Form XObject begin — args typically `[matrix, bbox]`. */
95
+ paintFormXObjectBegin?: number;
96
+ paintFormXObjectEnd?: number;
97
+ /** Image XObject paint — args `[objId, width, height]`. */
98
+ paintImageXObject?: number;
99
+ /** Inline image paint — args `[imageData]`. */
100
+ paintInlineImageXObject?: number;
63
101
  }
102
+ /**
103
+ * Sentinel colour: CAD ACI 7 (AutoCAD “foreground” / auto-contrast).
104
+ *
105
+ * Renders white on a dark CAD canvas and black on a light one.
106
+ */
107
+ export declare const PDF_IMPORT_FOREGROUND_COLOR = "foreground";
108
+ /**
109
+ * PDF page paper tone used when remapping contrast ink.
110
+ *
111
+ * - `light` — typical white paper (black ink → ACI 7)
112
+ * - `dark` — black / dark paper (white ink → ACI 7)
113
+ * - `auto` — infer from the dominant near-black vs near-white paint colours
114
+ */
115
+ export type PdfImportPaperTone = 'light' | 'dark' | 'auto';
116
+ /**
117
+ * Options for {@link extractPdfImportSubpaths}.
118
+ *
119
+ * PDF ink that matches the opposite of the page paper would vanish on the
120
+ * wrong CAD background if stored as fixed RGB. Contrast ink is mapped to
121
+ * {@link PDF_IMPORT_FOREGROUND_COLOR} (ACI 7) instead.
122
+ */
123
+ export interface PdfImportExtractOptions {
124
+ /**
125
+ * Remap paper-contrast ink (black on light paper, white on dark paper) to
126
+ * ACI 7. Default: `true`.
127
+ */
128
+ remapContrastInk?: boolean;
129
+ /**
130
+ * Assumed PDF paper tone. Default: `'auto'`.
131
+ */
132
+ paperTone?: PdfImportPaperTone;
133
+ /**
134
+ * @deprecated Use {@link PdfImportExtractOptions.remapContrastInk}.
135
+ * When `false`, disables contrast remapping.
136
+ */
137
+ remapDarkColors?: boolean;
138
+ }
139
+ /** True when every channel is near black (paper ink on white PDF). */
140
+ export declare function isPdfNearBlackColor(color: string | undefined): boolean;
141
+ /** True when every channel is near white (paper ink on dark PDF). */
142
+ export declare function isPdfNearWhiteColor(color: string | undefined): boolean;
143
+ /**
144
+ * Infers PDF paper tone from painted colours.
145
+ *
146
+ * Dark paper is rare; bias toward light so white fills on a normal CAD PDF
147
+ * do not leave near-black linework unmapped (and invisible on a dark canvas).
148
+ * Only classify as dark when near-white ink dominates and near-black is absent.
149
+ */
150
+ export declare function detectPdfImportPaperTone(colors: Iterable<string | undefined>): 'light' | 'dark';
151
+ /**
152
+ * Maps PDF contrast ink to ACI 7 (`foreground`) based on paper tone.
153
+ *
154
+ * - Light paper + near-black → {@link PDF_IMPORT_FOREGROUND_COLOR}
155
+ * - Dark paper + near-white → {@link PDF_IMPORT_FOREGROUND_COLOR}
156
+ * - Other colours kept as lowercase `#rrggbb`
157
+ */
158
+ export declare function remapPdfImportColor(color: string | undefined, paperTone?: 'light' | 'dark'): string | undefined;
159
+ /**
160
+ * Applies contrast-ink remapping to an extracted page.
161
+ *
162
+ * When `paperTone` is `'auto'`, tone is detected from the raw colours first.
163
+ */
164
+ export declare function applyPdfImportContrastColors(content: PdfImportPageContent, options?: Pick<PdfImportExtractOptions, 'remapContrastInk' | 'remapDarkColors' | 'paperTone'>): PdfImportPageContent;
64
165
  export interface PdfImportOperatorList {
65
166
  fnArray: ArrayLike<number>;
66
167
  argsArray: ArrayLike<unknown>;
67
168
  }
68
169
  export interface PdfImportedSubpath {
170
+ /** Flattened outline (curves sampled with a fixed step count). */
69
171
  points: PdfImportPoint[];
172
+ /**
173
+ * Exact segments of the same subpath. Consumers that recover arcs,
174
+ * circles, ellipses or splines should prefer these over {@link points}.
175
+ */
176
+ segments?: PdfImportSegment[];
177
+ /** True when the subpath was painted by a fill operator. */
178
+ filled?: boolean;
179
+ /**
180
+ * True when the paint also stroked the outline (`B`, `b`, ...). Unset for
181
+ * plain strokes, which are always outlines.
182
+ */
183
+ stroked?: boolean;
184
+ /** Fill colour of a filled subpath (`#rrggbb` or foreground). */
185
+ fillColor?: string;
186
+ /**
187
+ * Subpaths painted by one operator share this number, so an even-odd fill
188
+ * with holes can become one hatch with several loops.
189
+ */
190
+ paintGroup?: number;
191
+ /** Stroke width in millimeters, when the PDF set a positive width. */
192
+ lineWidth?: number;
193
+ /**
194
+ * Stroke dash pattern in millimeters (alternating dash, gap), when the
195
+ * PDF stroked this subpath dashed. Always an even number of entries.
196
+ */
197
+ dashPattern?: number[];
198
+ /**
199
+ * Index into {@link PdfImportPageContent.formInstances} when the subpath
200
+ * was drawn inside a top-level Form XObject.
201
+ */
202
+ formInstance?: number;
203
+ /**
204
+ * Index into {@link PdfImportPageContent.clipPaths} of the clip in effect
205
+ * when the subpath was painted (the innermost one).
206
+ */
207
+ clipPath?: number;
70
208
  layerName?: string;
71
- /** `#rrggbb` from the stroke or fill color that painted this path. */
209
+ /**
210
+ * Paint colour: `#rrggbb`, or {@link PDF_IMPORT_FOREGROUND_COLOR} after
211
+ * contrast remapping.
212
+ */
72
213
  color?: string;
73
214
  }
74
215
  /** One PDF text-showing run, placed on the glyph baseline. */
75
216
  export interface PdfImportedText {
76
217
  text: string;
77
218
  position: PdfImportPoint;
219
+ /** Advance width of the run along the baseline, in millimeters. */
220
+ width?: number;
221
+ /**
222
+ * PDF.js font resource id (`setFont` argument). Resolve the font name
223
+ * through `page.commonObjs`.
224
+ */
225
+ fontId?: string;
78
226
  /** CAD text height in millimeters. */
79
227
  height: number;
80
228
  /** Rotation in radians, counterclockwise from +X. */
81
229
  rotation: number;
82
230
  widthFactor: number;
83
231
  layerName?: string;
84
- /** `#rrggbb` fill color, or the stroke color for stroke-only text. */
232
+ /**
233
+ * Fill (or stroke-only) colour: `#rrggbb`, or
234
+ * {@link PDF_IMPORT_FOREGROUND_COLOR} after contrast remapping.
235
+ */
85
236
  color?: string;
86
237
  }
238
+ /**
239
+ * One top-level Form XObject paint. PDF.js inlines form content and does not
240
+ * say which form it was, so repeated forms are recognized by comparing the
241
+ * geometry of instances in form-local coordinates.
242
+ */
243
+ export interface PdfImportFormInstance {
244
+ /**
245
+ * Affine map from form space to model-space millimeters:
246
+ * `x' = a·x + c·y + e`, `y' = b·x + d·y + f`.
247
+ */
248
+ toCad: {
249
+ a: number;
250
+ b: number;
251
+ c: number;
252
+ d: number;
253
+ e: number;
254
+ f: number;
255
+ };
256
+ }
257
+ /**
258
+ * One raster image paint. PDF draws an image into the unit square of the
259
+ * current user space, so the placement is that square's affine map.
260
+ */
261
+ export interface PdfImportedImage {
262
+ /**
263
+ * PDF.js object id; resolve it through `page.objs` (or `page.commonObjs`
264
+ * for ids starting with `g_`).
265
+ */
266
+ objId?: string;
267
+ /** Image data of an inline image (`BI … EI`), as PDF.js passes it. */
268
+ inline?: unknown;
269
+ /**
270
+ * Unit square → model-space millimeters: `x' = a·u + c·v + e`,
271
+ * `y' = b·u + d·v + f`. `(0, 0)` is the image's bottom-left corner and
272
+ * `(0, 1)` its top-left (first pixel row).
273
+ */
274
+ toCad: {
275
+ a: number;
276
+ b: number;
277
+ c: number;
278
+ d: number;
279
+ e: number;
280
+ f: number;
281
+ };
282
+ layerName?: string;
283
+ }
87
284
  export interface PdfImportPageContent {
88
285
  subpaths: PdfImportedSubpath[];
89
286
  texts: PdfImportedText[];
287
+ /** Raster image paints, in paint order. */
288
+ images?: PdfImportedImage[];
289
+ /** Top-level Form XObject paints, referenced by subpath `formInstance`. */
290
+ formInstances?: PdfImportFormInstance[];
291
+ /**
292
+ * Clip paths (closed loops in millimeters), referenced by subpath
293
+ * `clipPath`. A clip around many strokes often is a hatch boundary.
294
+ */
295
+ clipPaths?: PdfImportPoint[][][];
296
+ }
297
+ /** CAD layer resolved for one PDF optional-content group. */
298
+ export interface PdfImportOcgLayer {
299
+ layerName: string;
300
+ /**
301
+ * Initial display state. `false` keeps nested optional content on this
302
+ * layer, since viewers hide it regardless of inner groups.
303
+ */
304
+ visible?: boolean;
90
305
  }
91
306
  /**
92
307
  * Converts one page operator list into model-space subpaths.
@@ -99,7 +314,5 @@ export interface PdfImportPageContent {
99
314
  * @param fallbackLayerName - Layer for geometry outside a single OCG. Omit it
100
315
  * for PDFs with no optional content so entities stay on the current layer.
101
316
  */
102
- export declare function extractPdfImportSubpaths(opList: PdfImportOperatorList, ops: PdfImportOps, viewport: PdfImportViewport, ocgLayers: ReadonlyMap<string, {
103
- layerName: string;
104
- }>, fallbackLayerName?: string): PdfImportPageContent;
317
+ export declare function extractPdfImportSubpaths(opList: PdfImportOperatorList, ops: PdfImportOps, viewport: PdfImportViewport, ocgLayers: ReadonlyMap<string, PdfImportOcgLayer>, fallbackLayerName?: string, options?: PdfImportExtractOptions): PdfImportPageContent;
105
318
  //# sourceMappingURL=pdfVectorImport.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pdfVectorImport.d.ts","sourceRoot":"","sources":["../src/pdfVectorImport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pdfVectorImport.d.ts","sourceRoot":"","sources":["../src/pdfVectorImport.ts"],"names":[],"mappings":"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"}