2006年06月02日

InDesignCS2でJavaScript表組

indesign_hyou.jpg

何なりできました(^^)。

//新規にドキュメントを作成する
pageObj = app.documents.add();
pageObj.documentPreferences.pageWidth="210mm";
pageObj.documentPreferences.pageHeight="297mm";

//テーブルを作成する
txtObj = pageObj.textFrames.add();
txtObj.visibleBounds = ["10mm","10mm","100mm","100mm"];
tblObj = txtObj.tables.add();

//表の行列(マス)を決める
tblObj.columnCount = 10; //よこ
tblObj.bodyRowCount = 7; //たて

//全セルの幅・高さを調整する
tblObj.width = "150mm"; //よこ
tblObj.height = "70mm"; //たて

//内容を入れる(1列目に全部同じものを入れる)
tblObj.columns[0].contents = "ABCDE";

//内容を入れる(1行目に全部同じものを入れる)
tblObj.rows[0].contents = "12345";

//内容を入れる(個別に入れる)
tblObj.rows[2].cells[5].contents = "ココ";

//罫線枠の太さ
tblObj.leftBorderStrokeWeight = "0.3pt";
tblObj.rightBorderStrokeWeight = "1pt";
tblObj.topBorderStrokeWeight = "2pt";
tblObj.bottomBorderStrokeWeight = "3pt";

//罫線枠の色
tblObj.leftBorderStrokeColor = "none";
tblObj.rightBorderStrokeColor = "none";

あとは、フォントの指定とか、背景色とか・・・。

投稿者 winternao : 22:28 | コメント (0) | トラックバック

2006年06月01日

久々にJavaScriptでInDesign

また仕事が立て込んできました(^^;)。

久々にJavaScriptでInDesignをコントロールしているのですが

//表組を作成する
txtObj = pageObj.textFrames.add();
txtObj.visibleBounds = ["10mm","10mm","100mm","100mm"];
tblObj = txtObj.tables.add();

うむ、確かに表は作れたぞ・・・。
で、4×4に勝手になるけど、コントロールの仕方は?

・・・またアドビフォーラムに頼りますか(汗)。

●アドビフォーラム
http://forums.adobe.co.jp

投稿者 winternao : 23:59 | コメント (0) | トラックバック

2006年02月24日

InDesignCS2でのフォント設定に注意

え~、今回のプログラム開発で
一番困ったのはフォント設定のところではないでしょうか。
実際の環境はInDesignCS2だったのに対し、
私の開発環境はInDesignCSだったので互換性に欠けるところがあるようです。
(あとでわかった)
フォント設定がうまく動かなかったときは、結構まっ青だったかも(^_^;)。

ちなみに本来は、これでもOKなはずなのですが、、、

MB101 = "A-OTF ゴシックMB101 Pro";
txtObj.contentType = ContentType.textType;
txtObj.contents = "私はたわし";
txtObj.paragraphs[0].appliedFont = app.fonts.item(MB101);
txtObj.paragraphs[0].fontStyle = "B";

これをInDesignCS2で実行すると、返されるエラーは日本語で言えば
「Bってなんじゃい(怒)」ってな感じでしたね(苦笑)。
ボールド系の指示のところで引っかかります。
ちなみに、「ゴシックMB101」というのはモリサワさんの書体の1つで
他にも「新ゴシック(新ゴ)」とか「リュウミン(明朝系)」の書体とか
さまざまあります。

で、困ったのでいろいろ調べたのですが、

MB101_B = "A-OTF ゴシックMB101 Pro B"; //ProとBの間はタブで
txtObj.contentType = ContentType.textType;
txtObj.contents = "私はたわし";
txtObj.paragraphs[0].appliedFont = app.fonts.item(MB101_B);

とすると、どうやらいけそうです(^^)。

//----- サンプルプログラム -----
//新規ドキュメントを起動
pageObj = app.documents.add();
pageObj.documentPreferences.pageWidth="210mm";
pageObj.documentPreferences.pageHeight="297mm";

//テキストフレームを作成
txtObj = pageObj.textFrames.add();
txtObj.visibleBounds = ["5cm","5cm","10cm","14cm"];
txtObj.contentType = ContentType.textType;

//テキストを入れる
MB101_B = "A-OTF ゴシックMB101 Pro B"; //ProとBの間はタブで
txtObj.contents = "私はたわし";
txtObj.paragraphs[0].appliedFont = app.fonts.item(MB101_B);
txtObj.paragraphs[0].pointSize = "24pt";

tawashi_text.jpg

投稿者 winternao : 08:23 | コメント (0) | トラックバック

2006年02月18日

InDesignをJavaScriptで制御(4)

ここへ来て、ようやく解決しました(^^)。
アドビフォーラムすごい!!
すごい「勘違い」を最後にかましていたようです。(笑)
LeadingModel・・・リファレンスなんぞに載っていないし(-_-;)

// 行送りの基準位置

//-- 欧文ベースライン--
txtObj.paragraphs[0].leadingModel = LeadingModel.leadingModelRoman;
//--仮想ボディの下/左--
txtObj.paragraphs[0].leadingModel = LeadingModel.leadingModelAkiAbove;
//--仮想ボディの上/右--
txtObj.paragraphs[0].leadingModel = LeadingModel.leadingModelAkiBelow;
//--仮想ボディの中央--
txtObj.paragraphs[0].leadingModel = LeadingModel.leadingModelCenter;

これで、苦しみに苦しんでいた問題が一掃したぜ!!

投稿者 winternao : 19:15 | コメント (0) | トラックバック

2006年02月14日

InDesignをJavaScriptで制御(3)

だいぶナゾが解けてきました(^^)。
メモ書きで残しておきます。
(何の内容か分からんよね~:汗)

//禁則処理(強い禁則)
txtObj.paragraphs[0].kinsokuSet = kinsokuSet.hardKinsoku;

//禁則処理(新規に「オリジナル禁則」を作成されている場合)
txtObj.paragraphs[0].kinsokuSet = "オリジナル禁則";

//文字組み空き量(行末約物半角)
txtObj.paragraphs[0].mojikumi = MojikumiTableDefaults.lineEndAllOneHalfEmEnum;

//文字組み空き量(約物全角・段落1字下げ/オリジナルも可)
for (i=0; docObj.mojikumiTables.length; i++) {
var mojikumiTableObj=docObj.mojikumiTables[i];
if (mojikumiTableObj.name == "約物全角・段落1字下げ") {
txtObj.paragraphs[0].mojikumi = mojikumiTableObj;
break;
}
}

//行送りの基準位置(仮想ボディの中央) ←CSでは動くけどCS2では動かない?
txtObj.paragraphs[0].characterAlignment = CharacterAlignment.alignEmCenter;

投稿者 winternao : 08:44 | コメント (2) | トラックバック

2006年02月09日

InDesignをJavaScriptで制御(2)

InDesignでの文字組版も、プログラムで細部まで制御するとなると
だいぶ限界まできました・・・(^^;)。

一応システムとしては、既に稼動しているのですが、
オペレーターくん達は、何を思うか「完璧」を求めやがるので
こっちもムキになって対応していたりして(笑)。

でもこの技術は、今後のDTP自動組版の標準になるのは
ほぼ間違い無いと思うので、昨晩も英語版のリファレンスを読みながらだったり
ゴソゴソ調べる毎日です。

でも思えば、例えば文字組版で「禁則処理」とか言っても
禁則処理は日本特有のものであり、
英語のリファレンスに載っているはずが無い!と思い、
ちゃちい日本語リファレンスを調べると、何とかきっかけが分かった(^^)。

今こんな状態です。

●アドビフォーラム
http://forums.adobe.co.jp/

ここに掲載しているけど、反応がなーい(涙)。

投稿者 winternao : 18:03 | コメント (0) | トラックバック

2006年01月27日

InDesignをJavaScriptで制御

久々の掲載です。
ほんまに忙しくて、昨日の帰宅も2:30でした。

とあるギフト会社のカタログ用に、
自動スペック生成のプログラムが本日より稼動しはじめました。
制作環境もMacOS9からMacOSXになり
(10.3と10.4が混在していて非常に怪しいですが)
InDesignCS2というDTPソフトに切り替わり、
その中でのプログラム作成でした。

基本的には動作はしますが、
マシンによっては画像の配置位置が変わったりと
不可解な現象が多いです(泣)。

●InDesignCS自動化作戦
http://www.openspc2.org/book/InDesignCS/

今回の事で、InDesignCS2上でのJavaScriptの不可解な部分は
このサイトや管理者(本の筆者でもある)の古籏様にも
メールでご教授いただいたりしました。
ネット環境があってこその「感謝」でした(^^)。
ありがとうございました。

投稿者 winternao : 21:30 | コメント (0) | トラックバック

2005年10月20日

InDesignCSで双方向実現にむけて

smart_catalog1.jpg
↑MS Accessで簡単にデータベース

smart_catalog2.jpg
↑ODBCにてデータベースと連携

smart_catalog3.jpg
↑SmartCatalogでレイアウトデータを更新

久々の更新です。(^^;)
先週、今週とタイトルの件でいろいろ試行錯誤しつつ悩んでました。

データベースの絡む印刷物で、
現在DBの双方向連携を検討しております。
どういったものかと一言でいえば、
レイアウト上(InDesign)から直しても、DB上(例えばAccess)から直しても
同期するというものです。

仮に、チラシなどを制作していて、
レイアウト上(InDesign上)で24,800円のものを25,800円に修正したら、
価格表(データベース内)も24,800円から25,800円に反映させることが可能

になってきます。

別にInDesignに限らなくとも、この手の「双方向」というものは
ここ5~6年、ずっとネタとなっていることなのですが、
実現できている印刷会社&制作会社は、おそらく「ほんの一握り」でしょう。

InDesignCS2も発売されて、
プラグインソフトで「Smart Catalog」なるものも発売されていて
実験してましたが、この仕組みも現実的には「一方通行」のみでした。
いわばDB⇒レイアウトができても、レイアウト⇒DBは、そう簡単にはいきません。
(※)現在「英語版」しか発売されておりません。私はそのデモ版での試用です。

やはりInDesignで装備されているXMLが、一番可能性があるような気がする今日この頃です。

投稿者 winternao : 17:45 | コメント (0)

2005年08月02日

悩めるソフトInDesign

最近、仕事でこのソフトに悩まされています・・・。
http://www.adobe.co.jp/products/indesign/main.html

AdobeのInDesignというのですが、
簡単に言えば、新しい印刷物・制作用のアプリケーションです。
8/10頃に確か「CS2」がリリースされるそうですが、私は「CS」を使ってます。

この中に「タグ機能」というものがあって、
その「タグ」は文字通り「文字列」です。
そのタグを解析して、システム的に書き出しが可能になれば
「システム」と「制作」とを連動できるという構想です。

例えば「システム」の中に入っているデータベース(表組)を
必要分だけシステム上で抽出し、
その抽出したデータを元に「タグ」を書き出します。
これを、あとは自動的に配置(Macintosh上ならAppleScriptかな)できれば
システム内のものをあっさり「印刷物」で表現できるという
優れもの(出来ればの話^^;)なのです。

昔から「自動組版」と呼ばれるものには数多く手を出しましたが、
今回もいろいろ四苦八苦しそうです(×_×;)

投稿者 winternao : 11:51 | コメント (0)