2016年12月07日

JavaScriptでInDesign上に円グラフを描く

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

※2016.12.7の14:30頃、サンプルデータを更新しました(スウォッチ名が「gColor1」などとなるよう修正)。

※2016.12.7の16:40頃、サンプルデータを更新しました(段落スタイルを作成・適用するように修正)。

※2016.12.8の15:30頃、サンプルデータを更新しました(レイヤーを分ける、nameプロパティを設定、線色なし、など)。

※2016.12.8の20:40頃、サンプルデータを更新しました(スウォッチ名など)。

※2017.8.5にサンプルデータを更新しました(合計が100なのに端数が発生する問題を解決するため小数点以下4位を四捨五入)。


今まで私は円グラフをIllustratorで作成してきました。しかし「InDesignで作図すれば正確に寸法をコントロールできるのではないか」と考え、今回ためしてみることにしました。実務に耐えうるものかどうか自信はありませんが、機会があればお試しいただければ幸いです。

2016-1206.png

使い方は簡単です。用意するのは「項目名」と「数値(パーセンテージ)」を入力したテキストファイルだけです(項目名と数値の間はタブで区切ります)。
JavaScriptを実行した上でテキストファイルを選択し、円グラフの直径を数値指定すると新規ドキュメントが作成され、そこに円グラフが描かれます。詳細は動画をご覧ください。


動画内で触れていますが、複数のパーツに分けて作業をしていたので変数がごちゃごちゃになっています。整理することも考えたのですが、かえって混乱するのではないかと思い、今回はそのままにしています。ご容赦ください。
2017.8.5更新版・サンプルデータはこちら《minimum_2017_0805c.zip》です。

※今回の方法で作成した円グラフを修正するJavaScriptについては『JavaScriptで円グラフを修正する』を参照ください。

posted by 照山裕爾 at 05:30| Comment(4) | TrackBack(0) | InDesign-その他の機能 | このブログの読者になる | 更新情報をチェックする

2016年11月14日

文字スタイル部分・下線部分などを索引化する

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

以前『[ ]で囲まれた部分を索引化する』でブラケット(角括弧)で囲まれた部分を索引化するJavaScriptなどを紹介しました。今回は、文字スタイルを摘要した箇所などを索引化する方法をテストしましたので、ここでご紹介します。

※2016.11.16の20時40分頃に再度サンプルデータを差し替えました(2017.11.17に更新)。

※2016.11.18、2016.11.23、2017.3.23、2017.4.14にサンプルデータを差し替えました。


1114c.png

今回のJavaScriptでは「findGrep()」という機能(メソッドというのでしょうか)を使用しています。これはInDesignの「正規表現検索」機能のことです。ですから少しJavaScriptを書き換えるだけで文字スタイルが適用された箇所だけでなく、ブラケットで挟まれた箇所も、下線や打ち消し線が設定された箇所も検索することができます。まずは動画をご覧ください。

※使い慣れない内臓マイクを使用したため一部の音がこもってしまいました。すみません。

※この作業では索引マーカーを使用しないので、索引マーカー挿入による体裁の崩れ(INDDでもお話ししたFEFFが体裁を崩すこととも関連があると思います)も回避することができます。



リスト書き出し後、ExcelやJeditで作業をしなければならないのが少し面倒ですが、リスト書き出しそのものは思っていたより短時間で済むようです。

※2016.11.16/動画内で触れている「^G」についてはJavaScript内で削除するよう書き替えました。これに伴い、Jedit Xの複数置換テーブルも差し替えました(「^G」を削除する行が不要になったため)。

※2016.11.16の20時40分頃に再度サンプルデータを差し替えました(圏点、条件テキストにも対応しました)。

※2016.11.17にサンプルデータを更新しました(半角スペースが削除される問題を解消)。

※2016.11.18にサンプルデータを更新しました(特殊文字が含まれる場合にテキストが適切に保存されない問題に対応)。

※2016.11.23にサンプルデータを更新しました。

※2017.3.23にサンプルデータを更新しました。

※2017.4.14にサンプルデータを更新しました。


以前も書いたように、私は普段、こういった作業のために株式会社エル・シー・エスの「InDex Plug-in」(有料)を使用しています(こちらは読み仮名もつけてくれます)。しばらくはこのプラグインと今回のJavaScriptを併用しながら、実務に使えるものかどうか試していこうと思っています。

毎度のことですが、たどたどしいJavaScriptなので、お試しになる際はよくテストをされるようお願いします。何かの叩き台にでもなると嬉しいです。
2017.4.14サンプルデータはこちら《2017_0414b_minimum.zip》です。
posted by 照山裕爾 at 23:01| Comment(0) | TrackBack(0) | InDesign-その他の機能 | このブログの読者になる | 更新情報をチェックする

2016年04月07日

データ結合後のレイアウトからテキストを抽出する

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

InDesignのデータ結合は、定型フォーマットが並ぶレイアウトを作成する際にとても便利な機能です(データ結合については「定形フォーマットが並ぶレイアウトを作成する(データ結合)」を参照ください)。しかし、残念ながらInDesignにはデータ結合後のレイアウトからデータベースを再生成(書き出し)する機能は存在しません。このため、レイアウトを組んだ後に編集者の方から修正指示が入った場合、元のデータベースの内容とレイアウト上の内容が一致しなくなってしまいます。

私はこれまで、この問題を解決するためには「修正がある場合は元のデータベースを修正し、あらためてデータ結合し直す」か「修正がある場合は元のデータベースとInDesignデータに同じ修正を加える」という2つの方法しかないと思ってきました。しかし前者は、初回のデータ結合後にInDesign上でおこなった文字間調整や画像位置の調整などがすべて破棄されてしまう(データ結合のたびに同じ調整をする必要がある)点が問題です。後者では、元のデータベースとInDesignデータに対しておこなった修正作業が間違いなく同じだという確証が得られません(一方だけ修正される可能性などがあります)。

今回はInDesignの文字スタイル機能、オブジェクトスタイル機能とHTML書き出し機能を使ってデータ結合後のレイアウトからテキストを抽出する方法を考えてみました。
0406.png

以下、動画をご覧ください。

後で取り出せるよう、InDesign上では各テキストに文字スタイルを適用しておきます。「s01_code」などのように文字スタイル名を英数字にしておけば、そのままHTMLのタグに反映されます。なお、グラフィックフレームにはオブジェクトスタイルを適用しておきます。

書き出したHTMLファイルはJeditの複数一括置換で処理してデータベースの体裁に整えています。途中でExcelを使用して縦横を入れ替えています。

※VBAなどを使える方であれば一連の作業をもっと合理的に処理できるようにも思います。今回は私にできる範囲でやってみました。


実際に業務で使用するには、いろいろな検証が必要だと思います。まずは「こんなやり方もある」ということで、何か新しい手法を考える際のヒントにしていただければ幸いです。
サンプルデータはこちら《2016_0406_minimum.zip》です。

【2016.4.7追記】

アンカーされたグラフィックフレーム内の画像や、さまざまなファイル形式の画像に対応するための作業を追加しました。

なお、動画内で触れているAJABONさんのJavaScript(ドキュメント内のアンカーつきオブジェクトを内容の単一リンクファイル名に置換するもの)については【このサイト】の「ドキュメント内のアンカーつきオブジェクトを内容の単一リンクファイル名に置換する」をご覧ください。
サンプルデータ(0407更新版)はこちら《2016_0407_minimum.zip》です。
posted by 照山裕爾 at 00:20| Comment(0) | TrackBack(0) | InDesign-その他の機能 | このブログの読者になる | 更新情報をチェックする