リンクの更新で倍率が変わってしまう
[7591]リンクの更新で倍率が変わってしまう 投稿者:あお 投稿日:2005/11/09(Wed) 21:00
はじめまして。質問させてください。
CS3.01のリンクパレットでで「リンクを更新」すると、拡大縮小倍率が勝手に変わってしまいます。
本来、倍率等の属性は変わらないで更新されるはずですよね?
大量の画像を差し替えるときに重宝していて、数日前までは問題なく使えてました。思い当たる原因もこれといってありません。
同様の経験をされた方、なにかヒントをご存じの方、教えていただけると嬉しいです。
CS3.01のリンクパレットでで「リンクを更新」すると、拡大縮小倍率が勝手に変わってしまいます。
本来、倍率等の属性は変わらないで更新されるはずですよね?
大量の画像を差し替えるときに重宝していて、数日前までは問題なく使えてました。思い当たる原因もこれといってありません。
同様の経験をされた方、なにかヒントをご存じの方、教えていただけると嬉しいです。
» 1
» 2
» 5
» 6
» 11
» 12
[7591へのレス]Re: リンクの更新で倍率が変わってしまう 投稿者:YUJI 投稿日:2005/11/11(Fri) 22:03
うちではなったことがないです。
画像のカンバスサイズを変更したわけではないですよね?
画像のカンバスサイズを変更したわけではないですよね?
[7591へのレス]Re: リンクの更新で倍率が変わってしまう 投稿者:あお 投稿日:2005/11/14(Mon) 16:53
» 3
[7591へのレス]Re: リンクの更新で倍率が変わってしまう 投稿者:流星 投稿日:2005/11/15(Tue) 20:56
» 4
[7591へのレス]Re: リンクの更新で倍率が変わってしまう 投稿者:あお 投稿日:2005/11/16(Wed) 20:24
流星さん、ありがとうございます。
まさにおっしゃるとおりの現象です。
InDesign上で倍率を指定しても、
「リンクの更新」をすると、
画像の寸法にあわせて更新されてしまいます。
はて、仕様(の変更)なんでしょうか???
指定した倍率の方を活かしたまま更新が行われていた
旧バージョンのような動作をさせる方法って
ないんでしょうかね。
引き続き、みなさんのお知恵をお借りできれば嬉しいです。
まさにおっしゃるとおりの現象です。
InDesign上で倍率を指定しても、
「リンクの更新」をすると、
画像の寸法にあわせて更新されてしまいます。
はて、仕様(の変更)なんでしょうか???
指定した倍率の方を活かしたまま更新が行われていた
旧バージョンのような動作をさせる方法って
ないんでしょうかね。
引き続き、みなさんのお知恵をお借りできれば嬉しいです。
[7591へのレス]Re: リンクの更新で倍率が変わってしまう 投稿者:流星 投稿日:2005/11/16(Wed) 23:21
Winならスクリプトで対処できました。
どなたか詳しい方、JSコンバート
m( _ _ )m m( _ _ )m m( _ _ )m
'――――――――――――――――――――――――――――――――
Set MyInDesign = CreateObject("InDesign.Application.CS")
'更新前の値を取得
YOKO = MyInDesign.Selection(1).Images(1).AbsoluteHorizontalScale
TATE = MyInDesign.Selection(1).Images(1).AbsoluteVerticalScale
'検索用IDを取得
MYID = MyInDesign.Selection(1).Images(1).ItemLink.Id
'取得したIDで検索
For Each IDFIND In MyInDesign.ActiveDocument.Links
'目的のアイテムのリンクを更新
If IDFIND.Id = MYID Then IDFIND.Update
Next
'一度原寸に設定
MyInDesign.Selection(1).Images(1).AbsoluteHorizontalScale = 100
MyInDesign.Selection(1).Images(1).AbsoluteVerticalScale = 100
'更新前の値を設定
MyInDesign.Selection(1).Images(1).AbsoluteHorizontalScale = YOKO
MyInDesign.Selection(1).Images(1).AbsoluteVerticalScale = TATE
Set MyInDesign = Nothing
'――――――――――――――――――――――――――――――――
どなたか詳しい方、JSコンバート
m( _ _ )m m( _ _ )m m( _ _ )m
'――――――――――――――――――――――――――――――――
Set MyInDesign = CreateObject("InDesign.Application.CS")
'更新前の値を取得
YOKO = MyInDesign.Selection(1).Images(1).AbsoluteHorizontalScale
TATE = MyInDesign.Selection(1).Images(1).AbsoluteVerticalScale
'検索用IDを取得
MYID = MyInDesign.Selection(1).Images(1).ItemLink.Id
'取得したIDで検索
For Each IDFIND In MyInDesign.ActiveDocument.Links
'目的のアイテムのリンクを更新
If IDFIND.Id = MYID Then IDFIND.Update
Next
'一度原寸に設定
MyInDesign.Selection(1).Images(1).AbsoluteHorizontalScale = 100
MyInDesign.Selection(1).Images(1).AbsoluteVerticalScale = 100
'更新前の値を設定
MyInDesign.Selection(1).Images(1).AbsoluteHorizontalScale = YOKO
MyInDesign.Selection(1).Images(1).AbsoluteVerticalScale = TATE
Set MyInDesign = Nothing
'――――――――――――――――――――――――――――――――
[7591へのレス]Re: リンクの更新で倍率が変わってしまう 投稿者:いき 投稿日:2005/11/17(Thu) 12:07
» 7
[7591へのレス]Re: リンクの更新で倍率が変わってしまう 投稿者:どりむ 投稿日:2005/11/17(Thu) 13:53
» 8
[7591へのレス]Re: リンクの更新で倍率が変わってしまう 投稿者:がれーじm 投稿日:2005/11/17(Thu) 15:20
» 9
[7591へのレス]Re: リンクの更新で倍率が変わってしまう 投稿者:あお 投稿日:2005/11/17(Thu) 21:05
» 10
[7591へのレス]Re: リンクの更新で倍率が変わってしまう 投稿者:いき 投稿日:2005/11/17(Thu) 22:15
※流星さんのスクリプトのJSコンバート版ではないですが。
※自作ではなく、以前どこかのサイトで公開されていたフリーのJavaScriptですが。(基本的にInDesign用のJSを公開されているHPはブックマークをしているのですが、片っ端から探しても見つからなかった)
//---------------------------------
$.level = 1; // デバッガ有効に
chkBoot();
function chkBoot(){
if( app.selection.length == 0 ){
alert("選択ツールでオブジェクトを選択してください");
}else{
openDialog();
}
}
function openDialog(){
var myDialog;
var dlgColumn;
var dlgIntBoxW;
var dlgIntBoxH;
var getW, getH;
myDialog = app.dialogs.add({name:"画像の比率を入力"});
dlgColumn = myDialog.dialogColumns.add();
dlgIntBoxW = dlgColumn.integerEditboxes.add({editValue:100}); // 左右
dlgIntBoxH = dlgColumn.integerEditboxes.add({editValue:100}); // 天地
if( myDialog.show() == true ){
getW = dlgIntBoxW.editValue;
getH = dlgIntBoxH.editValue;
myDialog.destroy();
getSelects( getW, getH );
}
}
function getSelects( w, h ){
var len = app.selection.length;
var i;
for( i=0; i<len; i++ ){
app.selection[i].graphics[0].horizontalScale = w;
app.selection[i].graphics[0].verticalScale = h;
}
}
//---------------------------------
選択ツール(黒矢印)で画像を選択し、元画像に対する%をダイアログに入力します。
# 結局は手作業なのですが……。
オリジナルのJSでは最後にフレームを画像にフィットさせますが、今回の例では不要かと思い、その行は削りました。
※自作ではなく、以前どこかのサイトで公開されていたフリーのJavaScriptですが。(基本的にInDesign用のJSを公開されているHPはブックマークをしているのですが、片っ端から探しても見つからなかった)
//---------------------------------
$.level = 1; // デバッガ有効に
chkBoot();
function chkBoot(){
if( app.selection.length == 0 ){
alert("選択ツールでオブジェクトを選択してください");
}else{
openDialog();
}
}
function openDialog(){
var myDialog;
var dlgColumn;
var dlgIntBoxW;
var dlgIntBoxH;
var getW, getH;
myDialog = app.dialogs.add({name:"画像の比率を入力"});
dlgColumn = myDialog.dialogColumns.add();
dlgIntBoxW = dlgColumn.integerEditboxes.add({editValue:100}); // 左右
dlgIntBoxH = dlgColumn.integerEditboxes.add({editValue:100}); // 天地
if( myDialog.show() == true ){
getW = dlgIntBoxW.editValue;
getH = dlgIntBoxH.editValue;
myDialog.destroy();
getSelects( getW, getH );
}
}
function getSelects( w, h ){
var len = app.selection.length;
var i;
for( i=0; i<len; i++ ){
app.selection[i].graphics[0].horizontalScale = w;
app.selection[i].graphics[0].verticalScale = h;
}
}
//---------------------------------
選択ツール(黒矢印)で画像を選択し、元画像に対する%をダイアログに入力します。
# 結局は手作業なのですが……。
オリジナルのJSでは最後にフレームを画像にフィットさせますが、今回の例では不要かと思い、その行は削りました。
[7591へのレス]Re: リンクの更新で倍率が変わってしまう 投稿者:流星 投稿日:2005/11/17(Thu) 23:05
>ただ、すみません、私の環境(WinXP sp1/InDesign CS)では
>MyInDesign.Selection(1).Images
>のところで、「そんなプロパティ/メソッドはない」とInDesignに怒られました。。。
># ちなみに拡張子は.vbsで保存しました。
EPSだとエラーになってしまいます。検証したのはPSDでした。
詳しく書かず、すみません。(^^;
あと、ソース汚くてすみません。>各位
前回、書き込んだスクリは選択しているフレームのアイテムのみ
拡大・縮小率を更新前の状態に再設定するためのスクリでしたが、
今回、全てのリンクアイテムを対象にするスクリを書き直しました。
今回のスクリはスクリプトパネルから実行して下さい。デスクトップ
などに置いて動作させると、うまくいきません。
今回もソース汚いです。申し訳ないです。
'――――――――――――――――――――――――――――――――
Set MyInDesign = CreateObject("InDesign.Application.CS")
For Each LinkObj In MyInDesign.ActiveDocument.Links
'更新前の値を取得
If LinkObj.Status = idLinkOutOfDate And LinkObj.LinkType = "Photoshop" Then
YOKO = LinkObj.Parent.AbsoluteHorizontalScale
TATE = LinkObj.Parent.AbsoluteVerticalScale
End If
'リンクを更新
If LinkObj.Status = idLinkOutOfDate Then
FindName = LinkObj.Name
LinkObj.Update
'更新でどっか逝ってしまってしまったので…
For Each FindLink In MyInDesign.ActiveDocument.Links
If FindLink.Name = FindName Then
Set LinkObj = FindLink '再検索してオブジェクトを代入
Exit For
End If
Next
'一度原寸に設定
If LinkObj.LinkType = "Photoshop" Then
LinkObj.Parent.AbsoluteHorizontalScale = 100
LinkObj.Parent.AbsoluteVerticalScale = 100
LinkObj.Parent.AbsoluteHorizontalScale = YOKO
LinkObj.Parent.AbsoluteVerticalScale = TATE
End If
End If
Next
Set FindLink = Nothing
Set LinkObj = Nothing
Set MyInDesign = Nothing
MSGBOX "処理が終わりました。"
'――――――――――――――――――――――――――――――――
>私にはスクリプト云々はさっぱり?なので
環境が書かれていないので、とりあえずWinスクリを提案しました。
Macな方の為にJSで書けばいいのですが、今の私のスキルではJSを
書けないので、ご了承ください。m(_ _)m
>MyInDesign.Selection(1).Images
>のところで、「そんなプロパティ/メソッドはない」とInDesignに怒られました。。。
># ちなみに拡張子は.vbsで保存しました。
EPSだとエラーになってしまいます。検証したのはPSDでした。
詳しく書かず、すみません。(^^;
あと、ソース汚くてすみません。>各位
前回、書き込んだスクリは選択しているフレームのアイテムのみ
拡大・縮小率を更新前の状態に再設定するためのスクリでしたが、
今回、全てのリンクアイテムを対象にするスクリを書き直しました。
今回のスクリはスクリプトパネルから実行して下さい。デスクトップ
などに置いて動作させると、うまくいきません。
今回もソース汚いです。申し訳ないです。
'――――――――――――――――――――――――――――――――
Set MyInDesign = CreateObject("InDesign.Application.CS")
For Each LinkObj In MyInDesign.ActiveDocument.Links
'更新前の値を取得
If LinkObj.Status = idLinkOutOfDate And LinkObj.LinkType = "Photoshop" Then
YOKO = LinkObj.Parent.AbsoluteHorizontalScale
TATE = LinkObj.Parent.AbsoluteVerticalScale
End If
'リンクを更新
If LinkObj.Status = idLinkOutOfDate Then
FindName = LinkObj.Name
LinkObj.Update
'更新でどっか逝ってしまってしまったので…
For Each FindLink In MyInDesign.ActiveDocument.Links
If FindLink.Name = FindName Then
Set LinkObj = FindLink '再検索してオブジェクトを代入
Exit For
End If
Next
'一度原寸に設定
If LinkObj.LinkType = "Photoshop" Then
LinkObj.Parent.AbsoluteHorizontalScale = 100
LinkObj.Parent.AbsoluteVerticalScale = 100
LinkObj.Parent.AbsoluteHorizontalScale = YOKO
LinkObj.Parent.AbsoluteVerticalScale = TATE
End If
End If
Next
Set FindLink = Nothing
Set LinkObj = Nothing
Set MyInDesign = Nothing
MSGBOX "処理が終わりました。"
'――――――――――――――――――――――――――――――――
>私にはスクリプト云々はさっぱり?なので
環境が書かれていないので、とりあえずWinスクリを提案しました。
Macな方の為にJSで書けばいいのですが、今の私のスキルではJSを
書けないので、ご了承ください。m(_ _)m
[7591へのレス]Re: リンクの更新で倍率が変わってしまう 投稿者:小泉 投稿日:2005/11/18(Fri) 19:08
ASです。これでいけるかな?
tell document 1 of application "InDesign CS_J"
set a to object reference of links
set b1 to absolute horizontal scale of parent of links
set b2 to absolute vertical scale of parent of links
update links
set a to object reference of links
repeat with c from 1 to count a
set properties of parent of a's item c to {absolute horizontal scale:b1's item c, absolute vertical scale:b2's item c}
end repeat
end tell
tell document 1 of application "InDesign CS_J"
set a to object reference of links
set b1 to absolute horizontal scale of parent of links
set b2 to absolute vertical scale of parent of links
update links
set a to object reference of links
repeat with c from 1 to count a
set properties of parent of a's item c to {absolute horizontal scale:b1's item c, absolute vertical scale:b2's item c}
end repeat
end tell
この記事の書き込み元へのリンク (コメントや質問などはこちらへどうぞ)