illustrator-mcp-server 1.2.12 → 1.3.1
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/README.ja.md +7 -1
- package/README.md +9 -2
- package/dist/bundle.cjs +399 -115
- package/dist/jsx/helpers/common.jsx +34 -0
- package/dist/tools/export/export-pdf.d.ts.map +1 -1
- package/dist/tools/export/export-pdf.js +128 -33
- package/dist/tools/export/export-pdf.js.map +1 -1
- package/dist/tools/export/export.js +2 -2
- package/dist/tools/modify/create-crop-marks.d.ts +3 -0
- package/dist/tools/modify/create-crop-marks.d.ts.map +1 -0
- package/dist/tools/modify/create-crop-marks.js +226 -0
- package/dist/tools/modify/create-crop-marks.js.map +1 -0
- package/dist/tools/registry.d.ts.map +1 -1
- package/dist/tools/registry.js +2 -0
- package/dist/tools/registry.js.map +1 -1
- package/package.json +1 -1
|
@@ -305,6 +305,40 @@ function preflightChecks() {
|
|
|
305
305
|
return null;
|
|
306
306
|
}
|
|
307
307
|
|
|
308
|
+
// --- フォアグラウンド必須メニューコマンド実行 ---
|
|
309
|
+
|
|
310
|
+
/**
|
|
311
|
+
* app.executeMenuCommand のラッパー。
|
|
312
|
+
* 失敗時にフォアグラウンド要求のガイダンス付きエラーを投げる。
|
|
313
|
+
* executeMenuCommand はIllustratorが前面でないと失敗するため、
|
|
314
|
+
* ユーザーにウィンドウを切り替えないよう案内する。
|
|
315
|
+
*/
|
|
316
|
+
function executeMenuCommandSafe(command) {
|
|
317
|
+
try {
|
|
318
|
+
app.executeMenuCommand(command);
|
|
319
|
+
} catch (e) {
|
|
320
|
+
throw new Error(
|
|
321
|
+
"Menu command \"" + command + "\" failed. " +
|
|
322
|
+
"Illustrator must be in the foreground during execution. " +
|
|
323
|
+
"Please do not switch windows while the operation is running. " +
|
|
324
|
+
"(コマンド \"" + command + "\" に失敗しました。実行中は Illustrator を前面に保ち、ウィンドウを切り替えないでください)" +
|
|
325
|
+
" / Original error: " + e.message
|
|
326
|
+
);
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
/**
|
|
331
|
+
* TrimMark メニューコマンドを実行する。
|
|
332
|
+
* v25 → レガシー の順にフォールバック。
|
|
333
|
+
*/
|
|
334
|
+
function executeTrimMark() {
|
|
335
|
+
try {
|
|
336
|
+
executeMenuCommandSafe("TrimMark v25");
|
|
337
|
+
} catch (e1) {
|
|
338
|
+
executeMenuCommandSafe("TrimMark");
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
|
|
308
342
|
// --- オブジェクトタイプ判定 ---
|
|
309
343
|
|
|
310
344
|
function getItemType(item) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"export-pdf.d.ts","sourceRoot":"","sources":["../../../src/tools/export/export-pdf.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"export-pdf.d.ts","sourceRoot":"","sources":["../../../src/tools/export/export-pdf.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAkRpE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAyChD"}
|
|
@@ -41,6 +41,68 @@ if (preflight) {
|
|
|
41
41
|
}
|
|
42
42
|
var options = params.options || {};
|
|
43
43
|
|
|
44
|
+
// --- 日本式トンボ: TrimMark コマンドでドキュメント上に生成 ---
|
|
45
|
+
// PDFSaveOptions.pageMarksType = PageMarksTypes.Japanese は
|
|
46
|
+
// Illustrator バージョンによって正しく反映されない場合がある。
|
|
47
|
+
// そのため日本式トンボはドキュメント上にパスとして生成し、
|
|
48
|
+
// アートボードを一時拡張して PDF に含める。書き出し後に復元する。
|
|
49
|
+
var usedDocumentMarks = false;
|
|
50
|
+
var trimMarkGroups = [];
|
|
51
|
+
var origAbRect = null;
|
|
52
|
+
var abIdx = doc.artboards.getActiveArtboardIndex();
|
|
53
|
+
if (options.marks_style === "japanese" && options.trim_marks === true) {
|
|
54
|
+
try {
|
|
55
|
+
app.preferences.setBooleanPreference("cropMarkStyle", true);
|
|
56
|
+
|
|
57
|
+
var groupCountBefore = doc.groupItems.length;
|
|
58
|
+
|
|
59
|
+
var abRect = doc.artboards[abIdx].artboardRect;
|
|
60
|
+
origAbRect = abRect.slice();
|
|
61
|
+
var tempRect = doc.pathItems.rectangle(abRect[1], abRect[0], abRect[2] - abRect[0], abRect[1] - abRect[3]);
|
|
62
|
+
tempRect.filled = false;
|
|
63
|
+
tempRect.stroked = false;
|
|
64
|
+
|
|
65
|
+
doc.selection = null;
|
|
66
|
+
tempRect.selected = true;
|
|
67
|
+
executeTrimMark();
|
|
68
|
+
|
|
69
|
+
try { tempRect.remove(); } catch (re) { /* consumed by command */ }
|
|
70
|
+
doc.selection = null;
|
|
71
|
+
|
|
72
|
+
var newGroupCount = doc.groupItems.length - groupCountBefore;
|
|
73
|
+
for (var g = 0; g < newGroupCount; g++) {
|
|
74
|
+
trimMarkGroups.push(doc.groupItems[g]);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
// TrimMark がグループを生成しなかった場合はフォールバック
|
|
78
|
+
if (trimMarkGroups.length === 0) {
|
|
79
|
+
throw new Error("TrimMark command produced no marks");
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
// トンボが収まるようにアートボードを一時拡張
|
|
83
|
+
if (trimMarkGroups.length > 0) {
|
|
84
|
+
var mb = trimMarkGroups[0].geometricBounds.slice();
|
|
85
|
+
for (var g = 1; g < trimMarkGroups.length; g++) {
|
|
86
|
+
var gb = trimMarkGroups[g].geometricBounds;
|
|
87
|
+
if (gb[0] < mb[0]) mb[0] = gb[0];
|
|
88
|
+
if (gb[1] > mb[1]) mb[1] = gb[1];
|
|
89
|
+
if (gb[2] > mb[2]) mb[2] = gb[2];
|
|
90
|
+
if (gb[3] < mb[3]) mb[3] = gb[3];
|
|
91
|
+
}
|
|
92
|
+
doc.artboards[abIdx].artboardRect = [mb[0] - 1, mb[1] + 1, mb[2] + 1, mb[3] - 1];
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
usedDocumentMarks = true;
|
|
96
|
+
} catch (tmErr) {
|
|
97
|
+
// TrimMark コマンド失敗時は PDFSaveOptions にフォールバック
|
|
98
|
+
usedDocumentMarks = false;
|
|
99
|
+
// アートボードを復元(途中で拡張済みの場合)
|
|
100
|
+
if (origAbRect) {
|
|
101
|
+
try { doc.artboards[abIdx].artboardRect = origAbRect; } catch (restoreErr) {}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
|
|
44
106
|
var pdfOpts = new PDFSaveOptions();
|
|
45
107
|
|
|
46
108
|
// Apply preset if specified
|
|
@@ -52,43 +114,53 @@ if (preflight) {
|
|
|
52
114
|
pdfOpts.preserveEditability = false;
|
|
53
115
|
}
|
|
54
116
|
|
|
55
|
-
//
|
|
56
|
-
if (
|
|
57
|
-
|
|
117
|
+
// トンボ種類
|
|
118
|
+
if (usedDocumentMarks) {
|
|
119
|
+
// ドキュメント上にトンボを生成済み → PDF のマークは OFF
|
|
120
|
+
pdfOpts.trimMarks = false;
|
|
58
121
|
} else if (options.marks_style === "roman") {
|
|
59
122
|
pdfOpts.pageMarksType = PageMarksTypes.Roman;
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
123
|
+
if (options.trim_marks === true) {
|
|
124
|
+
pdfOpts.trimMarks = true;
|
|
125
|
+
} else {
|
|
126
|
+
pdfOpts.trimMarks = false;
|
|
127
|
+
}
|
|
65
128
|
} else {
|
|
66
|
-
|
|
129
|
+
// marks_style 未指定 or フォールバック
|
|
130
|
+
if (options.marks_style === "japanese") {
|
|
131
|
+
// TrimMark コマンド失敗時のフォールバック
|
|
132
|
+
pdfOpts.pageMarksType = PageMarksTypes.Japanese;
|
|
133
|
+
}
|
|
134
|
+
if (options.trim_marks === true) {
|
|
135
|
+
pdfOpts.trimMarks = true;
|
|
136
|
+
} else {
|
|
137
|
+
pdfOpts.trimMarks = false;
|
|
138
|
+
}
|
|
67
139
|
}
|
|
68
140
|
|
|
69
|
-
//
|
|
70
|
-
if (options.marks_style === "japanese" && options.trim_marks === true) {
|
|
71
|
-
// レジストレーションマーク(センタートンボ)が未指定なら自動ON
|
|
141
|
+
// 日本式トンボ(PDFSaveOptions フォールバック時)の必須設定を自動適用
|
|
142
|
+
if (options.marks_style === "japanese" && options.trim_marks === true && !usedDocumentMarks) {
|
|
72
143
|
if (typeof options.registration_marks === "undefined") {
|
|
73
144
|
pdfOpts.registrationMarks = true;
|
|
74
145
|
}
|
|
75
|
-
// 裁ち落としが未指定なら3mm自動設定(外トンボの表示に必要)
|
|
76
146
|
if (options.bleed !== true) {
|
|
77
147
|
var bleedPt = 8.504; // 3mm
|
|
78
148
|
pdfOpts.bleedOffsetRect = [bleedPt, bleedPt, bleedPt, bleedPt];
|
|
79
149
|
}
|
|
80
150
|
}
|
|
81
151
|
|
|
82
|
-
// トンボの太さ(文字列・数値両対応)
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
152
|
+
// トンボの太さ(文字列・数値両対応) — ドキュメントマーク時は不要
|
|
153
|
+
if (!usedDocumentMarks) {
|
|
154
|
+
var tw = String(options.trim_mark_weight);
|
|
155
|
+
if (tw === "0.125") {
|
|
156
|
+
pdfOpts.trimMarkWeight = PDFTrimMarkWeight.TRIMMARKWEIGHT0125;
|
|
157
|
+
} else if (tw === "0.25") {
|
|
158
|
+
pdfOpts.trimMarkWeight = PDFTrimMarkWeight.TRIMMARKWEIGHT025;
|
|
159
|
+
} else if (tw === "0.5") {
|
|
160
|
+
pdfOpts.trimMarkWeight = PDFTrimMarkWeight.TRIMMARKWEIGHT05;
|
|
161
|
+
} else if (options.trim_marks === true) {
|
|
162
|
+
pdfOpts.trimMarkWeight = PDFTrimMarkWeight.TRIMMARKWEIGHT0125;
|
|
163
|
+
}
|
|
92
164
|
}
|
|
93
165
|
|
|
94
166
|
// レジストレーションマーク
|
|
@@ -106,10 +178,9 @@ if (preflight) {
|
|
|
106
178
|
pdfOpts.pageInformation = options.page_information;
|
|
107
179
|
}
|
|
108
180
|
|
|
109
|
-
// Bleed
|
|
110
|
-
if (options.bleed === true) {
|
|
111
|
-
|
|
112
|
-
var bleedPt = 8.504;
|
|
181
|
+
// Bleed — ドキュメントマーク時はアートボード拡張済みなので bleed 不要
|
|
182
|
+
if (options.bleed === true && !usedDocumentMarks) {
|
|
183
|
+
var bleedPt = 8.504; // 3mm
|
|
113
184
|
pdfOpts.bleedOffsetRect = [bleedPt, bleedPt, bleedPt, bleedPt];
|
|
114
185
|
}
|
|
115
186
|
|
|
@@ -160,14 +231,38 @@ if (preflight) {
|
|
|
160
231
|
if (!parentFolder.exists) {
|
|
161
232
|
writeResultFile(RESULT_PATH, { error: true, message: "Output directory does not exist: " + parentFolder.fsName });
|
|
162
233
|
} else {
|
|
163
|
-
|
|
234
|
+
var saveError = null;
|
|
235
|
+
try {
|
|
236
|
+
doc.saveAs(outFile, pdfOpts);
|
|
237
|
+
} catch (saveErr) {
|
|
238
|
+
saveError = saveErr;
|
|
239
|
+
} finally {
|
|
240
|
+
// ドキュメントを元の状態に復元(saveAs の成否にかかわらず必ず実行)
|
|
241
|
+
if (usedDocumentMarks) {
|
|
242
|
+
for (var g = 0; g < trimMarkGroups.length; g++) {
|
|
243
|
+
try { trimMarkGroups[g].remove(); } catch (re) {}
|
|
244
|
+
}
|
|
245
|
+
if (origAbRect) {
|
|
246
|
+
try { doc.artboards[abIdx].artboardRect = origAbRect; } catch (restoreErr) {}
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
}
|
|
164
250
|
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
if (!verifyFile.exists) {
|
|
168
|
-
writeResultFile(RESULT_PATH, { error: true, message: "PDF export completed but output file was not created. The path may not be writable: " + outputPath });
|
|
251
|
+
if (saveError) {
|
|
252
|
+
writeResultFile(RESULT_PATH, { error: true, message: "PDF export failed: " + saveError.message, line: saveError.line });
|
|
169
253
|
} else {
|
|
170
|
-
|
|
254
|
+
// エクスポート後にファイル存在を検証
|
|
255
|
+
var verifyFile = new File(outputPath);
|
|
256
|
+
if (!verifyFile.exists) {
|
|
257
|
+
writeResultFile(RESULT_PATH, { error: true, message: "PDF export completed but output file was not created. The path may not be writable: " + outputPath });
|
|
258
|
+
} else {
|
|
259
|
+
var result = { success: true, output_path: outputPath };
|
|
260
|
+
if (usedDocumentMarks) {
|
|
261
|
+
result.japanese_marks_method = "document_trimmark";
|
|
262
|
+
result.japanese_marks_note = "Japanese crop marks were generated as document paths via TrimMark command for reliable rendering, then removed after export.";
|
|
263
|
+
}
|
|
264
|
+
writeResultFile(RESULT_PATH, result);
|
|
265
|
+
}
|
|
171
266
|
}
|
|
172
267
|
}
|
|
173
268
|
} catch (e) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"export-pdf.js","sourceRoot":"","sources":["../../../src/tools/export/export-pdf.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,4BAA4B,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAClF;;;;GAIG;AACH,MAAM,OAAO,GAAG
|
|
1
|
+
{"version":3,"file":"export-pdf.js","sourceRoot":"","sources":["../../../src/tools/export/export-pdf.ts"],"names":[],"mappings":"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"}
|
|
@@ -106,7 +106,7 @@ if (preflight) {
|
|
|
106
106
|
|
|
107
107
|
if (useIsolatedExport) {
|
|
108
108
|
// 選択オブジェクトをコピー
|
|
109
|
-
|
|
109
|
+
executeMenuCommandSafe("copy");
|
|
110
110
|
|
|
111
111
|
// 対象オブジェクトの bounds を取得([left, top, right, bottom] in document coords)
|
|
112
112
|
var vb = targetItem.visibleBounds;
|
|
@@ -119,7 +119,7 @@ if (preflight) {
|
|
|
119
119
|
tempDoc.artboards[0].artboardRect = [0, objH, objW, 0];
|
|
120
120
|
|
|
121
121
|
// ペースト
|
|
122
|
-
|
|
122
|
+
executeMenuCommandSafe("paste");
|
|
123
123
|
|
|
124
124
|
// ペーストされたオブジェクトをアートボード中央に配置
|
|
125
125
|
if (tempDoc.selection && tempDoc.selection.length > 0) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-crop-marks.d.ts","sourceRoot":"","sources":["../../../src/tools/modify/create-crop-marks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA4LpE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAkDhD"}
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { executeToolJsx } from '../tool-executor.js';
|
|
3
|
+
import { WRITE_ANNOTATIONS } from './shared.js';
|
|
4
|
+
/**
|
|
5
|
+
* create_crop_marks — トリムマーク(トンボ)の作成
|
|
6
|
+
*
|
|
7
|
+
* Illustrator の「トリムマークを作成」コマンド(TrimMark v25)を使い、
|
|
8
|
+
* アクティブなアートボード or 選択オブジェクトにトンボを生成する。
|
|
9
|
+
*
|
|
10
|
+
* ■ アートボードモード(デフォルト)
|
|
11
|
+
* アートボードぴったりのサイズで作成しているケースを想定。
|
|
12
|
+
* トンボ生成後、トンボが収まるようにアートボードを拡張する。
|
|
13
|
+
*
|
|
14
|
+
* ■ 選択オブジェクトモード(use_selection: true)
|
|
15
|
+
* ユーザが選択したオブジェクトに対してトンボを生成。
|
|
16
|
+
* アートボードは変更しない。
|
|
17
|
+
*
|
|
18
|
+
* locale パラメータからユーザの国を推定し、日本式/西洋式を自動切替する。
|
|
19
|
+
* - 日本 (ja) → 日本式トンボ(二重線、3mm 塗り足し表示)
|
|
20
|
+
* - その他 → 西洋式トンボ(一重線)
|
|
21
|
+
*
|
|
22
|
+
* @see https://note.com/dtp_tranist/n/n40e3e39cf9f2
|
|
23
|
+
* JSX API: app.executeMenuCommand('TrimMark v25'), app.preferences.setBooleanPreference('cropMarkStyle', ...)
|
|
24
|
+
*/
|
|
25
|
+
const jsxCode = `
|
|
26
|
+
var preflight = preflightChecks();
|
|
27
|
+
if (preflight) {
|
|
28
|
+
writeResultFile(RESULT_PATH, preflight);
|
|
29
|
+
} else {
|
|
30
|
+
try {
|
|
31
|
+
var params = readParamsFile(PARAMS_PATH);
|
|
32
|
+
var doc = app.activeDocument;
|
|
33
|
+
var useSelection = params.use_selection === true;
|
|
34
|
+
|
|
35
|
+
// --- Determine crop mark style ---
|
|
36
|
+
var style = params.style || "auto";
|
|
37
|
+
var locale = params.locale || "";
|
|
38
|
+
var resolvedStyle = "western";
|
|
39
|
+
|
|
40
|
+
var japaneseLocales = ["ja", "ja-jp", "ja_jp"];
|
|
41
|
+
|
|
42
|
+
if (style === "japanese") {
|
|
43
|
+
resolvedStyle = "japanese";
|
|
44
|
+
} else if (style === "western") {
|
|
45
|
+
resolvedStyle = "western";
|
|
46
|
+
} else {
|
|
47
|
+
// auto: detect from locale
|
|
48
|
+
var localeLower = locale.toLowerCase().replace(/_/g, "-");
|
|
49
|
+
for (var i = 0; i < japaneseLocales.length; i++) {
|
|
50
|
+
if (localeLower === japaneseLocales[i] || localeLower.indexOf("ja") === 0) {
|
|
51
|
+
resolvedStyle = "japanese";
|
|
52
|
+
break;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
if (!locale) {
|
|
56
|
+
try {
|
|
57
|
+
var aiLocale = app.locale;
|
|
58
|
+
if (aiLocale && aiLocale.toLowerCase().indexOf("ja") === 0) {
|
|
59
|
+
resolvedStyle = "japanese";
|
|
60
|
+
}
|
|
61
|
+
} catch (e) {}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
// Set crop mark style preference
|
|
66
|
+
app.preferences.setBooleanPreference("cropMarkStyle", resolvedStyle === "japanese");
|
|
67
|
+
|
|
68
|
+
if (useSelection) {
|
|
69
|
+
// --- 選択オブジェクトモード ---
|
|
70
|
+
var sel = doc.selection;
|
|
71
|
+
if (!sel || sel.length === 0) {
|
|
72
|
+
writeResultFile(RESULT_PATH, { error: true, message: "No objects selected. Select one or more objects to create crop marks for." });
|
|
73
|
+
} else {
|
|
74
|
+
var groupCountBefore = doc.groupItems.length;
|
|
75
|
+
|
|
76
|
+
executeTrimMark();
|
|
77
|
+
doc.selection = null;
|
|
78
|
+
|
|
79
|
+
var newGroups = doc.groupItems.length - groupCountBefore;
|
|
80
|
+
if (newGroups === 0) {
|
|
81
|
+
writeResultFile(RESULT_PATH, { error: true, message: "TrimMark command ran but created no marks. The selected object may not be suitable for crop marks." });
|
|
82
|
+
} else {
|
|
83
|
+
var styleName = (resolvedStyle === "japanese") ? "Japanese (日本式トンボ)" : "Western (西洋式トンボ)";
|
|
84
|
+
writeResultFile(RESULT_PATH, {
|
|
85
|
+
success: true,
|
|
86
|
+
mode: "selection",
|
|
87
|
+
crop_mark_style: resolvedStyle,
|
|
88
|
+
style_display_name: styleName,
|
|
89
|
+
mark_groups_created: newGroups,
|
|
90
|
+
artboard_modified: false,
|
|
91
|
+
description: "Crop marks created for the selected object(s). Artboard was not modified."
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
} else {
|
|
96
|
+
// --- アートボードモード ---
|
|
97
|
+
var abIndex = (typeof params.artboard_index === "number") ? params.artboard_index : doc.artboards.getActiveArtboardIndex();
|
|
98
|
+
if (abIndex < 0 || abIndex >= doc.artboards.length) {
|
|
99
|
+
writeResultFile(RESULT_PATH, { error: true, message: "Invalid artboard index: " + abIndex });
|
|
100
|
+
} else {
|
|
101
|
+
var ab = doc.artboards[abIndex];
|
|
102
|
+
var abRect = ab.artboardRect;
|
|
103
|
+
var origAbRect = abRect.slice(); // 元のアートボード矩形を保存
|
|
104
|
+
var abWidth = abRect[2] - abRect[0];
|
|
105
|
+
var abHeight = abRect[1] - abRect[3];
|
|
106
|
+
|
|
107
|
+
// アートボードサイズの一時矩形を作成
|
|
108
|
+
var tempRect = doc.pathItems.rectangle(abRect[1], abRect[0], abWidth, abHeight);
|
|
109
|
+
tempRect.filled = false;
|
|
110
|
+
tempRect.stroked = false;
|
|
111
|
+
|
|
112
|
+
doc.artboards.setActiveArtboardIndex(abIndex);
|
|
113
|
+
|
|
114
|
+
var groupCountBefore = doc.groupItems.length;
|
|
115
|
+
|
|
116
|
+
doc.selection = null;
|
|
117
|
+
tempRect.selected = true;
|
|
118
|
+
|
|
119
|
+
executeTrimMark();
|
|
120
|
+
|
|
121
|
+
try { tempRect.remove(); } catch (removeErr) {}
|
|
122
|
+
doc.selection = null;
|
|
123
|
+
|
|
124
|
+
// トンボグループの参照を取得
|
|
125
|
+
var newGroupCount = doc.groupItems.length - groupCountBefore;
|
|
126
|
+
if (newGroupCount === 0) {
|
|
127
|
+
writeResultFile(RESULT_PATH, { error: true, message: "TrimMark command ran but created no marks." });
|
|
128
|
+
} else {
|
|
129
|
+
var trimMarkGroups = [];
|
|
130
|
+
for (var g = 0; g < newGroupCount; g++) {
|
|
131
|
+
trimMarkGroups.push(doc.groupItems[g]);
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
// トンボ全体の外接矩形を計算してアートボードを拡張
|
|
135
|
+
if (trimMarkGroups.length > 0) {
|
|
136
|
+
var mb = trimMarkGroups[0].geometricBounds.slice();
|
|
137
|
+
for (var g = 1; g < trimMarkGroups.length; g++) {
|
|
138
|
+
var gb = trimMarkGroups[g].geometricBounds;
|
|
139
|
+
if (gb[0] < mb[0]) mb[0] = gb[0];
|
|
140
|
+
if (gb[1] > mb[1]) mb[1] = gb[1];
|
|
141
|
+
if (gb[2] > mb[2]) mb[2] = gb[2];
|
|
142
|
+
if (gb[3] < mb[3]) mb[3] = gb[3];
|
|
143
|
+
}
|
|
144
|
+
// アートボードをトンボが収まるサイズに拡張(少し余裕を持たせる: 1pt)
|
|
145
|
+
ab.artboardRect = [mb[0] - 1, mb[1] + 1, mb[2] + 1, mb[3] - 1];
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
var newAbRect = ab.artboardRect;
|
|
149
|
+
var styleName = (resolvedStyle === "japanese") ? "Japanese (日本式トンボ)" : "Western (西洋式トンボ)";
|
|
150
|
+
var detectionMethod = "";
|
|
151
|
+
if (style === "japanese" || style === "western") {
|
|
152
|
+
detectionMethod = "explicitly specified";
|
|
153
|
+
} else if (locale) {
|
|
154
|
+
detectionMethod = "detected from locale: " + locale;
|
|
155
|
+
} else {
|
|
156
|
+
detectionMethod = "detected from Illustrator locale";
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
writeResultFile(RESULT_PATH, {
|
|
160
|
+
success: true,
|
|
161
|
+
mode: "artboard",
|
|
162
|
+
crop_mark_style: resolvedStyle,
|
|
163
|
+
style_display_name: styleName,
|
|
164
|
+
detection_method: detectionMethod,
|
|
165
|
+
mark_groups_created: newGroupCount,
|
|
166
|
+
artboard_index: abIndex,
|
|
167
|
+
artboard_name: ab.name,
|
|
168
|
+
artboard_modified: true,
|
|
169
|
+
original_artboard_size: { width: abWidth, height: abHeight },
|
|
170
|
+
new_artboard_size: {
|
|
171
|
+
width: newAbRect[2] - newAbRect[0],
|
|
172
|
+
height: newAbRect[1] - newAbRect[3]
|
|
173
|
+
},
|
|
174
|
+
description: (resolvedStyle === "japanese")
|
|
175
|
+
? "Japanese crop marks created. Artboard expanded to include all marks."
|
|
176
|
+
: "Western crop marks created. Artboard expanded to include all marks."
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
} catch (e) {
|
|
182
|
+
writeResultFile(RESULT_PATH, { error: true, message: "Failed to create crop marks: " + e.message, line: e.line });
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
`;
|
|
186
|
+
export function register(server) {
|
|
187
|
+
server.registerTool('create_crop_marks', {
|
|
188
|
+
title: 'Create Crop Marks (トンボ)',
|
|
189
|
+
description: 'Create crop marks (トンボ / trim marks) on the active artboard or selected objects. ' +
|
|
190
|
+
'By default, creates marks for the artboard and expands the artboard to include all marks. ' +
|
|
191
|
+
'With use_selection=true, creates marks for the currently selected object(s) without modifying the artboard. ' +
|
|
192
|
+
'Automatically selects Japanese-style (日本式) or Western-style crop marks based on locale. ' +
|
|
193
|
+
'Note: Illustrator will be activated (brought to foreground) during execution.',
|
|
194
|
+
inputSchema: {
|
|
195
|
+
style: z
|
|
196
|
+
.enum(['auto', 'japanese', 'western'])
|
|
197
|
+
.optional()
|
|
198
|
+
.default('auto')
|
|
199
|
+
.describe('Crop mark style. "japanese" = double-line marks with 3mm bleed indication (日本式トンボ). ' +
|
|
200
|
+
'"western" = single-line marks (西洋式トンボ). ' +
|
|
201
|
+
'"auto" = detect from locale parameter or Illustrator locale.'),
|
|
202
|
+
locale: z
|
|
203
|
+
.string()
|
|
204
|
+
.optional()
|
|
205
|
+
.describe('User locale (e.g. "ja", "ja-JP", "en-US", "de-DE"). Used to auto-detect crop mark style when style is "auto". ' +
|
|
206
|
+
'Japanese locales (ja*) → Japanese marks, others → Western marks. ' +
|
|
207
|
+
'If omitted, falls back to Illustrator\'s own locale setting.'),
|
|
208
|
+
use_selection: z
|
|
209
|
+
.boolean()
|
|
210
|
+
.optional()
|
|
211
|
+
.default(false)
|
|
212
|
+
.describe('If true, create crop marks for the currently selected object(s) instead of the artboard. ' +
|
|
213
|
+
'The artboard will NOT be modified. If false (default), creates marks for the artboard and expands it to fit.'),
|
|
214
|
+
artboard_index: z
|
|
215
|
+
.number()
|
|
216
|
+
.int()
|
|
217
|
+
.min(0)
|
|
218
|
+
.optional()
|
|
219
|
+
.describe('Target artboard index (0-based). Defaults to the currently active artboard. Ignored when use_selection is true.'),
|
|
220
|
+
},
|
|
221
|
+
annotations: WRITE_ANNOTATIONS,
|
|
222
|
+
}, async (params) => {
|
|
223
|
+
return executeToolJsx(jsxCode, params, { activate: true });
|
|
224
|
+
});
|
|
225
|
+
}
|
|
226
|
+
//# sourceMappingURL=create-crop-marks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-crop-marks.js","sourceRoot":"","sources":["../../../src/tools/modify/create-crop-marks.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgKf,CAAC;AAEF,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,YAAY,CACjB,mBAAmB,EACnB;QACE,KAAK,EAAE,yBAAyB;QAChC,WAAW,EACT,mFAAmF;YACnF,4FAA4F;YAC5F,8GAA8G;YAC9G,0FAA0F;YAC1F,+EAA+E;QACjF,WAAW,EAAE;YACX,KAAK,EAAE,CAAC;iBACL,IAAI,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;iBACrC,QAAQ,EAAE;iBACV,OAAO,CAAC,MAAM,CAAC;iBACf,QAAQ,CACP,sFAAsF;gBACtF,0CAA0C;gBAC1C,8DAA8D,CAC/D;YACH,MAAM,EAAE,CAAC;iBACN,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACP,gHAAgH;gBAChH,mEAAmE;gBACnE,8DAA8D,CAC/D;YACH,aAAa,EAAE,CAAC;iBACb,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,OAAO,CAAC,KAAK,CAAC;iBACd,QAAQ,CACP,2FAA2F;gBAC3F,8GAA8G,CAC/G;YACH,cAAc,EAAE,CAAC;iBACd,MAAM,EAAE;iBACR,GAAG,EAAE;iBACL,GAAG,CAAC,CAAC,CAAC;iBACN,QAAQ,EAAE;iBACV,QAAQ,CAAC,iHAAiH,CAAC;SAC/H;QACD,WAAW,EAAE,iBAAiB;KAC/B,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,OAAO,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7D,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA4EpE,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA0ExD"}
|
package/dist/tools/registry.js
CHANGED
|
@@ -41,6 +41,7 @@ import { register as registerReplaceColor } from './modify/replace-color.js';
|
|
|
41
41
|
import { register as registerManageLayers } from './modify/manage-layers.js';
|
|
42
42
|
import { register as registerPlaceColorChips } from './modify/place-color-chips.js';
|
|
43
43
|
import { register as registerPlaceStyleGuide } from './modify/place-style-guide.js';
|
|
44
|
+
import { register as registerCreateCropMarks } from './modify/create-crop-marks.js';
|
|
44
45
|
// Phase 5: ドキュメント管理ツール
|
|
45
46
|
import { register as registerCreateDocument } from './modify/create-document.js';
|
|
46
47
|
import { register as registerCloseDocument } from './modify/close-document.js';
|
|
@@ -109,6 +110,7 @@ export function registerAllTools(server) {
|
|
|
109
110
|
registerManageLayers(server);
|
|
110
111
|
registerPlaceColorChips(server);
|
|
111
112
|
registerPlaceStyleGuide(server);
|
|
113
|
+
registerCreateCropMarks(server);
|
|
112
114
|
// Phase 5: ドキュメント管理
|
|
113
115
|
registerCreateDocument(server);
|
|
114
116
|
registerCloseDocument(server);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED