Vertical Address Scripting Tips 1 of 5 —宛名の縦書き Tipsパート1—

This is #1 of 5 series Tips about the vertically address scripting (wiki : Horizontal and vertical writing in East Asian scripts).
To use this tips, it is necessary that you have a Japanese version of Adobe InDesign because it use one of the build-in feature of that only available in Japanese version of Adobe InDesign.

As basic knowledge and tips of the vertical address scripting, please refer to my old post regarding the vertical address scripting.

[JP]
これは宛名の縦組みに関するTipsシリーズのパート1です。本Tipsの使用は日本語版のAdobe InDesign使用を前提としています。

また、宛名の縦組みに関する基本方法は過去の投稿「宛名の縦書き」を参照して下さい。

How to insert line feed depends on the number of character

同一フレームに対して割り当てるテキストを、改行を含んだものと含んでいないもので使い分ける。

This tips if for user who have below request.
このTipsは以下の様な要望をお持ちのユーザー向けです。

  1. DirectSmile automatically puts all value of record that you assigned to variable frame. Then layout of the text is not looking good. Especially, something which should be formatted as much as beautiful, like a recipient address.
    ダイレクトスマイルはテキストフレームに対して、割り当てた値をDBから自動的に流し込みます。
    この様な場合、縦組みのテキストフレームだと、特に見栄えやレイアウトが悪くなってしまう事があります。このレイアウト、組版を調整する事が可能です。
  2. Using “Adobe InDesign Output option”, you cannot use “Shrink” or “Shrink/Grow” option. So it’s not possible to display all text in one line.
    アドビ・インデザイン出力オプションを使用すると、「縮小」または「縮小・拡大」といったテキストフレームに対するオプション設定が使用出来ません。
    この様な場合でも確実に一行でテキストを表示させるというレイアウトが実現出来ます。

What you can achieve with this tip?
このTipsで何が出来るのか?

This tips make you able to display variable text in one line or multiple line depends on the number of assigned text.
このTipsでは、バリアブルテキストの文字数をカウントし、特定の数値より上の場合は、事前に用意した別のバリアブル・テキスト(改行設定つき)を使い、特定の数値以下の場合は改行設定のないバリアブル・テキストを割り当てる方法をご紹介します。
これによって、一行で全体を表示出来るものは、一行で表示させ、改行を要するテキスト長の場合は、任意の場所で改行させる事を可能にます。

Preview :
プレビュー

As you can see above preview, left frame(simple assignment) just puts all text, and when it reach of bottom of frame, it automatically go to next line, and puts rest of text. On the other hand, right side frame automatically insert the line feed after it put first part of recipient address.
上記のプレビューでご覧頂ける通り、左側のフレームは改行設定をせず、単にテキストを縦組みのフレームへ流し込んでいます。一方、右側のフレームは改行を含む設定をしており、改行を要するほどテキストが長い場合に、自動的に任意の位置で改行コードを挿入し、より見栄えの良い表示結果となっています。

Setup
設定方法

  1. At first, it expect that at least you have 2 columns that contain customer address.
    始めに:
    このTipsでは以下の様なデータベースの使用を想定しています。最低でも顧客住所は複数の項目にて構成されている様なDBが本Tipsの使用には必要不可欠です。
  2. Create variables at outside of page layout. Those variables will be used for script.
    後ほど設定するスクリプトから、参照使用する為にInDesignのデザインレイアウト範囲外にバリアブルテキストを作成します([[VerticalScript]], [[Case1]], [[Case2]])
  3. Create text frame for vertically scripting.
    縦書の宛名用に縦組みのテキストフレームを作成します
  4. Register all frames in DSM-Bridge as variable element.
    (Since this database has multiple column that each column has small part of recipient address. So I made another variable that can integrated 4 column that all records has value in it)
    Then, set the assignment for “Case1”
    全てのテキストフレームをDSMブリッジへ登録します。
    (本Tipsでは上述の通り、複数のDB項目にわたって住所情報を保存しています。ですので、始めにある程度住所情報を結合して表示するための代替用バリアブル項目([[Address]])を作成しました。またこのバリアブルへの割り当て設置段階で、ハイフン「-」を全角マイナス「ー」に置き換える設定を行います)
    その上で、残りの住所と結合させたテキストをバリアブルテキスト[[Case1]]へ割り当てます。
  5. We use VBScript to insert code for “Line feed”.
    Code of line feed in VBScript is “vbCrLf
    改行コードの挿入に際しては、VBスクリプトを使用します。
    VBスクリプトでの改行コードは「vbCrLf」です。
  6. Edit VBScript :
    Let’s edit vbscript. I made script that named as “Vertical Script”. Here is the entire of script code.
    VBスクリプトの編集:
    それではVBスクリプトを編集していきます。今回はバリアブル[[VerticalScript]]に対して、以下の様なVBスクリプトを設定しました。

    function VerticalScript()
    	Dim Count
    	Dim Work
    	Dim s
    	Dim t
    		s = Var.GetS("Case1")
    		t = Var.GetS("Case2")
    		Count = Var.GetS("Case1")
    		Work = Len(Count)
    		If Work > 24 Then
    			Var.PutS "nogtips_Address", t
    		Else
    			Var.PutS "nogtips_Address", s
    		End If
    		VerticalScript = Work
    End function
    

    This script automatically count how many character does Case1 has. And if it higher than 24, then it use Case2, otherwise it use Case1.
    このVBスクリプトではバリアブル[[Case1]]に対して割り当てられるテキストの文字数をカウントし、文字数が24字を超える場合は、バリアブル[[Case2]]を使用し、それ以外の場合は[[Case1]]を使用するといった設定になっています。

  7. Edit variable property
    The last thing and most important is to specify the order of variable process. If you didn’t set it, or set wrong order, you will get unexpected result or simply it won’t work. Please set correct order depends on your variable assignment and script that you set.
    バリアブルのプロパティ設定を行う:
    最後にして、一番重要なTipsはバリアブルに対する「値を受け取る順序設定」です。この設定が正しくない、正しい順序で設定されていない場合は、予期せぬ表示結果を得る可能性があります。ですので、確実に順序立てて値を受け取れるように各バリアブルに対してプロパティを設定していきます。Here is the exactly order in this sample.

    本Tipsにおける各バリアブルの値を受け取る順序設定は以下の通りです。

    “Address” = 1
    “Case1” = 2
    “Case2” = 2
    “Vertical Script” = 3
    “nogtips_Address” =4

Result
出力結果

広告

Vertical Address Scripting —宛名の縦書き—

Happy Halloween!Happy Halloween!

今年も10月となって、残す所あとわずかなんて台詞が聞こえてきますね。
そこで、年賀状シーズンへ向けたTipsを1つご紹介します。

MicrosoftのWordをはじめ、宛名印刷用のソフトウェアは非常に沢山あります。DirectSmileもバリアブル印刷用のソフトウェアですので、当然宛名印字も得意機能の1つです。

基本的には住所などの宛名表記をする際は、住所番号には漢数字を使用することが推奨・礼儀であるとされています。ですので、データベース上で漢数字への変更をされた場合には、縦組みテキストフレームへのバリアブル設定方法のみお読みください。
英数字を含む住所を縦組みにて表記されたいという場合は、このTipsに沿って設定を行なって下さい。

縦組みテキストフレームへのバリアブル設定

縦組みのテキストフレームは、Adobe InDesign(日本語版)の機能を使用します。
(アドビヘルプページからテキストフレームの組み方向変更方法紹介ページを参照)

はじめに、新規DSM ジョブを作成し、Adobe InDesign にて新規のドキュメントを作成して保存します。続けて任意のデータベースファイルを読み込ませます。

作業画面スクリーンショット

図1.DSM ジョブ、InDesign ドキュメントを作成し、データベースをインポートした状態

次にInDesign ドキュメントにテキストフレームを作成します。
この時、作成するテキストフレームを従来使用していた「横組み」のテキストフレームから、「縦組み」に変更します。

「縦組み」へ変更するには、InDesign のメニューバーからテキストフレーム設定のアイコンを2 秒ほどクリックし続けるとサブメニューが表示されます。表示されたメニューの中から「縦組み文字ツール」をクリックすると、テキストフレームが「縦組み」へと変更されます。

縦組み文字ツール
図2.「縦組み」への変更

縦組み文字ツール選択状態
図3.変更後のテキストフレームのアイコン

「縦組み」へ変更されたらInDesign ドキュメントにテキストフレームを作成します。

バリアブルテキストフレームの作成図4.縦組みのテキストフレームを作成

作成したテキストフレームにバリアブルタグを記入し、このテキストフレームをブリッジにバリアブル項目として登録します。
注意 : 登録の際に、「フレームのプロパティ」ウィンドウ下部のオプション「Adobe InDesign 出力」と「平体効果をかけられたフレームのプロパティを保存する」に必ずチェックを入れて登録します。この設定をしないと、出力したPDF で縦組みでのテキスト表示が出来ません。

Adobe InDesign出力オプション図5.バリアブルテキストフレームとして登録する

それではInDesign プレビューを確認してみましょう。

InDesignプレビュー図6.InDesign プレビュー

ご覧の様に、バリアブルテキストが縦組みで表示されています。
ただ半角の英数字は90 度右方向に回転して表示されています。これはInDesignの仕様が原因で、初期設定のままでは半角英数字が「縦組み」テキストフレーム内で縦ではなく、横に表示されてしまいます。

次にこの現象を回避するための方法をご紹介します。

「縦組み」フレーム内の半角英数字を縦に表示させる

Adobe InDesign の仕様では、縦組みフレーム内に記述された半角英数字は横に寝た状態で表示されます。これを回避するには、InDesign の機能から「縦中横」という機能を使用します。

ただし、この機能は設定したテキスト箇所全てが横になって表示されてしまうので、バリアブルテキストとして流し込まれるテキストの半角英数字のみに作用させることが出来ません。ですので、「縦中横」機能ではなく、「自動縦中横設定」を使用します。

自動縦中横設定は、「段落」メニューを表示させ、メニュー右上のオプション表示アイコンをクリックすると表示されるサブメニューから選択できます。

段落図7.段落メニューを表示させる(上部メニュー「書式」⇒「段落」)

自動縦中横設定図8.段落メニューから「自動縦中横設定」を選択

自動縦中横設定のウィンドウが表示されたら、「組数字」の桁数を設定します。
これは、連続する文字列として扱う桁数の設定です。
(例:「東京都世田谷区北沢1 – 23 – 456 – 7890」という住所が入力された場合に「3桁まで」と指定していたとすると、「1」と「23」と「456」は連続する文字列として認識されるので、それぞれ縦方向に表示されます。ですが「7890」は4 桁あるので、この制限をオーバーしていると認識され、横報告に「7890」と表示されます。)

組数字3桁まで
図9.自動縦中横設定ウィンドウ

それではプレビューを確認してみましょう。

自動縦中横設定を行ったあとのInDesign プレビュー図10.自動縦中横設定を行ったあとのInDesign プレビュー

設定が反映されましたが、表示結果は変わっていません。

これは、先ほどの自動縦中横設定にて、3 桁という制限を設けたことが主な原因です。というのは、この文字列に含まれる「-」(ハイフン)も含めてカウントされているので3桁をオーバーしていると認識されているためです。

これを回避するには、2 つ方法があります。1 つはデータベースファイルを変更する方法と、もう1 つはDSM のバリアブル割り当て設定で、ハイフンを別の文字列に置き換える方法です。

次に2 つ目のDSM のバリアブル割り当て設定を変更する方法をご紹介します。

まずは、現在の割り当てを編集するためにフィールドの割り当てを表示します。

バリアブル割り当て設定
図11.バリアブル割り当て設定を変更する

フィールドウィンドウ図12.フィールドウィンドウ

ここでは、データベースのレコード内の「-」の前後にスペースキーを入力し、半角英数をそれぞれ独立した文字列として認識させるように変更します。
タブメニューから「公式」を選択し編集を行います。また、このとき、フォーマットは「テキスト」に指定します。

ウィンドウ下の「機能」フォルダ以下のツリー表示メニューから「テキスト内の文字を置き換える」を選択します。

Replace 機能図13.Replace 機能を選択する

Replace(<Field>, “Find”, “ReplaceWith”)という公式が表示されます。
これは<Field>にデータベースの項目名を入れると、そこから“Find”で指定した文字を検索し、”ReplaceWith”に入力した文字列に置き換えるという機能です。

それでは以下のように設定します。

<Field>にはデータベースから住所が入った項目<address>を選択。
“Find”にはハイフン「-」を入力
“ReplaceWith”にはスペース、ハイフン、スペース「 – 」と入力

Replace関数

関数プレビュー図14.入力した結果

設定がおわったら、OK ボタンをクリックして割り当てを終了します。

それでは再度プレビューを確認します。

InDesign プレビュー2図16.InDesign プレビュー

ここでもまだ、未完成です。住所のラストにある「6C」という文字列だけが横に表示されています。これは「C」という文字が半角の英字であるため、「6C」という文字列だけが区別されて認識されているためです。

そこで、再度「自動縦中横設定」ウィンドウを開き、設定を変更します。

原因は以下の設定の中で「欧文も含める」にチェックが入っていなかった為です。
ですので、「欧文も含める」にチェックを入れます。

自動縦中横設定1
図17.自動縦中横設定の「欧文も含める」にチェックが入っていない

自動縦中横設定「欧文も含める」
図18.「欧文も含める」にチェックを入れる

それではInDesign プレビューを再確認します。

InDesign プレビュー3図19.InDesign プレビュー

今度は「6C」も問題なく表示できています。

ただしここでも更なる問題点が発生しました。ハイフンも横から縦に変更されています。
これはハイフンも欧文の文字のひとつなので、先ほどの設定の影響が現れているためです。

この問題は回避できないので、ハイフンを全角のものと置き換えます。
割り当てフィールドを再度開き、”ReplaceWith”で指定した文字列「 – 」を「―」(全ダッシュ)に変更します。

全角のダッシュ
図20.半角のハイフンを全角のダッシュに変更

これで最後にInDesign プレビューを確認します。

InDesign プレビュー4図21.InDesign プレビュー

すべての設定が終了し、縦書きの宛名表示ができました。最後にPDF 出力をしたあとの他のレコードの結果を確認します。

PDF 出力結果

以上のように3 桁までの文字列はひとかたまりで表示されます。
この方法を使用すれば宛名面での縦組みテキストフレームの使用が可能となります。

本来なら3年以上前に思いついた事なので、もっと早く皆様にお届け出来ればよかったのですが、色々あって今年まで引っ張ってしまいました。日本のお客様、長らくお待たせしました:-)

皆さんのお役に立てば幸いです。

ダイレクトスマイル

ダイレクトスマイル

はじめまして。DirectSmileのテクニカルサポート担当、NOGことNobuakiです。

今日からDirectSmile製品のテクニカルサポートのTipsや豆知識をここに記事として取り上げていきたいと思います。
ドイツに移住してはや一年半、今まで得てきた知識などをDirectSmileユーザー、これから購入予定の人に提供していきたいと思います。

Support

それとテクニカルナレッジとしての備忘録的なものになればなぁと。

NOG