このサイトはアフィリエイト広告を利用してます

一瞬で完成!表題欄を自動作成してくれるIllustratorスクリプト

【2023/12/11更新】
訪問して頂きありがとうございます。

  • 表題欄を作るのに手間がかかる
  • 図面が変更になるたびに表題欄の日付を修正しないといけない
  • 表題欄のデザインを統一したい

図面を管理する上で、表題欄が必要になるシーンは多いです。
表題欄は、図面やデザインの管理に必要な事項(タイトル、日付、クライアント名、作成者など)を記入する見出しのようなもで、図面などに変更が加えられる際、表題欄には変更の内容や日付、変更を行った担当者の情報が記載されます。

しかし、図面の表題欄を毎回手動で作成すると、時間がかかり一貫性を保つことが難しく、フォーマットやデザインのばらつきが生じる可能性があります。

そこで本記事では、シンプルな表題欄を自動で作成してくれるIllustratorスクリプトをつくりましたのでご紹介します。
このスクリプトを利用すれば、表題欄を作成する手間がなくなりデザインも統一されるので、ぜひ最後までご覧ください。

Profile
この記事を書いている僕は、Illustratorの操作経験は15年以上ありスクリプトも自作してデザイン作業の効率化を図っています。
最近は、当ブログでも自作スクリプトを公開中


本記事の内容

1.「表題欄の自動作成」スクリプトの概要
2.「表題欄の自動作成」スクリプトコードの公開
3.注意事項と免責事項
4.「表題欄の自動作成」スクリプトのまとめ

1.「表題欄の自動作成」スクリプトの概要

スクリプトの概要
今回紹介するスクリプト【titleBlock.jsx】は、僕がJavaScript自作したIllustrator用のスクリプトです。
まず、この章でスクリプトのポイントや使い方について解説します。

「titleBlock.jsx」のポイント

本スクリプトのポイントは4つあります。

・表題欄(タイトル欄と日付欄)を自動でアートボードの右下に作成してくれる
・日付を自動取得し日付欄に記載してくれる
・表題欄レイヤーを作成し最下層にもってくる
・2回目以降は日付だけ更新してくれる

スクリプトの入手方法

本スクリプトは、以下からサンプルとしてダウンロードすることができます。

DL:titleBlock.jsx

ダウンロードと使用については「注意事項と免責事項」に記載していますので、お読みください

スクリプトの使い方

本スクリプトは、下記の手順で使うことができます。

STEP1.スクリプトメニューから「titleBlock.jsx」選択
STEP2.スクリプトの起動
STEP3.表題欄が右下に追加される

スクリプトのプレビュー動画

なお、次の記事ではそもそもIllustratorスクリプトってどう使うのか、活用事例を交えて紹介しているので良ければ参考にしてください。



2.「表題欄の自動作成」スクリプトコードを公開

スクリプトコード
この章では、スクリプトコードを公開します。

なお下記の記事では、Illustratorスクリプトを自作する方法についてスクリプトコードの事例を交え解説しているのでよければ参考にしてください。

var docObj = activeDocument;
var lays = docObj.layers;


app.coordinateSystem = CoordinateSystem.ARTBOARDCOORDINATESYSTEM;


var fName = app.textFonts["KozGoPro-Regular"];


function setCMYKColor(c,m,y,k) {
    var CMYK = new CMYKColor();
    CMYK.cyan = c;
    CMYK.magenta = m;
    CMYK.yellow = y;
    CMYK.black = k;
    return CMYK
}


var dayZero = function (zero) {
    if (zero <10) {
      zero = "0" + zero;
    }
    return zero;
}


var now = new Date();

var year = now.getFullYear();

var month = now.getMonth()+1;
  month = dayZero(month);

var date = now.getDate();
  date = dayZero(date);

var day = year +"/"+ month +"/"+ date;


try {

  var newLay = lays.getByName('表題欄');

  try {

    var slays = lays['表題欄'];

    slays.locked = false;
  } catch (e) {}

  docObj.selection = null;

  var txtCount = docObj.layers['表題欄'].textFrames;

   for (var i = 0; i < txtCount.length; i++) {
     try {
       txtCount[i].selected = true;
     } catch (e) {}
   }

   var selObj = docObj.selection;

   for (var i = 0; i < selObj.length; i++) {
     var text = selObj[i].contents;
     selObj[i].contents = text.replace(/2........./g,day);
   }
   slays.locked = true;

} catch (e) {

  var layObj = lays.add();

  layObj.name = '表題欄';

  for (var i = 0; i < docObj.artboards.length; i++) {
    var rect = docObj.artboards[i].artboardRect;
    var left = rect[0];
    var top = rect[1];
    var right = rect[2];
    var bottom = rect[3];

    var rectObj = docObj.pathItems.rectangle(bottom+28.398,right-211.334,197.162,14.226);

    rectObj.filled = false;

    rectObj.stroked = true;

    rectObj.storokeWidth = 1;

    rectObj.strokeColor = setCMYKColor(0,0,0,50);

    var lineObj = docObj.pathItems.add();

    lineObj.setEntirePath([[right-94.049,bottom+28.4],[right-94.049,bottom+14.2]]);

    lineObj.filled = false;

    lineObj.stroked = true;

    lineObj.storokeWidth = 1;

    lineObj.strokeColor = setCMYKColor(0,0,0,50);

    var titleObj = docObj.textFrames.add();

    titleObj.contents = 'Title';

    titleObj.paragraphs[0].fillColor = setCMYKColor(0,0,0,50);

    titleObj.paragraphs[0].characterAttributes.textFont = fName;

    titleObj.paragraphs[0].size = 5;

    titleObj.left = right-208.956;

    titleObj.top = bottom+26.014;

    titleObj.createOutline();

    var dateObj = docObj.textFrames.add();

    dateObj.contents = 'Date';

    dateObj.paragraphs[0].fillColor = setCMYKColor(0,0,0,50);

    dateObj.paragraphs[0].characterAttributes.textFont = fName;

    dateObj.paragraphs[0].size = 5;

    dateObj.left = right-91.678;

    dateObj.top = bottom+26.014;

    dateObj.createOutline();

    var textObj = docObj.textFrames.add();

    textObj.contents = day;

    textObj.paragraphs[0].size = 10;

    textObj.paragraphs[0].fillColor = setCMYKColor(0,0,0,50);

    textObj.paragraphs[0].characterAttributes.textFont = fName;

    textObj.top = bottom+26.014;

    textObj.left = right-77.367;
  }

  var sLayer = lays['表題欄'];

  var bottomLayer = docObj.layers[docObj.layers.length-1];

  bottomLayer.locked = false;

  sLayer.move(bottomLayer,ElementPlacement.PLACEAFTER);

  sLayer.locked = true;

}



3.注意事項と免責事項

注意している女性
本記事に記載してあるスクリプトを実行した結果生じるトラブルに関しては一切の責任を負いません。またIllustratorのアップデートにより動作が変わってしまう可能性もあります。アップデートによる動作の不具合に関しては、対処しかねるので予めご理解ください。
最後に本記事で配布しているスクリプトを無断で転送・販売・配布することは禁止いたします。



4.「表題欄の自動作成」スクリプトのまとめ

SUMMARY
今回は、【表題欄の自動作成】スクリプトについて紹介してきました。

このスクリプト(titleBlock.jsx)は、図面やデザインの管理に必要な表題欄をアートボードの右下に自動で作成してくれるので、作業の効率化アップに繋げることができます。
ぜひ、スクリプト(titleBlock.jsx)を日常の業務で利用してみてください。

なお、Illustratorスクリプトについて学習してみたいと思った方は、次の記事でおすすめの書籍とWEBサイトについて紹介しているので良ければ参考にしてください。

というわけで今回は以上です。

『一瞬で完成!表題欄を自動作成してくれるIllustratorスクリプト』を最後までお読みいただきありがとうございました。

ブログランキング・にほんブログ村へにほんブログ村 人気ブログランキング


ガネメ現役サラリーマン

投稿者の過去記事

◇このブログでは、15年以上DTPデザイナーとして、学んできたデザインやパソコンのセキュリティ知識・参考になった書籍などを紹介しています。
たまに、脇道にそれることもあります。

◇このブログはアフィリエイト広告を利用しています

◇取得資格
・情報セキュリティマネジメント
・ITパスポート
・色彩検定 2級
・色彩検定 UC級
・屋外広告士
・第2種電気工事士
その他・・・・

プロフィール

face

ガネメ
鹿児島県在住
現役サラリーマン

◇このブログでは、15年以上DTPデザイナーとして、学んできたデザインやセキュリティ知識、参考になった書籍などを紹介しています。
たまに、脇道にそれることもあります

◇取得資格
・情報セキュリティマネジメント
・ITパスポート
・色彩検定 2級
・色彩検定 UC級
・屋外広告士
・第2種電気工事士
その他・・・・

詳しいプロフィールはこちら

アーカイブ

カテゴリー

使用中のレンタルサーバー

ピックアップ記事

  1. Illustratorスクリプトでアウトラインチェック
    訪問していただきありがとうございます。 アウトライン漏れがないかチェックしたい …
  2. 訪問していただきありがとうございます。 入稿データが指定バージョンで保存されているか確認…
  3. CSVから新規ドキュメント作成
    訪問していただき、ありがとうございます。 CSVのデータから大量のドキュメントを効率的に…




PAGE TOP