何重にも重なったクリッピングマスクを解除する
PDFをAdobe Illustratorで開いた際に発生する、何重にも重なったクリッピングマスクや不要なグループ化は、編集作業の大きな妨げになります。
これらを一括で解除し、構造をクリーンにするためのJavaScript(ExtendScript)を作成しました。
下記コードをコピーし、テキストエディタ(メモ帳やVS Codeなど)に貼り付けます。
ファイル名を CleanUpPDFHierarchy.jsx として保存します。
Illustratorで対象のファイルを開きます。
- 特定の部分だけ処理したい場合は、そのオブジェクトを選択してください。
- 全体を処理したい場合は、何も選択しないでください。
メニューの [ファイル] > [スクリプト] > [その他のスクリプト] から、保存したファイルを選択して実行します。
/*
* CleanUpPDF_v2.jsx
* エラー対策版:多重マスクとグループを一括解除
*/
(function() {
if (app.documents.length === 0) return;
var doc = app.activeDocument;
var targetItems = doc.selection.length > 0 ? doc.selection : doc.pageItems;
// 処理の確認
if (!confirm("ドキュメント全体(または選択範囲)の階層を完全に解除しますか?\n※エラーは自動的にスキップします。")) return;
// 再帰的に処理するメイン関数
function flattenHierarchy(items) {
// 後ろからループ(削除や移動によるインデックスずれ防止)
for (var i = items.length - 1; i >= 0; i--) {
var item = items[i];
if (item.typename === "GroupItem") {
// 1. クリッピングマスクの解除を試行
try {
if (item.clipped) {
item.clipped = false;
}
} catch (e) {
// マスク解除に失敗しても次へ進む
}
// 2. 中身に対して再帰的に処理(さらに深いグループを探す)
if (item.pageItems && item.pageItems.length > 0) {
flattenHierarchy(item.pageItems);
}
// 3. グループ解除(中身を外に出す)
try {
var parent = item.parent;
while (item.pageItems.length > 0) {
// 最初のアイテムをグループの外(グループの直前)に移動
item.pageItems[0].move(item, ElementPlacement.PLACEBEFORE);
}
// 空になったグループを削除
item.remove();
} catch (e) {
// グループ解除に失敗した場合はそのまま残す
}
}
}
}
// 実行
try {
flattenHierarchy(targetItems);
app.redraw();
alert("処理が完了しました。\n解除できない特殊なオブジェクトはスキップしました。");
} catch (err) {
alert("予期せぬエラーが発生しました:\n" + err);
}
})();
ぜひ、やってみてね!!!
文句とか、ここを改良してとかは、受け付けませんのであしからず!!
投稿者プロフィール
-
愛知県北名古屋市に住むたきちゃんの日常。
印刷・動画・Web制作の株式会社龍巳堂で社長をやっております(^_^)
仕事や趣味の他各種団体での活動などを書いております。
最新の投稿
未分類2025年12月20日何重にも重なったクリッピングマスクを解除する
きっずタウン北なごや2025年12月5日オールクリアの会
撮影2025年12月3日天下分け目の関ヶ原で撮影
未分類2025年11月27日ナゴヤモビリティショー
