2017年01月31日

空のフレームをJavaScriptで削除する

DTP作業者にとっての難易度 ★★☆☆☆(2)

要素の多いレイアウトを作成する際(たとえばデータ結合によるレイアウト作成時など)、空のテキストフレームやグラフィックフレームをいくつも削除しなければならないケースがあります。今回は、この作業を効率的におこなうJavaScriptを3パターン考えてみました。

【1】空だったらすべて削除する


1つ目は「テキストフレーム、グラフィックフレームが空だったらすべて削除する」というシンプルなJavaScript群です。

※空のテキストフレームを削除するJavaScriptについては「組版時間を半減する! InDesign自動処理実例集」で紹介されているものをご使用ください。同書にはデータのダウンロード先も示されています。

これらのJavaScriptは、空だったら問答無用で削除する……というものです。また、グループ化されている場合は空でも削除されませんのでご注意ください。

【2】塗り色(スウォッチ)で探し、空だったら削除する


2つ目は、塗り色(スウォッチ)でフレームを探し、空だったら削除するJavaScriptです。
このJavaScriptでは複数のスウォッチを使って削除対象を切り替えることもできます。また、塗り色をオブジェクトスタイルに登録すれば「削除するか否か」を後で簡単に変更することもできます。ただし【1】と同様、グループ化されている場合は削除されませんのでご注意ください。

【3】name属性で探し、空だったら削除する


3つ目は、name属性でフレームを探し、空だったら削除するJavaScript群です。
このJavaScriptは、グループ化されていても削除が可能だという点が魅力です。一方、name属性はオブジェクトスタイルに登録できませんので作業手順をよく考える必要があります。

※name属性を設定したオブジェクトを複製した場合、name属性は引き継がれます。

※name属性の設定/削除はJavaScriptをご使用いただくのが簡単です。

※テキストフレームのnameとグラフィックフレームのnameは異なる名称にする必要があります(同じnameのまま削除を実行するとエラーになります)。


3つのJavaScript群は、それぞれ長所と短所(注意点)があります。作成されるレイアウトによって使い分けるといいでしょう。
なお、いつものことですがJavaScriptが期待通りの結果につながらないことも考えられます。必ずバックアップをとり、慎重にお試しください(何かあっても当方では責任を負いかねます)。
サンプルデータはこちら《minimum_2017_0130b.zip》です。
posted by 照山裕爾 at 00:13| Comment(0) | TrackBack(0) | InDesign-その他の機能 | このブログの読者になる | 更新情報をチェックする

2017年01月13日

JavaScriptでInDesign上に折れ線グラフを描く

DTP作業者にとっての難易度 ★☆☆☆☆(1)

※2017.1.12の1時8分頃、サンプルデータを更新しました(折れ線の線端形状と角の形状を丸めました)。

※2017.1.13の14時40分頃、サンプルデータを更新しました(楕円に罫線がつかないよう修正・楕円が折れ線の前面になるよう修正)。

※2017.2.6の22:50頃、サンプルデータを更新しました(凡例表示を追加)。

※2017.7.6にサンプルデータを更新しました(線・円にオブジェクトスタイルが適用されるように改良)。

※2017.7.7にサンプルデータを更新しました(ダイアログに前回の値が残るように改良)。


先に『JavaScriptでInDesign上に円グラフを描く』を書きましたが、その際に「折れ線グラフのほうが簡単なのでは?」と思ったので今回作ってみました。
0112.png

実際に作ってみると円グラフよりも要素が多く数値の範囲が確定できないこともあり、難しい点が多々ありましたが、何とか形にすることができました。
では、動画をご覧ください。

※y軸には「最大値」「最小値」「ゼロ」しか表示されません。間の値が必要な場合は、お手数ですが「最大値」などを複製して作ってください。


使えそうな場面がありましたらお試しください。

※円グラフの際は、修正したテキストデータの内容を反映するJavaScriptにもチャレンジしましたが、残念ながら今回はあきらめました。


サンプルデータ(2017.7.7版)はこちら《minimum_2017_0707a.zip
posted by 照山裕爾 at 00:45| Comment(0) | TrackBack(0) | InDesign-その他の機能 | このブログの読者になる | 更新情報をチェックする

2016年12月09日

JavaScriptで円グラフを修正する

DTP作業者にとっての難易度 ★☆☆☆☆(1)

※2016.12.12.04:30頃にサンプルデータを更新しました(レイヤー名の変更、レイヤーの統合などにも対応しました。ただし修正後、円グラフの扇形オブジェクト群は同レイヤー内の最背面にレイアウトされます)。

※2016.12.12.23:00頃と12.13.02:20頃にサンプルデータを更新しました(スウォッチ名が変更されていても動くようにしました)。

※2016.12.14.07:20頃にサンプルデータを更新しました(他のpageItemが存在しても動くようにしました)。


『JavaScriptでInDesign上に円グラフを描く』で、テキストファイルからデータを読み込んで円グラフを作成するJavaScriptをご覧いただきました。これに対して「既に作ったものを改めて修正までできるのでしょうか?」というコメントをいただいたので、今回は挑戦してみました。コメントをくださったUske_Sさん、ありがとうございます。

※今回の円グラフ修正用JavaScriptを使うためには、円グラフを作成する段階で前回のJavaScriptの最新版をお使いいただく必要があります。『JavaScriptでInDesign上に円グラフを描く』から入手してご使用ください。



1208.png


今回も使い方は簡単です。では、動画をご覧ください。

※最新のサンプルデータはレイヤー名の変更、レイヤー数の変更、スウォッチ名の変更にも対応しています。





注意点としては

●項目は修正前と同じ順になります。

レイヤー名「graph」「text」が変更されている場合、
 これらのレイヤーが削除されている場合は動きません。

JavaScriptで作成されたテキストフレームが「text」レイヤー以外に、
 円グラフのパーツが「graph」レイヤー以外に移動されていると動きません。

スウォッチ名(「gColor1」など)を変更していると動きません。


その他、状況によりうまく動かないケースがあるかもしれません。その際は何とぞご容赦ください。コメントをいただけましたら私で分かる範囲で修正いたします(自信はありませんが)。
2016.12.14.07:20頃更新版サンプルデータはこちら《minimum20161214c.zip》です。
posted by 照山裕爾 at 21:24| Comment(0) | TrackBack(0) | InDesign-その他の機能 | このブログの読者になる | 更新情報をチェックする