illustrator-mcp-server 1.2.11 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/README.ja.md +64 -340
  2. package/README.md +65 -328
  3. package/dist/bundle.cjs +522 -153
  4. package/dist/executor/file-transport.d.ts +3 -1
  5. package/dist/executor/file-transport.d.ts.map +1 -1
  6. package/dist/executor/file-transport.js +2 -1
  7. package/dist/executor/file-transport.js.map +1 -1
  8. package/dist/executor/jsx-runner.d.ts.map +1 -1
  9. package/dist/executor/jsx-runner.js +3 -3
  10. package/dist/executor/jsx-runner.js.map +1 -1
  11. package/dist/jsx/helpers/common.jsx +34 -0
  12. package/dist/tools/export/export-pdf.d.ts.map +1 -1
  13. package/dist/tools/export/export-pdf.js +152 -34
  14. package/dist/tools/export/export-pdf.js.map +1 -1
  15. package/dist/tools/export/export.d.ts.map +1 -1
  16. package/dist/tools/export/export.js +47 -5
  17. package/dist/tools/export/export.js.map +1 -1
  18. package/dist/tools/modify/create-crop-marks.d.ts +3 -0
  19. package/dist/tools/modify/create-crop-marks.d.ts.map +1 -0
  20. package/dist/tools/modify/create-crop-marks.js +226 -0
  21. package/dist/tools/modify/create-crop-marks.js.map +1 -0
  22. package/dist/tools/modify/create-ellipse.d.ts.map +1 -1
  23. package/dist/tools/modify/create-ellipse.js +3 -5
  24. package/dist/tools/modify/create-ellipse.js.map +1 -1
  25. package/dist/tools/modify/create-line.d.ts.map +1 -1
  26. package/dist/tools/modify/create-line.js +3 -5
  27. package/dist/tools/modify/create-line.js.map +1 -1
  28. package/dist/tools/modify/create-path.d.ts.map +1 -1
  29. package/dist/tools/modify/create-path.js +3 -5
  30. package/dist/tools/modify/create-path.js.map +1 -1
  31. package/dist/tools/modify/create-rectangle.d.ts.map +1 -1
  32. package/dist/tools/modify/create-rectangle.js +3 -5
  33. package/dist/tools/modify/create-rectangle.js.map +1 -1
  34. package/dist/tools/modify/save-document.d.ts.map +1 -1
  35. package/dist/tools/modify/save-document.js +26 -7
  36. package/dist/tools/modify/save-document.js.map +1 -1
  37. package/dist/tools/modify/shared.d.ts.map +1 -1
  38. package/dist/tools/modify/shared.js +3 -2
  39. package/dist/tools/modify/shared.js.map +1 -1
  40. package/dist/tools/read/get-artboards.d.ts.map +1 -1
  41. package/dist/tools/read/get-artboards.js +3 -5
  42. package/dist/tools/read/get-artboards.js.map +1 -1
  43. package/dist/tools/read/get-layers.d.ts.map +1 -1
  44. package/dist/tools/read/get-layers.js +3 -7
  45. package/dist/tools/read/get-layers.js.map +1 -1
  46. package/dist/tools/read/get-selection.d.ts.map +1 -1
  47. package/dist/tools/read/get-selection.js +3 -7
  48. package/dist/tools/read/get-selection.js.map +1 -1
  49. package/dist/tools/registry.d.ts.map +1 -1
  50. package/dist/tools/registry.js +2 -0
  51. package/dist/tools/registry.js.map +1 -1
  52. package/dist/tools/tool-executor.d.ts +17 -0
  53. package/dist/tools/tool-executor.d.ts.map +1 -0
  54. package/dist/tools/tool-executor.js +22 -0
  55. package/dist/tools/tool-executor.js.map +1 -0
  56. package/package.json +1 -1
package/README.md CHANGED
@@ -1,5 +1,3 @@
1
- > **⚠️ Caution:** AI can make mistakes. Do not over-rely on the output — **always have a human perform the final check on submission data**. The user is responsible for the results.
2
-
3
1
  **[日本語版はこちら / Japanese version](README.ja.md)**
4
2
 
5
3
  # Illustrator MCP Server
@@ -11,7 +9,7 @@
11
9
  [![MCP](https://img.shields.io/badge/MCP-Compatible-purple.svg)](https://modelcontextprotocol.io/)
12
10
  [![Ko-fi](https://img.shields.io/badge/Ko--fi-FF5E5B?style=flat&logo=ko-fi&logoColor=white)](https://ko-fi.com/cyocun)
13
11
 
14
- An [MCP (Model Context Protocol)](https://modelcontextprotocol.io/) server for reading, manipulating, and exporting Adobe Illustrator design data.
12
+ An [MCP (Model Context Protocol)](https://modelcontextprotocol.io/) server for reading, manipulating, and exporting Adobe Illustrator design data — with 63 built-in tools.
15
13
 
16
14
  Control Illustrator directly from AI assistants like Claude — extract design information for web implementation, verify print-ready data, and export assets.
17
15
 
@@ -19,53 +17,36 @@ Control Illustrator directly from AI assistants like Claude — extract design i
19
17
 
20
18
  ---
21
19
 
22
- > **☕ Support:** Developing and maintaining this tool takes time and resources. If it helps your workflow, your support means a lot — [buy me a coffee!](https://ko-fi.com/cyocun)
20
+ > [!TIP]
21
+ > Developing and maintaining this tool takes time and resources.
22
+ > If it helps your workflow, your support means a lot — [☕ buy me a coffee!](https://ko-fi.com/cyocun)
23
23
 
24
24
  ---
25
25
 
26
26
  ## 🚀 Quick Start
27
27
 
28
- **Requirements:** macOS or Windows / Adobe Illustrator CC 2024+ / [Node.js 20+](https://nodejs.org/)
29
-
30
- <details>
31
- <summary><strong>How to install Node.js (first-time setup)</strong></summary>
32
-
33
- Node.js is a runtime required to run this tool.
34
- Skip this section if you already have it installed.
35
-
36
- 1. Go to [nodejs.org](https://nodejs.org/)
37
- 2. Click the **green "LTS" button** to download
38
- 3. Open the downloaded file and follow the installer instructions
39
-
40
- To verify the installation, open Terminal (macOS) or Command Prompt (Windows) and type:
41
-
42
- ```bash
43
- node -v
44
- ```
45
-
46
- If you see a version number like `v20.x.x`, you're all set.
47
-
48
- </details>
28
+ ### 🛠️ Claude Code
49
29
 
50
- ### Claude Code
30
+ Requires [Node.js 20+](https://nodejs.org/).
51
31
 
52
32
  ```bash
53
33
  claude mcp add illustrator-mcp -- npx illustrator-mcp-server
54
34
  ```
55
35
 
56
- ### Claude Desktop
36
+ ### 🖥️ Claude Desktop
57
37
 
58
- 1. Download **`illustrator-mcp-server-x.x.x.mcpb`** from [GitHub Releases](https://github.com/ie3jp/illustrator-mcp-server/releases/latest)
38
+ 1. Download **`illustrator-mcp-server.mcpb`** from [GitHub Releases](https://github.com/ie3jp/illustrator-mcp-server/releases/latest)
59
39
  2. Open Claude Desktop → **Settings** → **Extensions**
60
40
  3. Drag and drop the `.mcpb` file into the Extensions panel
61
41
  4. Click the **Install** button
62
42
 
63
- > **Updating:** The `.mcpb` extension does not auto-update. To update, download the new version and reinstall. If you prefer automatic updates, use the npx method below instead.
64
-
65
43
  <details>
66
44
  <summary><strong>Alternative: manual config (always up to date via npx)</strong></summary>
67
45
 
68
- Open the config file and add the connection settings.
46
+ > [!NOTE]
47
+ > The `.mcpb` extension does not auto-update. To update, download the new version and reinstall. If you prefer automatic updates, use the npx method below instead.
48
+
49
+ Requires [Node.js 20+](https://nodejs.org/). Open the config file and add the connection settings.
69
50
 
70
51
  #### 1. Open the config file
71
52
 
@@ -86,7 +67,8 @@ From the Claude Desktop menu bar:
86
67
  }
87
68
  ```
88
69
 
89
- > **Note:** If you installed Node.js via a version manager (nvm, mise, fnm, etc.), Claude Desktop may not find `npx`. In that case, use the full path:
70
+ > [!NOTE]
71
+ > If you installed Node.js via a version manager (nvm, mise, fnm, etc.), Claude Desktop may not find `npx`. In that case, use the full path:
90
72
  > ```json
91
73
  > "command": "/full/path/to/npx"
92
74
  > ```
@@ -99,9 +81,14 @@ From the Claude Desktop menu bar:
99
81
 
100
82
  </details>
101
83
 
84
+ > [!CAUTION]
85
+ > AI can make mistakes. Do not over-rely on the output — **always have a human perform the final check on submission data**. The user is responsible for the results.
86
+
87
+ > [!NOTE]
102
88
  > **macOS:** On first run, allow automation access in System Settings > Privacy & Security > Automation.
103
89
 
104
- > **Note:** Modify and export tools will bring Illustrator to the foreground during execution.
90
+ > [!NOTE]
91
+ > Modify and export tools will bring Illustrator to the foreground during execution.
105
92
 
106
93
  ---
107
94
 
@@ -141,8 +128,6 @@ Claude: → get_document_info → resize_for_variation
141
128
 
142
129
  ## 📖 Recipes
143
130
 
144
- ### Web Implementation
145
-
146
131
  <details>
147
132
  <summary><b>Extract colors and fonts for CSS</b></summary>
148
133
 
@@ -182,27 +167,6 @@ Claude: → get_artboards → convert_to_outlines → export (repeated)
182
167
 
183
168
  </details>
184
169
 
185
- <details>
186
- <summary><b>Inspect a specific object's styling</b></summary>
187
-
188
- ```
189
- You: Tell me about the "CTA Button" object
190
-
191
- Claude: → find_objects (name: "CTA Button") → get_path_items → get_effects
192
-
193
- ■ CTA Button (uuid: abc-123)
194
- - Size: 200×48px
195
- - Corner radius: 24px
196
- - Fill: #1A73E8
197
- - Stroke: none
198
- - Opacity: 100%
199
- - Drop shadow: present (parameters not readable due to API limitation)
200
- ```
201
-
202
- </details>
203
-
204
- ### Print & Pre-press
205
-
206
170
  <details>
207
171
  <summary><b>Check PDF/X-1a compliance before submission</b></summary>
208
172
 
@@ -222,63 +186,6 @@ Claude: → preflight_check (target_pdf_profile: "x1a")
222
186
 
223
187
  </details>
224
188
 
225
- <details>
226
- <summary><b>Audit overprint settings to prevent print accidents</b></summary>
227
-
228
- ```
229
- You: Check overprint settings
230
-
231
- Claude: → get_overprint_info
232
-
233
- ■ 4 objects with overprint
234
-
235
- ✅ Safe (K100 overprint — intentional):
236
- - "Headline" text (K100, ink coverage 100%)
237
- - "Rule line" path (K100, ink coverage 100%)
238
-
239
- ⚠ Review needed (possibly accidental):
240
- - "Background decoration" (C30 M80 Y0 K0, coverage 110%)
241
- - "Rich black frame" (C40 M40 Y40 K100, coverage 320%)
242
- → Rich black + overprint can cause unexpected color bleed
243
- ```
244
-
245
- </details>
246
-
247
- <details>
248
- <summary><b>Check color separations</b></summary>
249
-
250
- ```
251
- You: Show me the color separation info
252
-
253
- Claude: → get_separation_info
254
-
255
- ■ Separations (CMYK document)
256
- - Cyan: 342 uses
257
- - Magenta: 287 uses
258
- - Yellow: 301 uses
259
- - Black: 456 uses
260
- - DIC 2585 (spot): 12 uses
261
- → This will output as 5 plates.
262
- ```
263
-
264
- </details>
265
-
266
- <details>
267
- <summary><b>Export PDF with crop marks and bleed</b></summary>
268
-
269
- ```
270
- You: Export PDF with Japanese crop marks and 3mm bleed
271
-
272
- Claude: → export_pdf (trim_marks: true, marks_style: "japanese", bleed: true)
273
-
274
- Exported to /output/print_ready.pdf
275
- - Japanese crop marks (0.125pt)
276
- - 3mm bleed
277
- - Registration marks auto-applied
278
- ```
279
-
280
- </details>
281
-
282
189
  <details>
283
190
  <summary><b>Check image quality for print</b></summary>
284
191
 
@@ -296,137 +203,6 @@ Claude: → get_images (include_print_info: true)
296
203
 
297
204
  </details>
298
205
 
299
- ### Text Proofing
300
-
301
- <details>
302
- <summary><b>Find placeholder text and notation inconsistencies</b></summary>
303
-
304
- ```
305
- You: Check text for inconsistencies
306
-
307
- Claude: → check_text_consistency
308
-
309
- 📝 Consistency Report:
310
-
311
- ■ Notation variations
312
- ⚠ "Contact Us" (2 places) vs "Contact us" (1 place)
313
- ⚠ "e-mail" (1 place) vs "email" (3 places) vs "E-mail" (1 place)
314
-
315
- ■ Possible outdated content
316
- ❌ Header still says "2024" (all other instances are "2025")
317
- ❌ Footer phone number differs from other pages
318
-
319
- ■ Placeholder text
320
- ❌ "Lorem ipsum" (2 places) — forgotten placeholder?
321
- ❌ "Sample text" (1 place)
322
- ```
323
-
324
- </details>
325
-
326
- ### Design Variations
327
-
328
- <details>
329
- <summary><b>Create multiple banner sizes from a single design</b></summary>
330
-
331
- ```
332
- You: Create 3 web banner sizes from this A4 flyer
333
-
334
- Claude: → get_document_info → resize_for_variation (3 targets)
335
-
336
- Created 3 variations:
337
- - "Leaderboard" artboard (728×90pt, scaled to 11%)
338
- - "Medium Rectangle" artboard (300×250pt, scaled to 30%)
339
- - "Wide Skyscraper" artboard (160×600pt, scaled to 71%)
340
-
341
- ⚠ Text reflow is not applied.
342
- You may need to adjust text sizing and overflow manually.
343
- ```
344
-
345
- </details>
346
-
347
- <details>
348
- <summary><b>Build a layout with shapes and text</b></summary>
349
-
350
- ```
351
- You: Create a business card layout with company name, name, email, and phone
352
-
353
- Claude: → create_document (91×55mm, CMYK)
354
- → create_text_frame × 4
355
- → create_rectangle (background)
356
- → create_line (divider)
357
-
358
- Business card layout created:
359
- - Company: top center / Noto Sans JP Bold 9pt
360
- - Name: center / Noto Sans JP Bold 14pt
361
- - Email: bottom / Noto Sans JP Regular 7pt
362
- - Phone: bottom / Noto Sans JP Regular 7pt
363
- ```
364
-
365
- </details>
366
-
367
- ### Color Management
368
-
369
- <details>
370
- <summary><b>Diagnose color issues in a CMYK document</b></summary>
371
-
372
- ```
373
- You: Run a color diagnostic
374
-
375
- Claude: → get_colors (include_diagnostics: true)
376
-
377
- ■ Color Diagnostics (CMYK document)
378
- ❌ RGB colors found: 3 fills / 1 stroke
379
- ⚠ Gradient warning:
380
- - "Rainbow gradient": stop #2 is RGB
381
- ■ High ink coverage:
382
- - C80 M70 Y70 K90 (total 310%) — may cause ink pooling
383
- ```
384
-
385
- </details>
386
-
387
- ### Object Operations
388
-
389
- <details>
390
- <summary><b>Align and distribute multiple objects</b></summary>
391
-
392
- ```
393
- You: Align these 3 buttons to the left and distribute vertically
394
-
395
- Claude: → find_objects → align_objects (alignment: "left", distribute: "vertical")
396
-
397
- Aligned 3 objects: left-aligned + vertically distributed.
398
- ```
399
-
400
- </details>
401
-
402
- <details>
403
- <summary><b>Replace brand colors across the document</b></summary>
404
-
405
- ```
406
- You: Replace all red (C0 M100 Y100 K0) with the new brand blue (C80 M10 Y0 K0)
407
-
408
- Claude: → replace_color (from → to)
409
-
410
- Replaced 24 fills and 3 strokes.
411
- ```
412
-
413
- </details>
414
-
415
- <details>
416
- <summary><b>Place color chips outside the artboard</b></summary>
417
-
418
- ```
419
- You: Show all used colors as chips to the right of the artboard
420
-
421
- Claude: → place_color_chips (position: "right")
422
-
423
- Placed 12 color chips on "Color Chips" layer with CMYK labels.
424
- ```
425
-
426
- </details>
427
-
428
- ### Accessibility
429
-
430
206
  <details>
431
207
  <summary><b>Check WCAG color contrast ratios</b></summary>
432
208
 
@@ -443,73 +219,19 @@ Claude: → check_contrast (auto_detect: true)
443
219
 
444
220
  </details>
445
221
 
446
- ### Design System
447
-
448
- <details>
449
- <summary><b>Extract design tokens from a comp</b></summary>
450
-
451
- ```
452
- You: Extract design tokens as CSS custom properties
453
-
454
- Claude: → extract_design_tokens (format: "css")
455
-
456
- :root {
457
- --color-primary: #1A73E8;
458
- --color-secondary: #34A853;
459
- --font-heading-family: "NotoSansJP-Bold";
460
- --font-heading-size: 32pt;
461
- --spacing-8: 8pt;
462
- --spacing-16: 16pt;
463
- }
464
- ```
465
-
466
- </details>
467
-
468
222
  ---
469
223
 
470
- <br>
471
-
472
- # For Developers
473
-
474
- ## MCP Prompts
224
+ ## Workflow Templates
475
225
 
476
- Workflow templates that guide Claude through multi-step tasks. Available in the Claude Desktop prompt picker.
226
+ Pre-built workflow templates available in the Claude Desktop prompt picker.
477
227
 
478
- | Prompt | Description |
479
- |--------|-------------|
228
+ | Template | Description |
229
+ |----------|-------------|
480
230
  | `quick-layout` | Paste text content and Claude arranges it on the artboard as headings, body, and captions |
481
231
  | `print-preflight-workflow` | Comprehensive 7-step pre-press check (document → preflight → overprint → separations → images → colors → text) |
482
232
 
483
233
  ---
484
234
 
485
- ## Claude Code Skills
486
-
487
- Add pre-built workflows as slash commands in Claude Code, combining multiple MCP tools into guided processes.
488
-
489
- ### Pre-press Preflight Check (`/illustrator-preflight`)
490
-
491
- Runs `preflight_check` + `get_overprint_info` + `check_text_consistency` in parallel, then merges results into a unified report grouped by severity (Critical / Warning / Info). Catches print-critical issues that are easy to miss manually.
492
-
493
- **Install:**
494
-
495
- ```bash
496
- /plugin install illustrator-preflight
497
- ```
498
-
499
- **Usage:**
500
-
501
- Type `/illustrator-preflight:illustrator-preflight` in Claude Code, or just ask "run a preflight check".
502
-
503
- ---
504
-
505
- ## Features
506
-
507
- - **63 tools + 2 prompts** — 21 read / 37 modify / 2 export / 3 utility
508
- - **Web coordinate system** — Y-axis down, artboard-relative (same as CSS/SVG)
509
- - **UUID tracking** — Stable object identification across tool calls
510
-
511
- ---
512
-
513
235
  ## Tool Reference
514
236
 
515
237
  ### Read Tools (21)
@@ -592,48 +314,72 @@ Type `/illustrator-preflight:illustrator-preflight` in Claude Code, or just ask
592
314
 
593
315
  ### Export Tools (2)
594
316
 
317
+ <details>
318
+ <summary>Click to expand</summary>
319
+
595
320
  | Tool | Description |
596
321
  |---|---|
597
322
  | `export` | SVG / PNG / JPG export (by artboard, selection, or UUID) |
598
323
  | `export_pdf` | Print-ready PDF export (crop marks, bleed, selective downsampling, output intent) |
599
324
 
325
+ </details>
326
+
600
327
  ### Utility (3)
601
328
 
329
+ <details>
330
+ <summary>Click to expand</summary>
331
+
602
332
  | Tool | Description |
603
333
  |---|---|
604
334
  | `preflight_check` | Pre-press check (RGB mixing, broken links, low resolution, white overprint, transparency+overprint interaction, PDF/X compliance, etc.) |
605
335
  | `check_text_consistency` | Text consistency check (placeholder detection, notation variation patterns, full text listing for LLM analysis) |
606
336
  | `set_workflow` | Set workflow mode (web/print) to configure default coordinate system |
607
337
 
338
+ </details>
339
+
608
340
  ---
609
341
 
342
+ ## Known Limitations
343
+
344
+ | Limitation | Details |
345
+ |---|---|
346
+ | Windows support | Windows uses PowerShell COM automation (not yet tested on real hardware) |
347
+ | Live effects | Drop shadow and other effect parameters can be detected but not read |
348
+ | Color profiles | Color profile assignment only — full conversion is not available |
349
+ | Bleed settings | Bleed settings cannot be read (Illustrator API limitation) |
350
+ | WebP export | Not supported — use PNG or SVG instead |
351
+ | Japanese crop marks | PDF export automatically uses the TrimMark command approach: generates marks as document paths, exports, then removes via undo |
352
+ | Font embedding | Embedding mode (full/subset) cannot be controlled directly — use PDF presets |
353
+ | Size variations | Proportional scaling only — text may need manual adjustment afterward |
354
+
355
+ ---
356
+
357
+ <br>
358
+
359
+ # For Developers
360
+
610
361
  ## Architecture
611
362
 
612
363
  ```mermaid
613
364
  flowchart LR
614
365
  Claude <-->|MCP Protocol| Server["MCP Server\n(TypeScript/Node.js)"]
615
- Server <-->|"execFile (macOS)"| osascript
616
- Server <-->|"execFile (Windows)"| PS["powershell.exe\n(COM Automation)"]
617
- osascript <-->|do javascript| AI["Adobe Illustrator\n(ExtendScript/JSX)"]
618
- PS <-->|DoJavaScript| AI
619
366
 
367
+ Server -.->|generate| Runner["run-{uuid}.scpt / .ps1"]
368
+ Server -.->|generate| JSX["script-{uuid}.jsx\n(BOM UTF-8)"]
620
369
  Server -.->|write| PF["params-{uuid}.json"]
370
+
371
+ Runner -->|execFile| osascript
372
+ Runner -->|execFile| PS["powershell.exe"]
373
+
374
+ osascript -->|do javascript| AI["Adobe Illustrator\n(ExtendScript/JSX)"]
375
+ PS -->|DoJavaScript| AI
376
+
377
+ JSX -.->|execute| AI
621
378
  PF -.->|read| AI
622
379
  AI -.->|write| RF["result-{uuid}.json"]
623
380
  RF -.->|read| Server
624
- Server -.->|generate| JSX["script-{uuid}.jsx\n(BOM UTF-8)"]
625
- Server -.->|generate| Runner["run-{uuid}.scpt / .ps1"]
626
381
  ```
627
382
 
628
- ### Coordinate System
629
-
630
- Geometry-aware read and modify tools accept a `coordinate_system` parameter. Export and document-wide utility tools do not.
631
-
632
- | Value | Origin | Y-axis | Use case |
633
- |---|---|---|---|
634
- | `artboard-web` (default) | Artboard top-left | Positive downward | Web / CSS implementation |
635
- | `document` | Pasteboard | Positive upward (Illustrator native) | Print / DTP |
636
-
637
383
  ---
638
384
 
639
385
  ## Building from Source
@@ -666,18 +412,9 @@ The E2E test creates a fresh document, places test objects, runs 106 test cases
666
412
 
667
413
  ---
668
414
 
669
- ## Known Limitations
415
+ ## Disclaimer
670
416
 
671
- | Limitation | Details |
672
- |---|---|
673
- | macOS / Windows | macOS uses osascript, Windows uses PowerShell COM automation (not yet tested on real hardware) |
674
- | Live effects | ExtendScript DOM limitations prevent reading parameters for drop shadows, etc. |
675
- | Color profile conversion | Only profile assignment is supported; full ICC conversion is not available |
676
- | Bleed settings | Not accessible via the ExtendScript API (undocumented) |
677
- | WebP export | Not supported — ExportType does not include WebP in ExtendScript |
678
- | Japanese crop marks | `PageMarksTypes.Japanese` may not be applied correctly in PDF export |
679
- | Font embedding control | PDF font embedding mode (full/subset) is not exposed in the API. Use PDF presets instead |
680
- | Size variations | No text reflow. Proportional placement only (not smart layout) |
417
+ This tool automates many Illustrator operations, but AI can make mistakes. Extracted data, preflight results, and document modifications should always be reviewed by a person. **Do not rely on this tool as your sole quality check.** Use it as an assistant alongside your own manual verification, especially for print submissions and client deliverables. The authors are not responsible for any damages or losses arising from the use of this software or its outputs.
681
418
 
682
419
  ---
683
420