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-その他の機能 | このブログの読者になる | 更新情報をチェックする

2015年06月29日

[ ]で囲まれた部分を索引化する

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

仕事の中でInDesign内の[ ]で囲まれた部分を索引として抽出することがあります。この時、私はLCSのInDexというプラグインを使用しています。とても便利で助かっているのですが、同じようなことをJavaScriptではできないものかと思い、勉強のために試してみることにしました。
0628.jpg

結論から言えば[ ]で囲まれた部分だけを、読みは考えずどうにか抽出することはできたようです。完成度はお恥ずかしいレベルなのですが、皆様が何か他のものを作る時の叩き台にでもなればと思いアップしておくことにしました。ヘトヘトになりました。JavaScriptは難しいですね。

今回、参考にしたサイトは以下の通りです。

marubananaさん【match() と replace()】
http://blog.livedoor.jp/marubanana/archives/2617974.html

chalcedonyさん【[JavaScript]String.matchとRegExp.execと後方参照】
http://d.hatena.ne.jp/chalcedony_htn/20090315/1237121111

古籏一浩さん【InDesign CS6自動化作戦/索引を作成する】
http://www.openspc2.org/book/InDesignCS6/hard/014/index.html

普段私が愛用しているプラグイン「InDex」については下記のサイトをご覧ください。とても便利です。

株式会社エル・シー・エス/InDex Plug-in(有料)
http://www.loyal.co.jp/gaiyou/l_group/LCS/LCS.html

サンプルデータはこちら《2015_0628.zip》です(ドキュメントはCS6で作成)。
posted by 照山裕爾 at 03:41| Comment(0) | TrackBack(0) | InDesign-その他の機能 | このブログの読者になる | 更新情報をチェックする

2014年09月25日

章タイトルを柱と目次に反映する

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

InDesignにはタイトルや見出しから柱や目次などを生成する機能があります。ただ、通常の使い方だけでは思うような結果が得られないケースがあるのも事実です。私が先日手がけた印刷物でも、そのような場面がありました。自分自身が忘れないためにもここに記録しておこうと思います。

※当ブログ上では画像、動画が縮小表示されています。必要に応じて画像は別ウインドウで、動画はフルスクリーン表示するかYouTubeに移動してご覧ください。

※もっと良い方法があるかもしれない、機能を使い切っていないかもしれないと思っています。何かございましたらコメントをお願いします。



「目次」「テキスト変数」機能を使用する


まずは「目次」「テキスト変数」機能を使って柱と目次を生成する一般的な例をご覧ください(sample_A)。

図で示すと以下のようになります。
0925-11.png


条件が変わった場合の対応方法例


実際の冊子では上の例とは条件が違ったため、多少の工夫が必要となりました。

章タイトルが複数行になる場合に名前の位置を調整する


章タイトルが複数行になるケースがあるため「正規表現スタイル」により名前の位置を調整するよう設定しました(sample_B,sample_C)。


名前を除いた部分のみを柱に反映させる


「先頭文字スタイル」によってEMスペースより前の文字のみに文字スタイルを適用し、その部分のみを柱に反映させるよう設定しました(sample_B,sample_C)。


Excelを使って目次のノンブル表記を修正する


目次には章タイトルのテキストフレームが存在するページのノンブルが示されます。Excelを使うことで、このノンブルの値を「1」マイナスする方法を考えました(sample_B)。


「相互参照」で章タイトルと同じ文字列を発生させる


章タイトルと同じ文字列を直前のページに発生させるために「相互参照」機能を使用。この文字列から目次を生成することでノンブル表記の問題を解決しました(sample_C)。

sample_Cを図で示すと以下のようになります。
0925-12.png

テキストフレームの「自動サイズ調整」を使う(CS6)


InDesign CS6からの機能「自動サイズ調整」を使うことで、章タイトルの文字数、行数の増減にも対応しやすくなります(sample_D)。

これを図で示すと以下のようになります。
0925-13.png


ご覧いただいた方法は「こんなことも可能だという例」であり「必ず設定しなければならないもの」ではありません。個別に手作業で対応したほうが効率的だというケースもあるでしょう(初校以降の修正が少ないことが予想される印刷物など)。たいせつなのは、編集者とDTP作業者で相談しながら柔軟に対応することだと思います。

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