[ 掲示板に戻る ]

過去ログ閲覧モード

中身は置き去り、ガワだけリサイズ / (z-) Email URL
InDesignCS3 のJavaScriptで質問です。
後にも先にもresize() の実装されていないのはCS3だけのようですが、
代替使用するべくマニュアルのtransform() の項を参照したのですが英語がさっぱりです。
選択したフレームを拡大する際、内容には拡大を反映させない書式はあるのでしょうか。
resize() だと PageItem.resize(200, 200, undefined, false, undefined)
など4番目の引数をfalseにする事で可能のようですが、transform()の場合はできるのでしょうか?

No.5428 2010/12/09(Thu) 12:57:17
Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10_4_11; ja-jp) AppleWebKit/533.19.4 (KHTML, like Gecko) Version/4.1.3 Safari/533.19.4

Re: 中身は置き去り、ガワだけリサイズ / せうぞー URL
transform()はInDesignの「オブジェクト」メニューの「変形...」にあたります。
この時、中身を置き去りにはできませんよね。ですからスクリプト的にもできないと思います。
フレームの大きさだけを変えたいのでしたらvisibleBoundsで不都合はありますか?

ちなみにtransformについては以前こちらにちょっとまとめたものがあります。ご参照ください。
「PageItemの変形 〜変形マトリクス(transformationMatrix)の基礎〜」
http://d.hatena.ne.jp/seuzo/20090804/1249311877

No.5430 2010/12/09(Thu) 14:56:16
Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_5; ja-jp) AppleWebKit/533.19.4 (KHTML, like Gecko) Version/5.0.3 Safari/533.19.4

Re: 中身は置き去り、ガワだけリサイズ / (z-) Email URL
せうぞーさん、ありがとうございます。
ご紹介の記事はエントリ当時に拝見しており今回の投稿前にも再読させてもらいましたが、記事タイトルの通り基礎的な事だけに留めてあるのかと思い、その気になればできるのかも、と思いまして。
確かにメニューの「変形」では無理ですね…納得しました。

現状はgeometricBoundsの再定義でしのいでますが、回転のかかっているオブジェクトの場合サインだのコサインだの計算してみても回転なしの物と比べてオブジェクトサイズに誤差が出る事があったり、一旦水平にして変形後に元の回転を与えて済ますと取り消し回数(undoHistory)がかさんでしまって、やべ、もどそ、という時けっこう混乱しがちなので(自分だけですが)、この機に模索してみようと思った次第です。

一時的にスクリプトのバージョンをCS2に落とせばresize()が使えるのですが、一度のresize()でも中身をそのままにした場合は取り消しが2回になります。一度まとめて変形してから中身だけ戻しているようです。
CS4以降にはreframe()という専用のメソッドがあるようですね。。

No.5432 2010/12/09(Thu) 17:20:39
Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10_4_11; ja-jp) AppleWebKit/533.19.4 (KHTML, like Gecko) Version/4.1.3 Safari/533.19.4
下層にある複数のオブジェクトを選択するには / PK
上層のオブジェクトが大きすぎて、下層にあるオブジェクトが選択できない。
とりあえず1つを選択する方法は解ったが、2つ以上だとどうすればいいんかね?

No.5423 2010/12/07(Tue) 20:12:10
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.5.30729; .NET CLR 3.0.30729; AskTbGLSV5/5.9.1.14019)

Re: 下層にある複数のオブジェクトを選択するには / こに
上層のオブジェクトと下層のオブジェクトがそれぞれ別のレイヤーに配置されているならば、上層のレイヤーを非表示にして下層のオブジェクトを複数選択すればいいと思いますが、いかがでしょうか?
No.5429 2010/12/09(Thu) 13:39:39
Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10_4_11; ja-jp) AppleWebKit/533.19.4 (KHTML, like Gecko) Version/4.1.3 Safari/533.19.4
特定のマシンでの下線のズレについて / shishi
はじめまして。
不具合が起きましたので、もしご存じの方がいらっしゃいましたら、ご教授願います。
win7 InDesign CS4 6.06
年に1度来る仕事を他の方から引き継ぎ、
訂正箇所がなかったので、
そのまま出力したところ、
下線がズレていました。
OTFとTTの混在したテキストを下線設定のオフセットで調整して下線を引いていたようなのですが、その方のマシンで開くとまっすぐな直線なのですが、他のマシンで開くと(winもmacも)ズレるようです。
どこの設定がそうさせているのでしょうか?

No.5379 2010/12/02(Thu) 15:06:25
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; GTB6.6; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; Media Center PC 5.1; SLCC1; .NET4.0C)

Re: 特定のマシンでの下線のズレについて / works014 URL
文字揃えの設定が何らかの理由によって異なっていませんか? 
フォントによって変更してあるなら仮想ボディ基準の設定に……。
尚、文字揃えを欧文ベースラインにした場合はオフセットの値は共通で揃うと考えられます。
拙ブログへの誘導で恐縮ですが
「打ち消し線と下線の基準位置など」http://d.hatena.ne.jp/works014/20101115

No.5384 2010/12/03(Fri) 09:19:11
Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10.5; ja-JP-mac; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12

Re: 特定のマシンでの下線のズレについて / shishi
works014様
遅くなって申し分けありません。
お返事ありがとうございます。
文字揃えを確認したところ、全て「仮想ボディの中央」になっていました。
教えていただいた通り、「欧文ベースライン」にしたところ、私のマシンでもその方のマシンでも下線が揃いました。(ただ、文字と下線の間隔は違っていました。)
問題のほうですが、原因はわからず…
OTFの下線はズレなく一緒のようでしたが、TTは、問題のマシンは他のマシンと比べて下線が上がっているようなのです。
なので、欧文ベースラインにした時も文字と下線の間隔が違っているようなのです。(TTのみ)
いま持ってる仕事のほうは、欧文ベースラインで揃えて出力したいと思います。
ありがとうございました。

No.5403 2010/12/06(Mon) 11:37:03
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; GTB6.6; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; Media Center PC 5.1; SLCC1; .NET4.0C)

Re: 特定のマシンでの下線のズレについて / rosan
問題のTTの名前を教えて頂くことは可能でしょうか?
可能性として
(1)書体のバージョンが違う
(2)同一名称だが実は異なるフォント
ということも考えられるかと思いまして。

以前うちで遭遇した(2)の例として、
ダイナフォントの「DF/DFP/DFG行書体」と一太郎等に付属の
「DF/DHP行書体」があります。
この両者のプロポーショナルではない書体は「DF行書体」となりますが、
ベースラインが異なるようです。

このことから、「DF行書体」というフォント指定があっても、
DF/DFP/DFGの「DF行書体」が使われている環境と
DF/DHPの「DF行書体」が使われている環境ではベースラインが
揃いません(それに伴い当然下線も)。

今回の例には当てはまらないかもしれませんが、こういうことも
あったよということで。

#一太郎には、「DF/DFP/DFG」とバッティングする「DHP」の書体が
#他にも何種類か付属しています。
#一太郎とダイナフォントのTTを使っている時には注意して下さい。
#でも今なら、ダイナフォントはOTFを使っているところがほとんどなのかな。

No.5410 2010/12/07(Tue) 12:30:06
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; Lunascape 6.3.3.22929)

Re: 特定のマシンでの下線のズレについて / shishi
rosan様

お返事ありがとうございます。
そして、解決いたしました!
どうやら、(1)だったようです。
調べたところ、問題が起こるのはそのフォントのみでしたので、
フォントのプロパティをチェックしました(バージョンは見忘れてしまいました;)
作成日時が違っていたので、削除してインストールし直したところ、
他のマシンと同じ下線位置になりました。
どうしてそのマシンだけだったのかはわかりませんが、
問題は解決いたしました。
他の引き継いだ仕事がきたときはそのフォントに気をつけたいと思います。
ちなみに、問題のフォントはrosan様がおっしゃられたダイナフォントのTTでした。
ありがとうございました。

No.5413 2010/12/07(Tue) 15:42:40
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; GTB6.6; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; Media Center PC 5.1; SLCC1; .NET4.0C)

Re: 特定のマシンでの下線のズレについて / shishi
続けて失礼いたします。
行書体ではなく、特太ゴシックでした。
スミマセン;

No.5414 2010/12/07(Tue) 15:46:37
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; GTB6.6; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; Media Center PC 5.1; SLCC1; .NET4.0C)
タグ付きテキストと表組とページについて / taka
OS:Windows7 , アプリ:InDesignCS3 , 言語:JavaScriptです。
質問ばかりで、申し訳ないのですが、
またJavaScriptでの自動組版について、教えていただきたいことがあるのですが、過去記事でも表組ではないですが、複数ページに渡って処理を行うプログラムがあり、それも参考にして行ってみたのですが、行き詰ってしまいました。

// あらかじめ表を作成し行数と列数を必要な数だけ設定すること
(function(){
var TAB = String.fromCharCode(9);
if (app.documents.length < 1) {
alert("あらかじめドキュメントを開いてから実行してください");
return;
}
var fileObj = File.openDialog("タブ区切りファイルを選択してください");
if (fileObj == null) return; //キャンセルボタンが押されたときは処理しない
var flag = fileObj.open("r");
if (flag == false) {
alert("タブ区切りファイルが開けません");
return; //ファイルが開けなかったので以後の処理を中止する
}

var pageNo = parseInt(prompt("割り付ける開始ページを指定してください",1))-1;
if ((pageNo < 0) || (pageNo > app.activeDocument.pages.length-1)){
alert("割り付けるページは存在しません");
return;
}
app.activeWindow.activePage = app.activeDocument.pages[pageNo];

var tfNo = parseInt(prompt("割り付けるテキストフレームを指定してください",""));
var pageObj = app.activeDocument.pages[pageNo];
pageObj.textFrames[tfNo].select();

{
tableObj = app.selection[0];//自動レイアウトする項目の先頭番号

var i = parseInt(prompt("iの値を入力してください",""));
var count = 0;
var No = 0;
while(fileObj.eof == false){ //ファイルの終わりになるまで繰り返す
text = fileObj.readln(); //一行読み込む
while(true){ //無限ループ(breakで抜ける)
if(pageNo > 2) break; //終了ページを越えていたら無限ループから抜ける
var tfObj = app.activeDocument.pages[pageNo].groups; //
//if (itemData[0] == "○"){ //掲載フラグがある場合だけ処理を行う
var checkFlag = checkTextFrame(tfObj, "buhin"+No);
//if (checkFlag == false) break;
if (checkFlag) break;
else{
pageNo++; //pageNo = pageNo + 1と同じ(次のページへ)
}
}
var itemData = text.split(TAB); //タブコードで区切って配列に入れる

while(itemData.length){
for (j=0; j<i; j++){
var contentsObj=itemData.shift();
tableObj.tables[0].columns[count].cells[j].contents = contentsObj;
}
count++;
}
}
}
})();

//割り付けるべきテキストフレームがあるかどうか調べる。あればtrueを返しなければfalseを返す
function checkTextFrame(tfObj, tfLabel){
for ( var i=0; i<tfObj.length; i++){
if(tfObj[i].label == tfLabel) return true;
}
return false;
}

今回行き詰ってしまった箇所は、
あらかじめ、複数のページに、0番目のテキストフレームの表組と1番目のテキストフレームの表組を作っておきます。
そして、スクリプトを起動すると、
タグ付きテキストを選ぶ処理をする→
次に、開始するページを選ぶ→
どのテキストフレームに張り付けるか選ぶ→
表のi行目まで行くと持ち越して次の列に行くようにする。
となっているのですが、これを、例えば、2ページ目のテキストフレーム[0]にタグ付きテキスト1行目にし、3ページ目のテキストフレーム[0]にタグ付きテキスト2行目にすることは可能なのでしょうか。

var text = fileObj.readln();をfor文でかめばいけるかと思ってたんですが、うまいこと行かなく、行き詰ってしまいました。
どうかよろしくお願いします。

No.5394 2010/12/04(Sat) 16:34:25
Mozilla/5.0 (Windows; U; Windows NT 6.1; ja; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12

Re: タグ付きテキストと表組とページについて / (z-) Email URL
>あらかじめ、複数のページに、0番目のテキストフレームの表組と1番目のテキストフレームの表組を作っておきます。
 構文内で分岐に使われているグループオブジェクトやスクリプトラベルについてここでは記載がありませんが、どうなっていますか?
takaさんのお手元のテスト用ドキュメント内にはラベルつきのグループオブジェクトがあるんでしょうか?

できれば毎回、正常に動作した結果の想像図をでっち上げた画像を添付できますか? 画像を提示される際は、成功予想図または失敗した時の状態、どちらか片方だけでもあるとわかりやすいです。

思った通りの動作をしないスクリプトについては、なるべくどこでどうおかしくなるか教えて下さい。エラーメッセージの内容、ループから抜けられない、動くけど狙った通りでない、なんかわかんないけどずっと動いてる、などです。
中には調べもせずコードを試してみて強制終了するまでループ地獄を味わうウカツな奴もいますから(自分ですw)

まだいろいろ不明瞭なのでなんとも言えませんが、
columnsの番目を指定するcountに上限がないです。
それと、if (checkFlag) break; でループを抜けた後って pageNo++; しなくていいんですかね。

No.5398 2010/12/05(Sun) 04:05:06
Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_5; ja-jp) AppleWebKit/533.19.4 (KHTML, like Gecko) Version/5.0.3 Safari/533.19.4

Re: タグ付きテキストと表組とページについて / taka
すいません、(z-)様、返答が遅れました。
少し、説明の仕方が雑になり甘かったので、一度、整理して、もう一度、書きなおしますので、その際は、よろしくお願いします。

No.5399 2010/12/06(Mon) 00:01:39
Mozilla/5.0 (Windows; U; Windows NT 6.0; ja; rv:1.9.1.15) Gecko/20101026 Firefox/3.5.15 ( .NET CLR 3.5.30729; .NET4.0E)

Re: タグ付きテキストと表組とページについて / taka
>>できれば毎回、正常に動作した結果の想像図をでっち上げた画像を添付できますか? 画像を提示される際は、成功予想図または失敗した時の状態、どちらか片方だけでもあるとわかりやすいです。

完成予想図を描きましたので、それを参照してもらいたいのですが、言っていることが違ってたらすいません。

// あらかじめ表を作成し行数と列数を必要な数だけ設定すること
(function(){
var TAB = String.fromCharCode(9);
if (app.documents.length < 1) {
alert("あらかじめドキュメントを開いてから実行してください");
return;
}
var fileObj = File.openDialog("タブ区切りファイルを選択してください");
if (fileObj == null) return; //キャンセルボタンが押されたときは処理しない
var flag = fileObj.open("r");
if (flag == false) {
alert("タブ区切りファイルが開けません");
return; //ファイルが開けなかったので以後の処理を中止する
}

var pageNo = parseInt(prompt("割り付ける開始ページを指定してください",1))-1;
if ((pageNo < 0) || (pageNo > app.activeDocument.pages.length-1)){
alert("割り付けるページは存在しません");
return;
}

var tfSubNo = parseInt(prompt("割り付けるテキストフレームを指定してください",""));

{

var i = parseInt(prompt("iの値を入力してください",""));
var count = 0;
var No = 1;
while(fileObj.eof == false){ //ファイルの終わりになるまで繰り返す
text = fileObj.readln(); //一行読み込む
var itemData = text.split(TAB); //タブコードで区切って配列に入れる
while(true){ //無限ループ(breakで抜ける)
if(pageNo > 2) break; //終了ページを越えていたら無限ループから抜ける
var grObj = app.activeDocument.pages[pageNo].groups;
var checkFlag = checkTextFrame(grObj, "item"+No);
if (checkFlag) break;
else{
pageNo++; //次のページへ
}
}
if (pageNo > 2) break; //終了ページを越えていたらwhileループから抜ける
try { var tfSubObj = grObj.item("item"+No).textFrames; }catch(e){}


while(itemData.length){
for (j=0; j<i; j++)
if(tfSubNo == 1){
var contentsObj=itemData.shift();
tfSubObj.item("sample").tables[0].columns[count].cells[j].contents = contentsObj;
}else if (tfSubNo == 2){
var contentsObj=itemData.shift();
tfSubObj.item("test").tables[0].columns[count].cells[j].contents = contentsObj;
}
count++;
No = No+1;
}
}
}
})();

//割り付けるべきテキストフレームがあるかどうか調べる。あればtrueを返しなければfalseを返す
function checkTextFrame(grObj, tfLabel){
for ( var x=0; x<grObj.length; x++){
if(grObj[x].label == tfLabel) return true;
}
return false;
}

処理結果なんですが、sample.txt(タブ区切り)を選択してあげると1ページ目のスクリプトラベル"sample"にタブ区切り1行目が張り付いてくれますが、2ページ目、3ページ目と反映してくれません。エラーは、起こっていません。

countの上限はNo = No + 1;でやってみたのですが、
1行だけ読んで処理が終わっているので、
もうちょっと違うやり方を試したいのですが、思いつかない状態です、、、どうか、知恵を貸してください。
お願いします。

No.5405 2010/12/06(Mon) 15:08:33
Mozilla/5.0 (Windows; U; Windows NT 6.1; ja; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12

Re: タグ付きテキストと表組とページについて / (z-) Email URL
count++;
No = No+1;  のすぐ下に
alert("count="+count+"\nNo="+No);

と1行入れてみて、挙動を確認してみてください。
1ページ目の5行目まで入れたところでNoは5まで増えてませんでしょうか。

count++;
No = No+1;
}



count++;
}
No = No+1;

としてみるとかですかね。

No.5406 2010/12/06(Mon) 16:14:18
Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10_4_11; ja-jp) AppleWebKit/533.19.4 (KHTML, like Gecko) Version/4.1.3 Safari/533.19.4

Re: タグ付きテキストと表組とページについて / taka
(z-)様、ご返答ありがとうございます。

処理してみたところ、上下ともにNo=5は処理されずに終了してしまう感じになってます。

No.5407 2010/12/06(Mon) 17:01:15
Mozilla/5.0 (Windows; U; Windows NT 6.1; ja; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12

Re: タグ付きテキストと表組とページについて / (z-) Email URL
変数Noが何のために定義してあるのか、どの段階で+1されればいいのか、
countの上限はcolmns.lengthと比較して然り、
みたいな事をふまえ

count++;
if(count==tfSubObj.item("test").tables[0].columns.length-1){count=0; No++;break;}
}
}
}
})();

No.5408 2010/12/06(Mon) 17:36:16
Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10_4_11; ja-jp) AppleWebKit/533.19.4 (KHTML, like Gecko) Version/4.1.3 Safari/533.19.4

Re: タグ付きテキストと表組とページについて / taka
(z-)様、ご返答ありがとうございます。

処理結果として、うまいこと、2ページ目と反映されていました。
ただ、私自身は、なんとなくでしか理解していないので、これから、分析に参ろうかと思います!!!

本当にありがとうございました。

No.5409 2010/12/06(Mon) 18:26:40
Mozilla/5.0 (Windows; U; Windows NT 6.1; ja; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12
javascriptでライブラリ / あか Email
いつもお世話になってます。
OSX(10.4.11)、InDesignCS3で、
javascriptでライブラリに登録されたオブジェクトを配置して、
移動させたり、色変えたりしたいと思っています。
hoge.indlというライブラリに一つのオブジェクトがあったとして、
以下を実行すると、

var myLib = app.libraries.item("hoge.indl");
var myItem = myLib.assets[0].placeAsset(app.activeDocument)[0];
myItem.geometricBounds = [10,10,15,15];

何も選択していない状態だと、配置されたオブジェクトのgeometricBoundsが変更されますが、
何かを選択した状態だと、選択されたオブジェクトのgeometricBoundsが変更されます。

何かを選択していても、配置されたオブジェクトのgeometricBoundsを変更することは可能でしょうか?

No.5393 2010/12/04(Sat) 16:33:58
Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; ja-JP-mac; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12 YTB730

Re: javascriptでライブラリ / あか Email
自己レスですが、

var mysel = app.activeDocument.selection[0];
var myLib = app.libraries.item("hoge.indl");
mysel.select(SelectionOptions.removeFrom);
var myItem = myLib.assets[0].placeAsset(app.activeDocument)[0];
myItem.geometricBounds = [10,10,15,15];
app.selection = mysel;

選択を外したらできました。
複数選択してたら…

No.5395 2010/12/04(Sat) 16:54:48
Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; ja-JP-mac; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12 YTB730

Re: javascriptでライブラリ / (z-) Email URL
app.activeDocument.selection=null;

で、ヌルッと解除できますぞ

No.5396 2010/12/04(Sat) 23:57:31
Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_5; ja-jp) AppleWebKit/533.19.4 (KHTML, like Gecko) Version/5.0.3 Safari/533.19.4

Re: javascriptでライブラリ / あか Email
(z-)さん、ありがとうございます。

いいですね。ヌルッ解除。
知らなかったです。

なんだか、配置したときは配置したオブジェクトか、
せめて配置されたものを返して欲しいんですが…
何のために選択してるものを返すのか…
よくわからんです。

No.5400 2010/12/06(Mon) 08:26:41
Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; ja-JP-mac; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12 YTB730

Re: javascriptでライブラリ / お〜まち URL
CS3とCS5(いずれもWin)で試してみました。
CS3では選択しているオブジェクトのgeometricBoundsが変更されます。
CS5では配置したオブジェクトのgeometricBoundsが変更されます。

ということでCS3のバグですね。CS4は手元にないのでわかりませんです。

No.5401 2010/12/06(Mon) 09:38:33
Opera/9.80 (Windows NT 6.1; U; ja) Presto/2.6.30 Version/10.63

Re: javascriptでライブラリ / mg URL
CSとCS4は
配置オブジェクトのgeometricBoundsが変更されます。

CS2とCS3は
選択しているオブジェクトのgeometricBoundsを返します。

環境はOSX 10.6.5で試しました。

No.5402 2010/12/06(Mon) 11:23:32
Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12

Re: javascriptでライブラリ / あか Email
お〜まちさん、mgさん検証ありがとうございます。

バージョンによってバラバラしてると、
将来バージョン変えた時に不安がいっぱいです。

今の所CS3でやってるんで、
とりあえずは選択解除で頑張ります。

No.5404 2010/12/06(Mon) 12:26:02
Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; ja-JP-mac; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12 YTB730
表組について / taka
はじめまして、最近、InDesignとJavaScriptの勉強をしているのですが、タブ区切りテキストと表組についての質問をさせてもらいます。

こちらの環境は、OS:Windows7,アプリ:InDesignCS3,言語:JavaScriptとなっているのですが、

文章での質問では、何を言いたいかわかりずらいと思いますので、画像を参照してもらいたいのですが、

// あらかじめ表を作成し行数と列数を必要な数だけ設定すること
(function(){
var TAB = String.fromCharCode(9);
if (app.documents.length < 1) {
alert("あらかじめドキュメントを開いてから実行してください");
return;
}
var fileObj = File.openDialog("タブ区切りファイルを選択してください");
if (fileObj == null) return; //キャンセルボタンが押されたときは処理しない
var flag = fileObj.open("r");
if (flag == false) {
alert("タブ区切りファイルが開けません");
return; //ファイルが開けなかったので以後の処理を中止する
}
{
pageObj = app.selection[0];//自動レイアウトする項目の先頭番号
var count = 0;
while(fileObj.eof == false){ //ファイルの終わりになるまで繰り返す
text = fileObj.readln(); //一行読み込む
var itemData = text.split(TAB); //タブコードで区切って配列に入れる
for (i=0; i<itemData.length; i++){ // 項目数繰り返す

pageObj.tables[0].columns[count].cells[i].contents = itemData[i];

}
count++;
}
}
})();

色んなサイト、本を参考にさせてもらい、
上記のスクリプトを起動させると画像の上記の結果になるのですが、真ん中にあるような、タブ区切りテキストを、
下記のようにすることは可能でしょうか。

else if文でiの部分をif(i == 1)などで、命令を加えても、
思っているような結果にならなく、こちらに質問させていただきました。

どうか、よろしくお願いいたします。

No.5374 2010/12/02(Thu) 11:19:14
Mozilla/5.0 (Windows; U; Windows NT 6.1; ja; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12

Re: 表組について / (z-) Email URL
表の2行目まで入れたら次の列に持ち越したい、ということでしたら、
for文の i をcellsに使い回しせずに

for (i=0; i<itemData.length; i++){
for (j=0; j<2; j++){
pageObj.tables[0].columns[count].cells[j].contents = itemData[i];
}
count++;
}

とかでいけませんかね

No.5375 2010/12/02(Thu) 12:39:59
Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10_4_11; ja-jp) AppleWebKit/533.19.4 (KHTML, like Gecko) Version/4.1.3 Safari/533.19.4

Re: 表組について / taka
(z-)様、返信ありがとうございます。

(z-)様の方法で、cellsとitemDataでiの使い回しをしないでcellsをj、itemDataをiにしてみたのですが、

次の列に持ち越しせずに、
あいうえお→あいうえお→かきくけこ→かきくけこ→さしすせそ→さしすせそ→たちつてと→たちつてと、と処理が行われ、次の列に移行し、なにぬねの→なにぬねのと、繰り返され、最終的に画像のような結果になってしまいました。

No.5376 2010/12/02(Thu) 13:31:10
Mozilla/5.0 (Windows; U; Windows NT 6.1; ja; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12

Re: 表組について / (z-) Email URL
あ〜、あぁ。以下に訂正で。失礼おば。

var itemData = text.split(TAB); //タブコードで区切って配列に入れる
while(itemData.length){
for (j=0; j<2; j++){
var contentsObj=itemData.shift();
pageObj.tables[0].columns[count].cells[j].contents = contentsObj;
}
count++;
}
}
}
})();

No.5377 2010/12/02(Thu) 13:52:35
Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10_4_11; ja-jp) AppleWebKit/533.19.4 (KHTML, like Gecko) Version/4.1.3 Safari/533.19.4

Re: 表組について / taka
(z-)様、早い返信ありがとうございます。

上記のやり方を試したところ、うまい具合に処理ができました。
.shift();で、配列の最初の要素から値を削除して、繰り返しを行えば良かったんですね。とても、参考になりました。

これを少し改良すれば、scanfみたいなので、繰り返し回数を決めて処理するのは可能でしょうか。質問ばかりで、申し訳ないです。

No.5380 2010/12/02(Thu) 16:42:26
Mozilla/5.0 (Windows; U; Windows NT 6.1; ja; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12

Re: 表組について / (z-) Email URL
scanf、ケツがエフだから大方Cか?と思いぐぐってきました。ユーザからの入力を受ける命令のようですね。知りませんけど "^;
BASICでいうところのinkey$とimput$どちらに相当するかまではチラ見ではわかりませんでしたが、
JavaScriptではprompt()が妥当ではないでしょうか。
ちょっと、任意の回数ぶん「何を」繰り返したいのか文面から読み取れませんでしたが、

var obj=prompt("繰り返し回数を入力してください", "1", "Harou Waarudo");
if(obj==null){ exit();}
if(obj.match(/[^0-9]/)){ exit();}
if(eval(obj)==0){ exit();}

とかで得た数値を、繰り返したい「何か」に使ってみてはいかがでしょうか。
この機会にぜひお勉強してみて下さい。

No.5381 2010/12/02(Thu) 17:34:16
Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10_4_11; ja-jp) AppleWebKit/533.19.4 (KHTML, like Gecko) Version/4.1.3 Safari/533.19.4

Re: 表組について / taka
(z-)様、へんしんありがとうございます。

かなり文章下手で申し訳ございませんでした。
scanfはCの書式付き入力関数です。
こちらも、色々ググって探して、自己解決してしまいましたが、言いたかったことは、j<2の繰り返し回数を、j<aか何かにしておき、スクリプトを起動したときに、タグ付き.txtを選択→aの数字を入力してくださいみたいな感じにしたかったのですが、
a=prompt("Aの値を入力してください","");
とj<2をj<aで普通に解決してしまいました。
(z-)様には、かなりお手数をおかけしました。
本当にありがとうございます。
JavaScriptの根本的なところから、もう少し勉強してみたいと思います。
また、お世話になるとは思いますが、どうかよろしくお願いいたします。

No.5382 2010/12/02(Thu) 18:24:55
Mozilla/5.0 (Windows; U; Windows NT 6.1; ja; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12
写真アルバム作成について / TOMO
少々疑問が・・・
バックアップコピーをとりたいのですが

ほとんど写真のアルバムで、しかも
写真の色直しの為JPEGでは無くPSD画像がリンクされています。
データ容量がDVDの容量を超えているのですが、どうやって外部へ保存すれば良いのでしょうか?

No.5369 2010/11/30(Tue) 22:13:00
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.5.30729; .NET CLR 3.0.30729; AskTbGLSV5/5.9.1.14019)

Re: 写真アルバム作成について / (-_-メ)
InDesignとは何の関係もないけど……。

外付けHDDでいいんじゃないんですかね。
USBから電力供給される、アダプタ要らずのポータブルタイプがありますよ。

DVDなんてなかった時代は、HDDで納品なんてこともありました。

No.5370 2010/12/01(Wed) 00:42:08
Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_5; ja-jp) AppleWebKit/533.19.4 (KHTML, like Gecko) Version/5.0.3 Safari/533.19.4

Re: 写真アルバム作成について / TOMO
いや、基本的にインデザイン使ってる方の意見聞くのが何よりかと思いまして
もっとデータ容量の低い方法で作成出来たりするものですか?

No.5371 2010/12/01(Wed) 00:54:36
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.5.30729; .NET CLR 3.0.30729; AskTbGLSV5/5.9.1.14019)

Re: 写真アルバム作成について / chata
バックアップでDVDはおすすめしませんが…。

データ退避のことなら…
保存し直すリスクや手間を考えると、DVD2枚でいいんじゃないですか。

No.5372 2010/12/01(Wed) 10:03:59
Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12 ( .NET CLR 3.5.30729)

Re: 写真アルバム作成について / (z-) Email URL
DVDでもDL(ダブルレイヤー)もありますし、もうじきBDも一般化するかと思います。
これほどの大容量だと最後まで無事に焼けるか気が気じゃない気もしますけど。

大きめのUSBメモリとか。

No.5373 2010/12/01(Wed) 12:08:51
Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10_4_11; ja-jp) AppleWebKit/533.19.4 (KHTML, like Gecko) Version/4.1.3 Safari/533.19.4
全2100件 [ ページ : << 1 ... 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 ... 300 >> ]