RSS

タグ別アーカイブ: 日本語

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

inkpot 5

This is the last(#5 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シリーズの最終投稿(パート5)です。本Tipsの使用は日本語版のAdobe InDesign使用を前提としています。

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

1. Apply different text formatting only on the multiple digit number in the recipient address.
2. Force to display recipient address in one line when it doesn’t have any value which should use 2nd line.
3. Furthermore, to display second line of recipient’s address if it has over certain number of characters.

1. 住所に含まれる連続する2桁以上の数列に対して、その桁数毎に異なる文字調整を行う。
2.住所表示にが二行要する場合に、指定した文字数を超える場合にテキストサイズを変更させる。
3.但し、二行目を必要としない住所の場合は必ず一行で表示させる

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

  • The way of Tip 3 just switch text frame to which has different text formatting when it hit a condition. So it affect not only number in address, but also normal text of recipient’s address as well. If you would like to have that text formatting only for number in recipient’s address, then please refer this tip.
    (This tip is what was integrated all tips I have posted in this series)
  • Tip 3で紹介した方法では、2桁以上の連続する数値列を認識した場合に異なる組版設定をしたテキストフレームに住所を表示する方法であったので、文字ツメをする必要がないテキストに対しても効果がかかり、見栄えが崩れてしまう。文字ツメの効果を連続する数値列のに反映させたい。また、住所表示に二行要する場合に、二行目が特定の文字数を超える時にテキストサイズを小さくしたい。(つまり、今まで紹介したTipsの統合版です)

What you can achieve with this tip?

このTipsで何が出来るのか?

This tips make you able to display recipient address by following condition.

  • Apply the kerning only for multiple digit number in the recipient’s address.
  • Display recipient’s address in one line by changing text size, especially if record doesn’t have any value which should be displayed in second line.
  • Display recipient’s address in two line if record has value for second line.
  • Change the text size of second line when text string has more than certain number of characters.

本Tipsを使用すると、以下の効果を反映できます。

  • 住所に含まれる複数桁の数列のみに対して、桁数に応じて異なる文字ツメの効果をかける。
  • 住所が二行目の表示を要する値を持たない場合は、テキストサイズを変更して、必ず一行で表示する。
  • 住所が二行目の表示を要する値を持つ場合には、住所を二行で表示させる。
  • 住所が二行目の表示を要する値を持ち、さらに特定の文字数を超える場合にテキストサイズを変更して表示する。

Preview :
プレビュー:

Vertical Scripting Tip5 - Preview

Setup
設定方法

Please refer to former post of this series regarding basic setting.

縦組みのテキストフレームに関する基本的設定方法は過去の投稿を参照してください。

    1. Create variables at outside of page layout. Those variables will be used for script.
      ページのレイアウト範囲外にスクリプトで使用するためのバリアブルを作成します。
      Vertical Scripting Tip 5 - Alternative Variables
    2. Create text frame for vertically scripting.
      宛名用に縦組みのテキストフレームを作成します。
      VerticalScripting5-VariableTextFrame
    3. Register all frames in DSM-Bridge as variable element.
      全てのバリアブル項目をDSM-Bridgeに登録する。
    4. Setup for each variables :
      All variable should have assignment like below.
      バリアブル項目への割り当て:
      以下の様に割り当てを行います。
      VerticalScripting5-Address_part1_Assignment

      VerticalScripting5-Address_part1_Assignment_Preview
      VerticalScripting5-Address_part2_Assignment
    5. Edit VBScript
      Let’s edit vbscript. I made script that named as “TextSizeChangeScript”. Here is the entire  of script code.
      VBスクリプトの編集:
      それではVBスクリプトを編集します。今回は以下のようにしました。
      VerticalScripting5-Script_Preview

      function TextSizeChangeScript()
           MaxSize = 18
           MinLen = 16
           MinLen2 = 10
           s = Var.GetS("Address_part1")
           Count = CountLength(s)
           Factor = MinLen / Count
           NewSize = MaxSize * factor
      
           If NewSize > MaxSize Then NewSize = MaxSize
           FirstLine= Var.SIZE(CDbl(NewSize)) & MojiTsume(s) & Var.tag("cs", "")
      
           t = Var.GetS("Address_part2")
           Count2 = CountLength(t)
           If Count2 > 0 Then
                Factor2 = MinLen2 / Count2
                NewSize2 = MaxSize * Factor2
      
                If NewSize2 > MaxSize Then NewSize2 = MaxSize
                SecondLine = Var.SIZE(CDbl(NewSize2)) & MojiTsume(t) & Var.tag("cs", "")
                TextSizeChangeScript = FirstLine & vbcrlf & SecondLine
            Else
                TextSizeChangeScript = FirstLine
           End If
          Var.puts "nogtips_Final", TextSizeChangeScript
      End function
      '***************************************************************************
      function CountLength(value)
          Dim address
          Dim regExp2, regExp3
          Dim oMatch, oMatches, pMatch, pMatches
          Dim aCnt, bCnt
          Dim newStr(10), new2Str(10), new3Str(10), new4Str(10)
          Dim a(10), b(10) ,c(10), d(10)
          Dim atex(10)
          Dim btex(10)
          Dim result
          address = value
      
                Set regExp3 = New RegExp
                regExp3.Pattern = "(\d{3})"
                regExp3.Global = True
                Set oMatches = regExp3.Execute(address)
                aCnt = oMatches.Count
                     If aCnt > 0 Then
                          For i = 0 To (aCnt - 1)
                               Set oMatch = oMatches(i)
                               atex(i) = oMatch.Value
                               a(i) = i
                                    If i = 0 Then
                                         newStr(0) = Replace(address, oMatch.SubMatches(0), a(i))
                                    Else
                                         newStr(i) = Replace(newStr(i - 1), oMatch.SubMatches(i), a(i))
                                    End If
                          Next
                               Set regExp2 = New RegExp
                               regExp2.Pattern = "(\d{2})"
                               regExp2.Global = True
                               Set pMatches = regExp2.Execute(newStr(aCnt - 1))
                               bCnt = pMatches.Count
      
                               If bCnt > 0 Then
                                    For i = 0 To (bCnt - 1)
                                         Set pMatch = pMatches(i)
                                         btex(i) = pMatch.Value
                                         b(i) = i
                                              If i = 0 Then
                                                   new2Str(0) = Replace(newStr(aCnt - 1), pMatch.SubMatches(0), b(i))
                                              Else
                                                   new2Str(i) = Replace(new2Str(i - 1), pMatch.SubMatches(0), b(i))
                                              End If
                                    Next
                                    CountLength = Len(new2Str(bCnt - 1))
                               Else
                                    CountLength = Len(newStr(aCnt - 1))
                               End If
                     Else
                          Set regExp2 = New RegExp
                          regExp2.Pattern = "(\d{2})"
                          regExp2.Global = True
                          Set pMatches = regExp2.Execute(address)
                          bCnt = pMatches.Count
      
                          If bCnt > 0 Then
                               For i = 0 To (bCnt - 1)
                                    Set pMatch = pMatches(i)
                                    btex(i) = pMatch.Value
                                    b(i) = i
                                         If i = 0 Then
                                              new2Str(0) = Replace(address, pMatch.SubMatches(0), b(i))
                                         Else
                                              new2Str(i) = Replace(new2Str(i - 1), pMatch.SubMatches(0), b(i))
                                         End If
                               Next
                               CountLength = Len(new2Str(bCnt - 1))
                          Else
                               CountLength = Len(address)
                          End If
                     End If
      End function
      '***************************************************************************
      function MojiTsume(value)
            Dim address
            Dim regExp2, regExp3
            Dim oMatch, oMatches, pMatch, pMatches
            Dim aCnt, bCnt
            Dim newStr(10), new2Str(10), new3Str(10), new4Str(10)
            Dim a(10), b(10) ,c(10), d(10)
            Dim atex(10)
            Dim btex(10)
            Dim result
                address = value
      
                Set regExp3 = New RegExp
                regExp3.Pattern = "(\d{3})"
                regExp3.Global = True
                Set oMatches = regExp3.Execute(address)
                aCnt = oMatches.Count
      
                     If aCnt > 0 Then
                          For i = 0 To (aCnt - 1)
                               Set oMatch = oMatches(i)
                               atex(i) = oMatch.Value
                               a(i) = "tex" & i & "t"
                                    If i = 0 Then
                                         newStr(0) = Replace(address, oMatch.SubMatches(0), a(i))
                                    Else
                                         newStr(i) = Replace(newStr(i - 1), oMatch.SubMatches(i), a(i))
                                    End If
                          Next
                               Set regExp2 = New RegExp
                               regExp2.Pattern = "(\d{2})"
                               regExp2.Global = True
                               Set pMatches = regExp2.Execute(newStr(aCnt - 1))
                               bCnt = pMatches.Count
      
                               If bCnt > 0 Then
                                    For i = 0 To (bCnt - 1)
                                         Set pMatch = pMatches(i)
                                         btex(i) = pMatch.Value
                                         b(i) = "texx" & i & "xt"
                                              If i = 0 Then
                                                   new2Str(0) = Replace(newStr(aCnt - 1), pMatch.SubMatches(0), b(i))
                                              Else
                                                   new2Str(i) = Replace(new2Str(i - 1), pMatch.SubMatches(0), b(i))
                                              End If
                                    Next
      
                                    For i = 0 To (aCnt - 1)
                                         Set oMatch = oMatches(i)
                                         atex(i) = oMatch.Value
                                         a(i) = "tex" & i & "t"
                                         c(i) = Var.tag("cTsume", "1.0") & atex(i) & Var.tag("cTsume", "")
                                              If i = 0 Then
                                                   new3Str(0) = Replace(new2Str(bCnt - 1), a(i), c(i))
                                              Else
                                                   new3Str(i) = Replace(new3Str(i - 1), a(i), c(i))
                                              End If
                                    Next
                                    For i = 0 To (bCnt - 1)
                                         Set pMatch = pMatches(i)
                                         btex(i) = pMatch.Value
                                         b(i) = "texx" & i & "xt"
                                         d(i) = Var.tag("cTsume", "0.5") & btex(i) & Var.tag("cTsume", "")
                                              If i = 0 Then
                                                   new4Str(0) = Replace(new3Str(aCnt - 1), b(i), d(i))
                                              Else
                                                   new4Str(i) = Replace(new4Str(i - 1), b(i), d(i))
                                              End If
                                    Next
                                    MojiTsume = new4Str(bCnt - 1)
                               Else
                                    For i = 0 To (aCnt - 1)
                                         Set oMatch = oMatches(i)
                                         atex(i) = oMatch.Value
                                         a(i) = "tex" & i & "t"
                                         c(i) = Var.tag("cTsume", "1.0") & atex(i) & Var.tag("cTsume", "")
                                              If i = 0 Then
                                                   new3Str(0) = Replace(newStr(aCnt - 1), a(i), c(i))
                                              Else
                                                   new3Str(i) = Replace(new3Str(i - 1), a(i), c(i))
                                              End If
                                    Next
                                    MojiTsume = new3Str(aCnt - 1)
                               End If
                     Else
                          Set regExp2 = New RegExp
                          regExp2.Pattern = "(\d{2})"
                          regExp2.Global = True
                          Set pMatches = regExp2.Execute(address)
                          bCnt = pMatches.Count
      
                          If bCnt > 0 Then
                               For i = 0 To (bCnt - 1)
                                    Set pMatch = pMatches(i)
                                    btex(i) = pMatch.Value
                                    b(i) = "texx" & i & "xt"
                                         If i = 0 Then
                                              new2Str(0) = Replace(address, pMatch.SubMatches(0), b(i))
                                         Else
                                              new2Str(i) = Replace(new2Str(i - 1), pMatch.SubMatches(0), b(i))
                                         End If
                               Next
                               For i = 0 To (bCnt - 1)
                                    Set pMatch = pMatches(i)
                                    btex(i) = pMatch.Value
                                    b(i) = "texx" & i & "xt"
                                    d(i) = Var.tag("cTsume", "0.5") & btex(i) & Var.tag("cTsume", "")
                                         If i = 0 Then
                                              new4Str(0) = Replace(new2Str(bCnt - 1), b(i), d(i))
                                         Else
                                              new4Str(i) = Replace(new4Str(i - 1), b(i), d(i))
                                         End If
                               Next
                               MojiTsume = new4Str(bCnt - 1)
                          Else
                               MojiTsume = address
                          End If
                     End If
      End function
      '***************************************************************************
      
    6. Edit variable property :
      The last thing and most important is to specify the order of variable process. If you don’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はバリアブルに対する「値を受け取る順序設定」です。この設定が正しくない、正しい順序で設定されていない場合は、予期せぬ表示結果を得る可能性があります。ですので、確実に順序立てて値を受け取れるように各バリアブルに対してプロパティを設定していきます。
      VerticalScripting5-Script_Order
      VerticalScripting5-VerticalScriptingTextFrame_Order

      Here is the exactly order in this sample.
      各バリアブルの値を受け取る順序設定は以下の通りです。

      ”Address_part1” = 1
      ”Address_part2” = 1
      ”TextSizeChangeScript” = 2
      ”nogtips_Final” = 3

Output Preview
出力プレビュー

VerticalScripting5-Output
以上で、全5回に渡る縦組みに関するTips紹介を終わります。日本、アジアのユーザーのお役に立てば幸いです。

広告
 

タグ: , , , , , , , , , , , , , , ,

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


This is #3 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シリーズのパート3です。本Tipsの使用は日本語版のAdobe InDesign使用を前提としています。

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

How to change text frame depends on how many digit in the customer address as maximum.

住所に含まれる番地や部屋番号などの連続数値の桁数に応じて表示するテキストフレームを変更する

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

  • Need to display customer address in different text frame which have different text formatting, only when address contain multiple digit number in it.
  • 住所の見栄えを良くする為に、住所に複数桁数の数字が含まれている場合に、異なるテキスト設定を行ったフレームにて表示させたい

What you can achieve with this tip?

このTipsで何が出来るのか?

This tips make you able to display variable text in different text frame where you set different text formatting.(Although you can see text in each text frames in below screen shot, it is only for better understanding of differences between each Tips. By Using this VBScript, you can divide text frame for display customer address, especially depends on whether address contain any number larger than 100(3 digit) or not.)

本Tipsを使用すると、以下の様に複数桁数を含む住所を処理する際に別のテキストフレームにて表示する事が可能です。(それぞれのTipsによる表示結果の差異を明示する為に全てのテキストフレームに住所を表示させていますが、実際にこのTipsを使用した場合には、住所が3桁以上の連続する数値を含む場合にのみ、ターゲットのテキストフレームに住所を表示させる事が可能です。レイヤー・バリアブルと併せて使用することで、表示するテキストフレームを変更出来ます。)

Preview :
プレビュー:

As you can see, the text frame in the right side(nogtips3) display entire of customer address by using “MOJI-TSUME” which is the menu only available on Japanese version of InDesign:-)
So you can see 3 digit number which looks use similar width than other single characters.

ご覧のとおり、一番右の今回のTipsを適用したテキストフレームでは、文字に「文字ツメ」の効果がかかっており、連続する3桁以上の数を表示するにあたっても、別の数値と近い文字幅にて表示しています。

Setup
設定方法

Please refer to former post of this series regarding basic setting.

縦組みのテキストフレームに関する基本的設定方法は過去の投稿を参照してください。

  1. Create variables at outside of page layout. Those variables will be used for script.
    ページのレイアウト範囲外にスクリプトで使用するためのバリアブルを作成します。
  2. Create text frame for vertically scripting.
    宛名用に縦組みのテキストフレームを作成します。
  3. 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)
    Please refer to my last postregarding the assignment for Case1 and Case2.
    全てのテキストフレームをDSMブリッジへ登録します。
    (本Tipsは複数の項目にて住所情報を保存しているDBの使用を想定しています。ですので、始めにある程度住所情報を結合して表示するための代替用バリアブル項目([[Address]])を作成しています。またこのバリアブルへの割り当て設置段階で、ハイフン「-」を全角マイナス「ー」に置き換える設定を行います。詳細についてはTips第1弾を参照して下さい)
  4. Setup for “nogtips_Multi_Digit_Address” :
    For this text frame, we set “MOJI-TSUME” with 100 as its value. So all text will be displayed by shrinking space beteen each character.(*This feature only available on Japanese version of Adobe InDesign)
    バリアブル[[nogtips_Multi_Digit_Address]]の設定:
    このテキストフレームは「文字ツメ」効果を設定し、テキストが詰まって表示されるように設定します。これにより、複数桁数の数値を縦中横で表示する際でも、ある程度全体の文字幅を縮めて表示する事が可能になります。
  5. Edit VBScript
    Let’s edit vbscript. I made script that named as “Vertical Script3”. Here is the entire of script code.
    VBスクリプトの編集:
    それではVBスクリプトを編集します。今回は以下のようにしました。

    function VerticalScript3()
    	Dim address, s, t
    	S=Var.GetS("Case2")
    	Set address = new RegExp
    	address.pattern = *\d{3,}*
    
    '今回は明示的に表示するフレームを変更する方法を取るので以下条件に合わない場合Falseとしていますが、適宜変更してください。
    'To control a using text frame more explictly, it force to false. Threrefore please change it to suit with you.
    	If address.Test(s) Then
    		Var.PutS "nogtips_Multi_Digit_Address", s
    		VerticalScript3=True
    	Else
    		Var.PutS "nogtips_Multi_Digit_Address", ""
    		VerticalScript3=False
    	End If
    End function
    

    This script handles all text like below.
    It search if there is any number that larger than 3 digit by using Regular Expression. If it find any number that higher than 99, then it will assign a customer address to “nogtips_Multi_Digit_Address”. If not, then it assign just empty value.
    正規表現を使って住所に3桁以上の数値が含まれている場合にのみ、バリアブル[[nogtips_Multi_Digit_Address]]に対して住所を割り当てます。それ以外の場合は空の値を割り当てます。

  6. Layer Variable :
    To change display text frame depends on whether address contain multiple digit number in it, we set the condition for InDesign Layer. So layer that have a variable [[nogtips_Multi_Digit_Address]] will be used only when it match with condition.
    バリアブル・レイヤー:
    住所に複数桁数の数値が含まれている場合にのみ表示するテキストフレームを変更します。今回はバリアブル・レイヤーを使用します。

  7. Edit variable property :
    The last thing and most important is to specify the order of variable process. If you don’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.
    各バリアブルの値を受け取る順序設定は以下の通りです。
    ”Address” = 1
    “Case1″ = 2
    “Case2″ = 2
    “Case3″ = 2
    “Vertical Script” = 3
    “nogtips_Address” =4
    “Vertical Script 3” = 3
    “nogtips_Multi_Digit_Address” = 4

Output Preview
出力プレビュー

 

タグ: , , , , , , , , , , , ,

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

This is #2 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シリーズのパート2です。本Tipsの使用は日本語版のAdobe InDesign使用を前提としています。

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

How to assign text with size specification when it should contain several size formatting?

同一フレームに対して割り当てるテキストを、サイズを変更した物と変更してない物で使い分け方

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

  • Need to display customer address with different size formatting on first line and second line(Only when it require line feed. No need to change the text size when it can display in one line)
  • 改行を要する場合に、二行目のテキストサイズを変更したい。但し、二行目のテキスト数が少ない場合はサイズ変更せず、ある程度のテキスト数を超えた場合にのみサイズを小さくして表示したい。

What you can achieve with this tip?

このTipsで何が出来るのか?

This tips make you able to display variable text with different size on second line when it insert line feed in it.

本Tipsを使用すると、以下の様な改行を含む宛名表記に際して、一行目と二行目のテキストサイズを自動的に変更する事が可能になります。

Preview :
プレビュー:

As you can see in right side text frame, with this script, it can display text not only by inserting line feed when it  need multiple line, but also it can change the size of second line depends on the text length.

ご覧のとおり、本Tipsを使用したケースでは改行を挿入するだけでなく、改行後に続く行に表示されるテキストのサイズを変更する事が可能です。また、このテキストサイズの変更は二行目のテキストの文字数に応じて自動的に変更されるので、少ないテキスト数の場合はサイズ変更せずに二行目を表示します。

Setup
設定方法

Please refer to former post of this series regarding basic setting.

縦組みのテキストフレームに関する基本的設定方法は過去の投稿を参照してください。

  1. Create variables at outside of page layout. Those variables will be used for script.
    ページのレイアウト範囲外にスクリプトで使用するためのバリアブルを作成します。
  2. Create text frame for vertically scripting.
    宛名用に縦組みのテキストフレームを作成します。
  3. 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)
    Please refer to my last postregarding the assignment for Case1 and Case2.
    全てのテキストフレームをDSMブリッジへ登録します。
    (本Tipsは複数の項目にて住所情報を保存しているDBの使用を想定しています。ですので、始めにある程度住所情報を結合して表示するための代替用バリアブル項目([[Address]])を作成しています。またこのバリアブルへの割り当て設置段階で、ハイフン「-」を全角マイナス「ー」に置き換える設定を行います。詳細についてはTips第1弾を参照して下さい)
  4. “Setup for Case3” :
    Open assignment window, and insert additional field in front of assigned database column which should be used in second line. Then specify the font size by using “Font” menu.
    バリアブル[[Case3]]の設定 :
    割り当てウィンドウを開き、二行目に使用するDB項目の割り当て直前に割り当てフィールドを追加します。(フィールドを選択し、右クリックメニューから新規フィールドの挿入が可能です) 次に、挿入したフィールドにて「フォント」タブをクリックし、サイズの指定を行います。ここではサイズオプションを有効化し、サイズに10ptを指定しました。ここでは有効にしていませんが、チェックボックスにチェックを入れる事で、サイズ同様にフォントの種類、色の変更も可能です。
  5. Edit VBScript
    Let’s edit vbscript. I made script that named as “Vertical Script”. Here is the entire of script code.
    VBスクリプトの編集:
    それではVBスクリプトを編集します。前回紹介したVerticalScriptを改変し、以下の様なスクリプトを記述します。

    function VerticalScript()
    	Dim Count
    	Dim Count2
    	Dim Work
    	Dim Work2
    	Dim s
    	Dim t
    		s = Var.GetS("Case1")
    		t = Var.GetS("Case2")
    		u = Var.GetS("Case3")
    		Count = Var.GetS("Case1")
    		Count2 = Var.GetS("Line2")
    		Work = Len(Count)
    		Work2 = Len(Count2)
    		If Work > 19 Then
    			If Work2 > 10 Then
    				Var.PutS "nogtips_Address", u
    			Else
    				Var.PutS "nogtips_Address", t
    			End If
    		Else
    			Var.PutS "nogtips_Address", s
    		End If
    			VerticalScript = Work
    End function
    

    This script handle all text like below.
    If entire address have more than 19 character, and second line has more than 10 character, then it use small size of text for second line. If not, use normal size.
    If entire text less than 20, then use normal size in one line.このスクリプトにより、住所としての文字列全体が19文字を超える場合は、次に二行目のテキストの文字数をカウントし、二行目が10文字以上の場合にはテキストサイズを10ptに変更させます。それ以外の場合はサイズ変更なしの二行目表示となり、そもそも一行で表示可能なテキスト数の場合は、一行で表示させます。

  6. 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.

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

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

    Output Preview
    出力プレビュー

 

タグ: , , , , , , , , , , ,

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

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

 

タグ: , , , , , , , , , , ,

クロスメディアVer5プレスリリース!!

manchen mit megaphoneお待たせしました、皆さん!

drupa 2012のニュース等はチェックされているでしょうか?色々な新しい機械、技術がリリースされて、毎日新しい驚きが続きますね。楽しい限りです!

今日のトピックは、クロスメディアです!
ダイレクトスマイルはクロスメディアの最新バージョン、Ver5を発表しました。(プレスリリースはこちら

そこで、今日から暫くはその最新機能をブログで先行紹介していきたいと思います。既にdrupaに行かれた方も居るかもしれませんが、日本語の説明にて改めて見て頂ければ幸いです。

製品が気になった方は何時でも連絡下さい;-)

 

NOG

 
 

タグ: , , , , , , ,

ダイレクトスマイル・インテグレーション・サーバーのインストール方法

Connect DSMI

今日は結構長くなるかも。
DSMI(ダイレクトスマイル・インテグレーション・サーバー)のインストールにおけるテクニカルナレッジをご紹介します。

初めに

ダイレクトスマイル・インテグレーション・サーバーは、以下のシステムが必須です。また、システム要件・環境が満たされていない場合には、ダイレクトスマイルのサポートを受けることは出来ません。

必ず、ソフトウェアのインストールより前に条件を満たす環境をご用意ください。

– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –

特に注意!!

インストール作業は必ずパスワード保護がされた管理者アカウントにて行います。

管理者アカウントにおいても、パスワード保護のされていないアカウントでは問題が発生します。(例:Setのアップロードができない、不具合が起きるなど)

DSMIからは、事前に必ず固定IPアドレスの取得が必須です。

また、サーバー証明書の取得は絶対に欠かせない必須事項となります。

– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –

インストール準備

インストールは以下のソフトウェアを使用して行います。

DirectSmile関連のインストーラー

  • DSMGenInstaller_4.2.0.xxx.exe
  • dsmi-4.2.0.xxx.msi

その他の必須ソフトウェア

  • Microsoft SQL Server 2008 R2

既に顧客が所有している場合は、そのSQL Serverを使用することが可能

未購入の場合、Expressという無料版を使用することが可能。その場合は以下のVerのインストーラーを使用する

(Microsoft® SQL Server® 2008 R2 SP1 – Express Edition with Tools(x64))

  • Microsoft Silverlight 4 or 5(DSMIのバージョンによる)

インストール後のチェック用実行ファイル

  • DSMIPreCheck.exe

(正常インストールのチェック:実行後に自動的にインストール、および各フォルダへの設定に間違いがないかをチェックしてくれるコマンドラインベースの実行ファイル)

データベースの上書きなど修正用実行ファイル

  • dsmobcktool.zip

– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –

インストール方法

1.サーバーの役割を設定する

サーバーマネージャーから役割の追加を選択し、サーバーへ以下の役割を追加する

  • Webサーバー(IIS)
  • アプリケーションサーバー

役割をサーバーへ追加したら、Windows Updateを実行しておきます。セキュリティの為、適用可能な全てのUpdateをインストールします。

– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –

2.SQL Serverをインストール

SQL Server 2008 をインストールします。

他のSQL Serverと接続する場合には、このステップは行う必要はありません。

SQL Server 2008 R2 Express Editionをインストールした場合、初期設定ままインストールを行うと、名前付きインスタンスが適用され、サーバーインスタンス名は以下の様になります。

サーバーインスタンス名: サーバー名\SQLEXPRESS

Instance Name = SQLExpress

注意:

SQL Serverをインストールする際には、必ず初期設定のままインストールをしてください。SQL Serverのインスタンス名を変更してしまうと、後々修正するのが非常に面倒になります(データベースの上書きツールの使用、さらに複数の構成ファイルの編集が必要となります)

サービスアカウント設定

「サーバーの構成」設定では、すべてのSQL Serverサービスで同じアカウントを使用するというオプションを利用します。

NETWORK SERVICE

アカウントには「NT AUTHORITY\NETWORK SERVICE」を使用します

スタートアップの種類 自動

続いて「スタートアップの種類」の設定を両方とも「自動」に変更します。

これが手動などになっていると、サービスを起ち上げなければいけなくなります。

Windows認証モード

「データベースエンジンの構成」設定においては、認証モードに「Windows認証モード」を設定します。ただし、顧客が既にSQL Serverを所有している場合や、SQL Server認証を使用したい場合には「混合モード」を採用します。

SQLServerへアクセス

続いてインストールしたSQL Serverを確認します。サーバー名は初期設定のままで、

「.\SQLExpress」と入力します

 – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –

3.Microsoft .Net Framework 4をインストール

DSMIは.Net Framework 4を使用しているので、それに対応するために事前に.
Net Framework 4をインストールしておきます。

これはWindows Updateからインストールすることが可能です。

ただし、このUpdateは自動ではなく、手動の選択式のものになります。
ご自身でWindows Updateから選択してインストールしてください。

– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –

4.DirectSmile Generatorをインストール

オフラインと同様にDSMをインストール

※1
WindowsのUAC(User Account Control)問題により、所定のフォルダにデータがすべて作成されていない場合があります。この場合一度アンインストール後、以下のフォルダからデータコピーし、正しいディレクトリ内にデータをペーストし、再インストールを管理者権限の元で行います。

C:\Users\アカウント名\AppData\Local\VirtualStore\Program Files (x86)

※2
インストール後、フライアウトメニューにGeneratorではなく、VDP Studioと表記されていることがありますが、特に問題ありません。

– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –

5.DSMIをインストール(DirectSmile Integration Server)

インストール実行前に以下のフォルダを手動で作成します。

  • DSMUsers(C:\DSMUsers)
  • DSMuploads(C:\DSMTemp\DSMUploads)

インストール中に複数の設定があるので初期設定で問題なければその通りに行います。

インストール・ウィザード

①     連携するSQL Serverの設定

ここでは、4つの入力欄と、1つのチェックボックスが表示されます。

SQLServer設定入力フィールド

SQL Server Instance name :

対応するSQL Serverのインスタンス名を入力します。
もし顧客が用意した別のSQL Serverに接続する場合には以下の例の様に入力します。

PC名\サーバーインスタンス名

(例:DIRECTSMILE\MSSQLSERVER)

Database name:

ダイレクトスマイル用のデータベース名を入力します。
ここは初期設定から変更はせず、かならず「dsmodb」とします。

Username / Password:

ここにユーザー名、パスワードを入力するのは、SQL認証を採用している場合に限ります。

②     SQL Serverにおけるデータベース同期設定

上記の設定の下部に表示されているチェックボックスは複数のDSMIを連携させる際にどちらのサーバーにインストールされたSQL Serverをメインのデータベースとして使用するのかという設定を行います。これは2つのDSMIを連携させる場合に必要なマスター、スレーブの設定となります。

この設定をしないと複数のDSMI間におけるデータベースの同期が出来ません。

Master or Slave?

③     サーバー証明書の登録

サーバー証明書のCN値入力ダイアログ

DSMIはMicrosoft SilverlightクライアントとWCFサービス(Webサービス)との通信をhttps通信にて行います。https通信を可能にするためにはDSMIサーバーはサーバー証明書をインストールしてある必要があります。

サーバー証明書自体はDSMIのインストール作業中に作成させる事が可能ではありますが、これはあくまでもテストインストールのためだけであり、実装にあたっては必ず正規のプロバイダーが発行した有効なサーバー証明書を用意しておく必要があります。

注意:自己署名証明書を採用した場合、ダイレクトスマイルのサポート対象外システムとなります。自己署名を採用している場合は、例えそれがイントラネットで使用されているシステムであったとしてもダイレクトスマイルは一切のサポートを行いません。必ず正規のサーバー証明書をインストール、ウェブサイトにバインドして下さい。 

Yes           :インストール作業中にサーバー証明書を作成

No             :用意したサーバー証明書を登録(推奨)

証明書用秘密キー作成ダイアログ

テストインストールの際に、サーバー証明書の作成を行った場合にはパスワードの作成を求められます。これは証明書におけるプライベートキー、パブリックキーの作成プロセスです。ただしテストインストール段階においては、このパスワードは設定なしで進めて問題ありません。また設定しても、使用するところは無いので大丈夫です(ただし、本インストールにおいては必ずサーバー証明書を取得して行うという事が前提です)


– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –

6.必要な詳細設定(下位互換性保持目的の場合のみ)

以下の設定の一部はデザイナーやオペレーターなどのクライアントサイドPCで使用するDirectSmile GeneratorがVer4.2以下の場合に対する下位互換性を保持する目的の設定です。DirectSmile GeneratorのVer4.2以降ではDSMIへテンプレートをアップロードするにあたり、使用するプロトコルをFTPからHTTPへ変更しています。よって、新規インストールなどに関しては以下の設定は省略可能です。

自動インストールでは作成されないフォルダや、手動設定が必要なフォルダについて以下の操作を実行します

  1. フォルダの作成
    A) dsmuploads
    FTP機能を使用する際のローカルアップロード用フォルダ

    1. DSMUsers (C:\DSMUsers)
    2. DSMtemp (C:\DSMtemp)
    3. DirectSmile Generator (C:\Program Files (x86)\DirectSmile Generator)
    4. DSMO (C:\inetpub\wwwroot\DSMO)
    5. dsmuploads (C:\DSMTemp\dsmuploads)
  2. フォルダのセキュリティ設定の変更
    以下の5つのフォルダに対して、フォルダのセキュリティ設定から、Network Serviceアカウントに対してすべてフルコントロールを与える。※ツリー階層になる場合は、上階層のフォルダに設定すれば下階層のフォルダに自動的にセキュリティ設定が継承される。
  3. IISの設定

A)        FTPサイト(下位互換性保持の為必要な場合のみ設定)

※Generator 4.1以降はファイルのアップロードにおいてHTTPを通信プロトコルとして使用し、FTPは使用しません。ですが、古いバージョンのGeneratorに対しての下位互換性を保持する必要がある場合はDSMIサーバーにおいて、FTPサーバの設定を行います。

①       FTPサイトの追加

IISにおいて、最上位階層に位置するサーバー自体のアイコンを右クリックして、「FTPサイトの追加」を選択する

FTPサイトを追加

②       FTPサイトの設定

  1. FTPサイト名は何でもOK
  2. コンテンツパスには「dsmuploads」を選択
  3. バインド設定ではIPアドレス、接続ポートを設定(初期値のまま)
  4. 仮想ホスト名は必要なし
  5. SSL設定では「許可(O)」
  6. SSL証明書は選択せず、「未選択」のままでOK
  7. 認証および承認の設定

A)        認証欄は匿名にチェック
B)        承認欄

i.     アクセスの許可:匿名ユーザー
ii.    アクセス許可:読み取り、書き込みの両方にチェック

注意:FTPサイトの設定では、セキュリティ上の理由から、匿名ユーザーのアクセスを全て許可することが許されない場合があります。その場合はサーバーにアカウントを作成し、そのアカウントからのアクセスを許可させるように設定を変更します。
詳細はhttp://technet.microsoft.com/ja-jp/library/dd939052.aspx

B)        Default Web Site

①   サーバー証明書の確認

必要なサーバー証明書以外について削除する

(ア) 既に用意している場合は購入済みのサーバー証明書を採用する

(イ) テストインストールの場合(サーバー証明書がインストール時に自動作成されている場合)、発行者がDirectSmile Support Certification Authorityとなっているサーバー証明書を採用する

② バインドの設定(https接続時に使用するサーバー証明書の設定)

③ アプリケーションプールの確認=DefaultAppPool

※但し、仮想ディレクトリDSMImagesがDefaultWebSite直下に指定されている場合は、AppPoolが.NetFramework 4を使用している必要があります。

C)        DSMO

①   仮想ディレクトリの追加

DSMimagsという名前の仮想ディレクトリを作成します。これはDSMOで作成した画像をURLコールによって返す場合に画像へのパスとなる仮想ディレクトリになります。

実際に指定するフォルダはdsmtempを指定します。

D)       アプリケーションプールの確認=DSMO_Pool

 

– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –

7.設定のチェック

インストール・詳細設定が終了したら「DSMIPreCheck.exe」を使い未設定や間違いがないかをチェックします。

コマンドラインベースの実行ファイルが、特定フォルダが作成されているかどうか、またそのセキュリティ設定が正しいかどうかを自動的にチェックしてくれます。

※Ghost Scriptの実行ファイルの既定が「Ver8.64」にてチェックされるため、DSM GeneratorがVer4.2.0.675インストール環境下ではエラーを返します。このバージョンのGeneratorはGhost Script 9.02を使用します。エラーが出る場合は、DSMOの設定欄からGhost Scriptの指定バージョンを変更します。

– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –

8.DSMOの動作チェック

インストール作業が終了したら、DSMOにログインして正常に動作するかのチェックを行います。チェックする項目の簡易版を以下に記載しますが、必ずFinalcheckを行なって下さい。全てのチェックをパスしたらインストール完了です!

  1. Setting:設定
    (ア)DSMOのURLを変更初期設定では”http://localhost/dsmo”となっているので、これを登録済みのドメイン名に変更します(イ)Image Repository URLを変更画像の表示用URLになるImage Repository URLに関しても初期設定では”http://localhost/dsmimages”となっているので、これを登録済みのドメイン名に変更します

    注意:この設定はウェブサイトのどのディレクトリに対して仮想ディレクトリを作成したかによります。
    ウェブサイトのサブディレクトリとして作成した場合が初期設定です。
    DSMOディレクトリ下に作成した場合には、”dsmo/dsmimages”と変更します
  2. Item:アイテム次にアイテムからSetのアップロードとDocumentのアップロードを確認します。

    ※1.Setのアップロードはサーバー自身のDSM Generatorを使って、Set Editorから直接アップロードすることは出来ません。DSMOをインターネットブラウザで開き、ItemページからSet、Documentをアップロードしてください。
    ※2.Documentの作成には必ず2台以上のプロダクションサーバーが稼働している必要があります。

  3. User:ユーザーUserメニューでは実際に新規アカウントの作成が出来るかどうかをチェックします。また、削除も同様に可能かチェックします。 
  4. Workflow:ワークフロー以下の流れでWorkflowの最終チェックを行います。まずはフロントエンドからWorkflowページを開きます。ここでエラーが発生する場合には、https://ドメイン名/workflow.svcと ブラウザにURLを直接入力し、Workflowサービスにアクセスしてみます。このページにてエラーが出る場合は、HTTPS接続による Workflowサービスが確立できていません。エラーが発生した場合に一番多いのは、サーバー証明書が複数存在することによる証明書の混在が原因となっ たhttpsアクセスができないという旨のエラーです。その場合には、不要なサーバー証明書を削除することで解決できます。また、何らかの原因でDSMO Backendが正常に動作していない為に発生している事がありますので、その場合はServiceからDSMO Backendを再起動させます。必要に応じてコマンドプロンプトからIISの再起動を行なってください。
 

タグ: , , , , , , , , , ,