AIのomvは抜けだらけ?

相変わらずIndesignとIllustratorを行ったり来たりしております。なもので、時々オブジェクトがゴッチャゴチャになってしまいます。そこで頼りになるはずのオブジェクトモデルビュアーなのですが、これがまたぐだぐだな訳です。


omv_ID.pngomv_AI.png

上の比較はomvのデータもとのXMLファイル。IndesignとIllustratorではここまで容量が違います。もちろんIndesignはかなりのオブジェクトが存在するのですが、ここまでの容量差が生じるほどでしょうか?結論から言っちゃうと、もちろん、そんなことはありません。
順番に見ていくとありそうなオブジェクトがありません。例えばcharacter、paragraph、word、lineなんか。どうやらクラス自体に欠落がありそうです。
さらに詳細に見ていきましょう。

estk_omv_AI1.png

上に示したのはtextRangeのプロパティですが、18個がリストアップされています。が、このプロパティ、かなりはしょられています。ちょっと調査してみましょう。

function prpLst(obj) {
   var result = “”;
    for (var a in obj){
        result += a + “¥n”;
        }
    return result;
    }

上記ファンクションはオブジェクトの持つプロパティをリストアップするものです。
これにtextRangeオブジェクトをつっこんでみると…

textRange as paragraph and character.
textRange.akiLeft
textRange.akiRight
textRange.alignment
textRange.alternateGlyphs
textRange.autoLeading
textRange.autoLeadingAmount
textRange.baselineDirection
textRange.baselinePosition
textRange.baselineShift
textRange.bunriKinshi
textRange.burasagariType
textRange.capitalization
textRange.characterAttributes
textRange.characterOffset
textRange.connectionForms
textRange.contents
textRange.contextualLigature
textRange.desiredGlyphScaling
textRange.desiredLetterSpacing
textRange.desiredWordSpacing
textRange.discretionaryLigature
textRange.everyLineComposer
textRange.figureStyle
textRange.fillColor
textRange.firstLineIndent
textRange.fractions
textRange.horizontalScale
textRange.hyphenateCapitalizedWords
textRange.hyphenation
textRange.hyphenationPreference
textRange.hyphenationZone
textRange.italics
textRange.justification
textRange.kerning
textRange.kerningMethod
textRange.kinsoku
textRange.kinsokuOrder
textRange.kurikaeshiMojiShori
textRange.language
textRange.leading
textRange.leadingType
textRange.leftIndent
textRange.length
textRange.ligature
textRange.maximumConsecutiveHyphens
textRange.maximumGlyphScaling
textRange.maximumLetterSpacing
textRange.maximumWordSpacing
textRange.minimumAfterHyphen
textRange.minimumBeforeHyphen
textRange.minimumGlyphScaling
textRange.minimumHyphenatedWordSize
textRange.minimumLetterSpacing
textRange.minimumWordSpacing
textRange.mojikumi
textRange.noBreak
textRange.openTypePosition
textRange.ordinals
textRange.ornaments
textRange.overprintFill
textRange.overprintStroke
textRange.paragraphAttributes
textRange.parent
textRange.parent
textRange.parent
textRange.proportionalMetrics
textRange.rightIndent
textRange.romanHanging
textRange.rotation
textRange.singleWordJustification
textRange.size
textRange.spaceAfter
textRange.spaceBefore
textRange.story
textRange.strikeThrough
textRange.strokeColor
textRange.strokeWeight
textRange.stylisticAlternates
textRange.swash
textRange.tabStops
textRange.tateChuYokoHorizontal
textRange.tateChuYokoVertical
textRange.textFont
textRange.textSelection
textRange.titling
textRange.tracking
textRange.Tsume
textRange.typename
textRange.typename
textRange.typename
textRange.underline
textRange.verticalScale
textRange.wariChuCharactersAfterBreak
textRange.wariChuCharactersBeforeBreak
textRange.wariChuEnabled
textRange.wariChuJustification
textRange.wariChuLineGap
textRange.wariChuLines
textRange.wariChuScale

となります。実に99項目がリストアップされています。
なぜこんな差異が生じるのでしょう?スクリプトが生成したリストを注意深く見てみると幾つかのパラメータが重複して存在します。
なんだか怪しいのでproperty自身も一緒に表示できるようにコードを改変します。念のためエラーコレクト込みで

function prpLst(obj) {
    var result = “”;
    for (var a in obj){
        try{
            result += a + ” : ” + obj[a] + “¥n”;
            } catch (e) {
                result += a + ” : ERR¥n”;
                }
        }
    return result;
    }

結果は以下の様に…

characterOffset : 1
length : 6
contents : ああああああ
kerning : 0
story : [Story]
textSelection : [TextRange]
characterAttributes : [CharacterAttributes]
paragraphAttributes : [ParagraphAttributes]
typename : TextRange
parent : [Story]
textFont : [TextFont KozGoPro-Regular]
size : 12
horizontalScale : 100
verticalScale : 100
autoLeading : true
leading : 21
tracking : 0
baselineShift : 0
rotation : 0
kerningMethod : Could not correct property.
capitalization : FontCapsOption.NORMALCAPS
baselinePosition : FontBaselineOption.NORMALBASELINE
openTypePosition : FontOpenTypePositionOption.OPENTYPEDEFAULT
ligature : true
discretionaryLigature : false
contextualLigature : true
fractions : false
ordinals : false
swash : false
titling : false
connectionForms : true
stylisticAlternates : false
ornaments : false
figureStyle : FigureStyleType.DEFAULTFIGURESTYLE
proportionalMetrics : false
italics : false
baselineDirection : BaselineDirectionType.VerticalRotated
language : LanguageType.ENGLISH
alternateGlyphs : Could not correct property.
Tsume : 0
alignment : StyleRunAlignmentType.center
wariChuEnabled : false
wariChuLines : 2
wariChuLineGap : 0
wariChuScale : 50
wariChuCharactersBeforeBreak : 2
wariChuCharactersAfterBreak : 2
wariChuJustification : WariChuJustificationType.WARICHUAUTOJUSTIFY
tateChuYokoVertical : 0
tateChuYokoHorizontal : 0
akiLeft : -1
akiRight : -1
noBreak : false
fillColor : [CMYKColor]
strokeColor : [NoColor]
overprintStroke : false
overprintFill : false
strokeWeight : 1
underline : false
strikeThrough : false
typename : TextRange
parent : [Story]
justification : Justification.LEFT
firstLineIndent : 0
leftIndent : 0
rightIndent : 0
spaceBefore : 0
spaceAfter : 0
hyphenation : false
minimumHyphenatedWordSize : 6
minimumBeforeHyphen : 2
minimumAfterHyphen : 2
maximumConsecutiveHyphens : 0
hyphenationZone : 36
hyphenateCapitalizedWords : true
hyphenationPreference : 0.5
desiredWordSpacing : 100
maximumWordSpacing : 133.000004291534
minimumWordSpacing : 80.0000011920929
desiredLetterSpacing : 0
maximumLetterSpacing : 0
minimumLetterSpacing : 0
desiredGlyphScaling : 100
maximumGlyphScaling : 100
minimumGlyphScaling : 100
singleWordJustification : Justification.FULLJUSTIFY
autoLeadingAmount : 175
leadingType : AutoLeadingType.TOPTOTOP
tabStops :
romanHanging : false
bunriKinshi : true
burasagariType : BurasagariTypeEnum.None
kinsokuOrder : KinsokuOrderEnum.PUSHIN
kurikaeshiMojiShori : false
kinsoku : Hard
mojikumi : GyomatsuYakumonoHankaku
everyLineComposer : false
typename : TextRange
parent : [Story]

やはり2カ所でエラーが生じていますね。しかしながら、重複したプロパティに関しては正常に拾えているようです。どういう事なのか更に調査が必要ですね。
更に下層のプロパティを拾ってみましょう。

characterOffset : 1
length : 6
contents : ああああああ
kerning : 0
story : [Story]
story.textRange : [TextRange]
story.textSelection : [TextRange]
story.length : 6
story.typename : Story
story.parent : [Document 名称未設定-2]
textSelection : [TextRange]
textSelection.0 : [TextRange]
characterAttributes : [CharacterAttributes]
characterAttributes.textFont : [TextFont KozGoPro-Regular]
characterAttributes.size : 12
characterAttributes.horizontalScale : 100
characterAttributes.verticalScale : 100
characterAttributes.autoLeading : true
characterAttributes.leading : 21
characterAttributes.tracking : 0
characterAttributes.baselineShift : 0
characterAttributes.rotation : 0
kerningMethod : Could not correct property.
paragraphAttributes : [ParagraphAttributes]
paragraphAttributes.justification : Justification.LEFT
paragraphAttributes.firstLineIndent : 0
paragraphAttributes.leftIndent : 0
paragraphAttributes.rightIndent : 0
paragraphAttributes.spaceBefore : 0
paragraphAttributes.spaceAfter : 0
paragraphAttributes.hyphenation : false
paragraphAttributes.minimumHyphenatedWordSize : 6
paragraphAttributes.minimumBeforeHyphen : 2
paragraphAttributes.minimumAfterHyphen : 2
paragraphAttributes.maximumConsecutiveHyphens : 0
paragraphAttributes.hyphenationZone : 36
paragraphAttributes.hyphenateCapitalizedWords : true
paragraphAttributes.hyphenationPreference : 0.5
paragraphAttributes.desiredWordSpacing : 100
paragraphAttributes.maximumWordSpacing : 133.000004291534
paragraphAttributes.minimumWordSpacing : 80.0000011920929
paragraphAttributes.desiredLetterSpacing : 0
paragraphAttributes.maximumLetterSpacing : 0
paragraphAttributes.minimumLetterSpacing : 0
paragraphAttributes.desiredGlyphScaling : 100
paragraphAttributes.maximumGlyphScaling : 100
paragraphAttributes.minimumGlyphScaling : 100
paragraphAttributes.singleWordJustification : Justification.FULLJUSTIFY
paragraphAttributes.autoLeadingAmount : 175
paragraphAttributes.leadingType : AutoLeadingType.TOPTOTOP
paragraphAttributes.tabStops :
paragraphAttributes.romanHanging : false
paragraphAttributes.bunriKinshi : true
paragraphAttributes.burasagariType : BurasagariTypeEnum.None
paragraphAttributes.kinsokuOrder : KinsokuOrderEnum.PUSHIN
paragraphAttributes.kurikaeshiMojiShori : false
paragraphAttributes.kinsoku : Hard
paragraphAttributes.mojikumi : GyomatsuYakumonoHankaku
paragraphAttributes.everyLineComposer : false
paragraphAttributes.typename : ParagraphAttributes
paragraphAttributes.parent : [Story]
typename : TextRange
parent : [Story]
parent.textRange : [TextRange]
parent.textSelection : [TextRange]
parent.length : 6
parent.typename : Story
parent.parent : [Document 名称未設定-2]
textFont : [TextFont KozGoPro-Regular]
textFont.name : KozGoPro-Regular
textFont.family : 小塚ゴシック Pro
textFont.style : R
textFont.typename : TextFont
textFont.parent : [Application Adobe Illustrator]
size : 12
horizontalScale : 100
verticalScale : 100
autoLeading : true
leading : 21
tracking : 0
baselineShift : 0
rotation : 0
parent : Could not correct property.
capitalization : FontCapsOption.NORMALCAPS
baselinePosition : FontBaselineOption.NORMALBASELINE
openTypePosition : FontOpenTypePositionOption.OPENTYPEDEFAULT
ligature : true
discretionaryLigature : false
contextualLigature : true
fractions : false
ordinals : false
swash : false
titling : false
connectionForms : true
stylisticAlternates : false
ornaments : false
figureStyle : FigureStyleType.DEFAULTFIGURESTYLE
proportionalMetrics : false
italics : false
baselineDirection : BaselineDirectionType.VerticalRotated
language : LanguageType.ENGLISH
parent : Could not correct property.
Tsume : 0
alignment : StyleRunAlignmentType.center
wariChuEnabled : false
wariChuLines : 2
wariChuLineGap : 0
wariChuScale : 50
wariChuCharactersBeforeBreak : 2
wariChuCharactersAfterBreak : 2
wariChuJustification : WariChuJustificationType.WARICHUAUTOJUSTIFY
tateChuYokoVertical : 0
tateChuYokoHorizontal : 0
akiLeft : -1
akiRight : -1
noBreak : false
fillColor : [CMYKColor]
fillColor.cyan : 0
fillColor.magenta : 0
fillColor.yellow : 0
fillColor.black : 100
fillColor.typename : CMYKColor
strokeColor : [NoColor]
strokeColor.typename : NoColor
overprintStroke : false
overprintFill : false
strokeWeight : 1
underline : false
strikeThrough : false
typename : TextRange
parent : [Story]
parent.textRange : [TextRange]
parent.textSelection : [TextRange]
parent.length : 6
parent.typename : Story
parent.parent : [Document 名称未設定-2]
justification : Justification.LEFT
firstLineIndent : 0
leftIndent : 0
rightIndent : 0
spaceBefore : 0
spaceAfter : 0
hyphenation : false
minimumHyphenatedWordSize : 6
minimumBeforeHyphen : 2
minimumAfterHyphen : 2
maximumConsecutiveHyphens : 0
hyphenationZone : 36
hyphenateCapitalizedWords : true
hyphenationPreference : 0.5
desiredWordSpacing : 100
maximumWordSpacing : 133.000004291534
minimumWordSpacing : 80.0000011920929
desiredLetterSpacing : 0
maximumLetterSpacing : 0
minimumLetterSpacing : 0
desiredGlyphScaling : 100
maximumGlyphScaling : 100
minimumGlyphScaling : 100
singleWordJustification : Justification.FULLJUSTIFY
autoLeadingAmount : 175
leadingType : AutoLeadingType.TOPTOTOP
tabStops :
romanHanging : false
bunriKinshi : true
burasagariType : BurasagariTypeEnum.None
kinsokuOrder : KinsokuOrderEnum.PUSHIN
kurikaeshiMojiShori : false
kinsoku : Hard
mojikumi : GyomatsuYakumonoHankaku
everyLineComposer : false
typename : TextRange
parent : [Story]
parent.textRange : [TextRange]
parent.textSelection : [TextRange]
parent.length : 6
parent.typename : Story
parent.parent : [Document 名称未設定-2]

う〜ん、きりがないのでこれぐらいにします。本当の所を知るには別のアプローチが必要なようです。

このtextRangeオブジェクトというのは「paragraph」「line」「word」「character」等テキストの範囲を表すオブジェクトを包含しています。textRage直下のコンテナという訳ではなく、等価であるという事です。逆に言うとparagraph等はテキストの範囲を示す程度の意味合いかと。同様にpathItemオブジェクトもrectangleやellipse等、pathItemsクラスのメソッドで生成できますが、生成後の属性はpathItemとなります。こういった事情が深く絡んでomv自体も舌ったらずな状態になっているのでしょうか。

Illustratorのscript制御はプロパティの調査から始まるといったところでしょうか。

最後に、スクロール長くてすみませんwww

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中