タグ

ブックマーク / www.milligramme.cc (38)

  • [indesign] Tableオブジェクトの挿入位置 | mg ☂.

    InDesignの表(Table)って少し変態的な存在で扱いに困る。 テキストストーリー内の Tableオブジェクトの位置を取得するのに “0×22″の箇所でアンカーされているので、これを findGrep() などで見つければいける。DOMの上から攻める場合。 逆に Tableオブジェクトから(DOMの下から攻めて)親の挿入点を取得するのどうするんだろうと思って TableObject.properties 眺めてたら storyOffset:resolve("/document[@id=1]//story[@id=235]/insertion-point[0]") ってあったので、InsertionPoint オブジェクト取得できるっぽい。 これで、一時的に表をどっかに退避してまたもどすのとか、表をアンカー付オブジェクトにぶち込むとかいろいろ出来そう。 ちなみに、 ふつうUnicod

    chalcedony_htn
    chalcedony_htn 2012/07/25
    tableオブジェクトから表の前の挿入点を取得できる。 / ストーリー内の表を見つけるときは0x22を検索すればおk
  • [InDesign]セル幅を内容に合わせる | milligramme 3cc

    Memo for ( ExtendScript + Script UI ) { InDesign, Illustrator } + Ruby { Web Service } InD_Board セル幅を内容に合わせる の補足。 セルの内容にあわせてセル幅を調整するというスクリプトです。 やってることは、コラムごとにテキストの頭とお尻の位置の差の最大値をセル幅にしてます。 セルの中身がないときとオーバーフローしているときには、この値を取得出来ずにエラーになるのを認識してたんですが面倒だったのでとりあえずポストしました。 表のオーバーフローの処理って、while(セルのオーバーフロー) がうまく認識されないので、親テキストフレームの.recompose()メソッドつかった強制認識的な処理をするのですが、前々からこの処理がイヤで、なんとかならないものかと思ってたのですが、いい案が思いついた

    chalcedony_htn
    chalcedony_htn 2011/08/05
    『オーバーフロー中無効になっている lines プロパティが有効になったところで処理を抜ける』
  • [InDesign]ScriptUIスライダーで波形みたいのを描く | diary NET. 1.2mg

    ScriptUIのパレット使用時にログ出力したいということで試していたら $.writeln() とかが使えなくて、alert()はうっとうしいし、File.write()で書出しも開いて確認するのが面倒なので、パレット間通信するスクリプトを作ったときの副産物。スライダーの移動量で棒グラフみたいな波形を生成します。 仕様 ドキュメントは開いていたらそれを、なければ新規作成します 実行するとメインパレットとログパレットが出ます Pitchは線の間隔を数値で入力(デフォルトは 1) スライダーをごにょごにょと動かすと、ログパレットに記録されます(最大値はドキュメントの幅) Create ボタンを押すとドキュメントに棒グラフみたいのができます(グループ化されてます) ログは Clear ボタンで消すまでどんどん追記されます メインパレットを閉じたらログパレットも一緒に閉じます ログは偽装可能

    chalcedony_htn
    chalcedony_htn 2011/04/14
    あとで調べる。onChanging
  • [InDesign]索引項目(索引マーカー)にカラーリング | diary NET. 1.2mg

    InDesignの索引項目に色付けメモ。多分こういうことだと。 マーカーはInsertionPointでしかないので、索引項目の文字数から範囲を指定して色づけしているだけ。 元ネタはここ /** * coloring topics for the index * */ var doc = app.documents[0]; var swatch_obj; var marker_name = "Marker"; try { swatch_obj = doc.colors.add({ model:ColorModel.PROCESS, space:ColorSpace.CMYK, colorValue:[100,0,50,0], name:marker_name}); } catch(e){ swatch_obj = doc.swatches.item(marker_name); } //

    chalcedony_htn
    chalcedony_htn 2011/03/09
    索引項目として登録している部分に色をつける。文字数を取得して範囲選択
  • [InDesign]スタイル属性付XMLをInDesignに読み込む | diary NET. 1.2mg

    先日の勉強会で @osimajp さんがデモしていた、InDesignのスタイル情報を含んだXMLの流し込みを忘れないうちにということで試してみました。 <p aid:pstyle=”段落スタイル名”> <p aid:cstyle=”文字スタイル名”> InDesignのスタイル属性は「aid:」はpとimage以外につけても無視されるで、段落文字スタイルは全てpにあてます。その外側をh1とかdescriptionとかspecとかのタグで包んであげるとInDesignの構造ビューで見やすくなるし、そこのタグをターゲットにスクリプトによる後処理もできるとのことです。 途中でtableとcellにスタイル割り当てられる「aid5:」(InDesign CS3から実装された機能だから)というのもあったのでついでに試してみました。 表に関しては、セルの結合や幅の指定もできるみたいなのですが、セル

    chalcedony_htn
    chalcedony_htn 2011/01/17
    『pとimageタグ以外につけても無視される』『その外側をh1とかdescriptionとかspecとかのタグで包んであげる(divタグみたく)とInDesignの構造ビューで見やすくなるし、そのタグをターゲットにスクリプトによる後処理もできる
  • [InDesign]合成フォント名で使用不可な文字 | diary NET. 1.2mg

    InDesignの合成フォントの命名メモです。 GUIで使っている限りでは不正なキャラクターを使っていたらエラーになります。 合成フォントなのに「&」が使えないなんて不便ですね。 というか、使えない文字があるなら最初から教えておいて欲しいものです。 そこで、キーボードに印字されている記号類で使えるかどうか試すスクリプトで確認してみると、見事にスルーしてしまい、不正なキャラクターでも合成フォントを作れてしまいました。 Scripting でうっかり混入すると変な爆弾を抱え込むということかもしれません。 var doc = app.documents[0]; var char_str = "~!@#$%^&*()_+`-={}[];\"\'<>,?/|\\ "; //dont use :[colon].[period] => Crash var char_arr = char_str.sp

    chalcedony_htn
    chalcedony_htn 2010/12/15
    GUIで設定できるものとスクリプトで設定できるものに違いがある。よくあることだけどコワイ / 使えない文字の一覧は記事の最後にまとまってる
  • [ExtendScript]条件分岐インクルードとバイナリjsxのインクルード | diary NET. 1.2mg

    支給スクリプト(例. supplied_script.js)に手を加えることなくパラサイトしたい。 普通、自分で書いたスクリプト(my_script.js)の中に #include "supplied_script.js" を挿入したらいい。 my_script.jsを実行時にsupplied_script.jsも実行してくれる、関数ならそれを実行すればいい。 でも、同じような内容のスクリプトがバージョンごとに(sup4.js, sup5.js, sup6.js, sup7.js)なんてなっていると、この内容ならバージョン分岐してくれよという場合もあったりするわけですが(CS用は別格として)、支給品にそんなことをいっても仕方がないので、がんばってバージョン分岐させた自分のスクリプトの中でインクルードのバージョン分岐をしてみようと、何も考えずにswitch〜case 式、if 式などで s

    chalcedony_htn
    chalcedony_htn 2010/12/13
    #includeをそのまま書くと全部読み込んでしまう。evalで評価すれば分岐可能。/.jsxbinは$.evalFileで
  • [InDesign]ScriptUIチェックボックスでパターン作成 | diary NET. 1.2mg

    副産物でできたスクリプト、InDesignで12 × 12ドット(var w, h で変更可能)のパターンを生成します。 実行すると、ダイアログウィンドウ上にランダムパターンがScriptUIチェックボックスで表現される 気に入らなければ「Shuffle」ボタンで再ランダマイズ 全部消したり埋めたりは「Clear」ボタン、押すごとに「Fill」ボタンとに切り替わります パターンの形状(丸形、四角形、多角形、線)をドロップダウンメニュー、サイズをスライダーで選択 「OK」ボタンで新規ドキュメントを作成してパターンのオブジェクトを生成 グループ化しておくので、ドキュメントからはみ出ても大丈夫のはず。 塗りと線の設定はしてないのでアプリケーションデフォルトの設定で生成されます。 w, hを設定するダイアログやプロンプトなどを前にかませせば、ドット数の調整がききます。 /** * create

    chalcedony_htn
    chalcedony_htn 2010/11/30
    どんなものの副産物でこれができるんだろうw
  • [InDesign]テキストを括弧でくくるScriptUIパレット | diary NET. 1.2mg

    TextMate を使っていると、テキスト「hoge」を選択した状態で「 ( 」を入力すると「 ( hoge ) 」とくくってくれるのが便利で、InDesignでそれ風のことを出来るようなパレットを作ってみました。 パレットなので、InDesignアプリのスクリプトパネルから実行してください。 挿入点以外のテキストが対象です。それ以外のオブジェクトにボタンが反応しません。 実行後の選択状態は2パターン、変数 after_touch で指定できます。 括弧でくくって、括弧含んだ選択にするか? (after_touch = 0) 括弧でくくって、終り括弧の後に挿入点をいれるか?(after_touch = 1) 括弧の種類は配列で増やしたりできます。それに対応するボタンの配置やコールバックも基コピペ複製で容易にできるようになってます。 あと仕様として、選択したテキストの最後の文字の

    chalcedony_htn
    chalcedony_htn 2010/11/22
    拡張すればカッコ以外にもいろいろ使えそうな
  • [ScriptUI]垂直プログレスバー、スライダーはMac版でしか動作しない | diary NET. 1.2mg

    以前にInDesign用のスクリプトのインターフェイスとして何度か使用していた、ScriptUIでの垂直プログレスバーとスライダーですが、これはMac版でしか動作しません、Windowsでは動作しないので注意が必要です。またプログレスバーに関してはMac版でもIllustratorとPhotoshopでは経過表示に問題があってうまく動作しません。 サンプル var win = new Window('dialog', "Verticals", undefined); var p0,p1,p2,p3,p4, s0,s1,s2,s3,s4; p0 = win.add('progressbar',[0,0,300,30], 0,100); win.group = win.add('group') p1 = win.group.add('progressbar',[0,0,30,120], 0,1

    chalcedony_htn
    chalcedony_htn 2010/11/22
    せっかくなのでWin + InDesign CS4のスクリーンショット貼っておきますね つ http://f.hatena.ne.jp/chalcedony_htn/20101122102634
  • [InDesign]フレームグリッドの作成メモ | diary NET. 1.2mg

    InDesignフレームグリッドをスクリプトで生成する必要があったのですが、はまったのでメモ。でもきっと既知だ。 CS3, CS4ではフレームグリッドの字間と行間はどんな単位に設定していようとも単位はポイントになる、またCS1,CS2では字間、行間に加えて文字サイズもポイントになる模様。 なので、環境設定で組版単位を「歯」に指定してても、スクリプトでは数値がポイントに置換されるので、それを座標値に使ってフレームグリッドの大きさに利用しようとするとおかしなことになってしまうのです。 あとCS4ではフレームグリッドをいい感じにサイズの調整をしてくれるので多少変換誤差があってもまるめてくれますが、CS3だとmm/pt変換の精度を上げてあげないと行数や行文字数が足りなくなっちゃう場合がありました。 きっと一度座標系と組版系の単位を全部ポイントにしてしまうのが幸せなのでしょうね。 字間と行間は

    chalcedony_htn
    chalcedony_htn 2010/11/18
    スクリプトいじってるといろんなところでポイント基準にぶち当たるから困る / ばくはつ……
  • [InDesign]グループ化せずにグループっぽく座標を取得 | diary NET. 1.2mg

    InD-baord 「選択したボックスをドキュメントサイズの左右センターに移動したい 」をみて、複数オブジェクトの全体の座標とか取るのにグループ化するの、レイヤー違ってたらまとめられちゃってイヤだなーと思ったのでちょっと試したメモ。(kanemuさんが似たようなことをしていたような気がするのだけど気のせいかな) そういえば、doc.veiwPreferences.rulerOrigin = RulerOrigin.PAGE_ORIGIN の見開きページで左ページオブジェクトが完全に右ページにいかない限り、●●Boundsはページ幅より大っきくなるんだ(ページ幅が210mmでも 右座標 = 250mmとかになる)、RulerOrigin.SPREAD_ORIGINにする必要は全然ないかも。よく考えてみたらあたりまえだ。 でも変形パネルだとPAGE_ORIGINのときは、ちゃんと座標が右ペー

    chalcedony_htn
    chalcedony_htn 2010/11/12
    選択したオブジェクトの座標をそれぞれ取得してソートする / viewPreferences.rulerOriginについて
  • [ScriptUI]ボタンが四角形になるしきい値 | diary NET. 1.2mg

    ScriptUIダイアログでボタンのサイズを定義しない(=undefined)と勝手にいい感じに調整してくれます。高さを大きくしていくとあるサイズを境に角丸ボタンから四角形に変わる(Mac OSXの場合)のですが、そのしきい値を知りたくてテストしてみましたのでそのメモ。 /** * button shape change test */ var dlg = new Window('dialog', "threshold of button shape" , undefined); dlg.panel = dlg.add('panel'); dlg.panel.add('button', undefined, "undefined"); for (var i=0; i 23pxから四角形に変わるようです。また22px以下では undefined と同じ(ドロップシャドー込みで22px、ボタ

    chalcedony_htn
    chalcedony_htn 2010/11/04
    MacOSXの場合、ScriptUIのbuttonの形状は要素の高さの値に依存する、らしい。『兄さん四角い顔』 / ちなみにWinXP+CS4だとこうなった→ http://f.hatena.ne.jp/chalcedony_htn/20101104135400
  • [InDesign]復帰させるメソッド revert() | diary NET. 1.2mg

    InDesign で自動処理の途中で一度「復帰」してリセットした後に、なにか別な処理を継続的にしたいときに、今まではドキュメントのファイルパスを記憶して閉じて、そのファイルパスのドキュメントを開いて再開していた。さっきちらっとDOMヘルプで調べものしてたら、CS3 から revert() なんて便利なものが追加されてる……知らなかった。 ふつうにapp.documents[0].revert() などと使うと、確認のダイアログがでますのでUserInteractionLevel で出ないようにしておくといいかも。 revert()での復帰の処理はこんな感じ // //なんか処理 //ドキュメントをいじり倒す app.scriptPreferences.userInteractionLevel = UserInteractionLevels.NEVER_INTERACT; var rvt

    chalcedony_htn
    chalcedony_htn 2010/10/25
    CS3から[復帰]がスクリプトで制御できるようになったらしい。CS2までで使うと固まるので注意とのこと。/ Document以外にも使えるかと思いきや、やっぱりダメだとか。できたら面白かったのにな……
  • Nope

    Nope

    chalcedony_htn
    chalcedony_htn 2010/09/04
    スクリプトのフィックスアップ手順。気をつけて使うものから他人が使えるものへの進化過程
  • Nope

    Nope

    chalcedony_htn
    chalcedony_htn 2010/07/25
    あとでちょっと調べる
  • Nope

    Nope

    chalcedony_htn
    chalcedony_htn 2010/07/23
    アンカー付きオブジェクトのマーカーがcharacterなのを利用して位置探索。コメント欄も見よ
  • Nope

    Nope

    chalcedony_htn
    chalcedony_htn 2010/07/15
    ScriptUIのダイアログで、タブでフィールド移動ができない現象とその回避方法について。
  • Nope

    Nope

    chalcedony_htn
    chalcedony_htn 2010/06/29
    『あるプロパティのBoolean値によって、あるプロパティの値の意味が違ったりします。』なんじゃあそりゃあ!! / 機能はCS2からあるのにあんまり使われてきてない。でもこれからきっと重要(『○○○○絡みで』)。
  • Nope

    Nope

    chalcedony_htn
    chalcedony_htn 2010/04/15
    基本段落はNo Thank / いろいろ危険な[基本段落]スタイルが適用されている段落を[段落スタイルなし]ベースに変更するスクリプト。各段落スタイルのベースになってる場合もなしにする。applyParagraphStyle()メソッドの使いどこ