Skip to main content
Inspiring
January 18, 2023
Question

ドキュメント間のページコピーで 複製ページが逆順になる

  • January 18, 2023
  • 1 reply
  • 549 views
インデザイン 2022 横書き見開きドキュメントです。
docS.pages.itemByRange(0,5).duplicate(LocationOptions.AFTER, docD.pages.item(5));
上記の方法でdocSからdocDにページをコピーした場合、
コピーしたページが逆順に追加されてしまいます。
 
LocationOptions.BEFOREの場合は正順でコピーされます。
 
またLocationOptions.AT_ENDを使うと正順でコピーされますが、見開きスプレッドの場合にスプレッドの1Pの後を指定してもスプレッドの終わりにしか追加できません。
これはバグでしょうか? 使い方が間違っているのでしょうか?
 
This topic has been closed for replies.

1 reply

Omachi
Legend
January 18, 2023
> docS.pages.itemByRange(0,5).duplicate(LocationOptions.AFTER, docD.pages.item(5));
> 上記の方法でdocSからdocDにページをコピーした場合、
> コピーしたページが逆順に追加されてしまいます。
>
> LocationOptions.BEFOREの場合は正順でコピーされます。
 
確かにそうなりますね。ただこれはバグというより仕様の気がします。
docS.pages.itemByRange(0,5)ということは、各ページを配列に入れてるわけですね。これを特定のページ(docD.pages.item(5))の後に挿入します。配列の先頭から処理しようとすると
インデックス0:docS.pages.item(0)をdocD.pages.item(5)の後に挿入
インデックス1:docS.pages.item(1)をdocD.pages.item(5)の後に挿入
インデックス2:docS.pages.item(2)をdocD.pages.item(5)の後に挿入
インデックス3:docS.pages.item(3)をdocD.pages.item(5)の後に挿入
このようになるわけですが、そうするとインデックス0が後のページの挿入に従って後ろにずれるということになります。これは処理としては自然な流れです。
リファレンスには複数ページを挿入した場合にどのようになるべきかは明記されていないので、間違いとは言えないと思います。
 
> またLocationOptions.AT_ENDを使うと正順でコピーされますが、見開きスプレッドの場合にスプレッドの> 1Pの後を指定してもスプレッドの終わりにしか追加できません。
> これはバグでしょうか? 使い方が間違っているのでしょうか?
すみません、状況がよく見えないのですが、AT_ENDを指定しても最後のページの後ではないということでしょうか?
 
 
SGT0001Author
Inspiring
January 19, 2023

ありがとうございます。

仕様と考えてループで1Pずつ追加などで対応した方が良さそうですね。

試しにdocS.pages.itemByRange(5,0)とページレンジの逆順にしても

同じ結果でした。

 

> またLocationOptions.AT_ENDを使うと正順で

これは例えば2,3P[docD.pages[1,2]]が見開き(spread[1])の状況で

docS.pages.itemByRange(0,5).duplicate(LocationOptions.AT_END, docD.pages.item(1));

とすると2P(pages[1])ではなく3P(pages[2])の後ろに正順でページが追加されます。

自分もドキュメントの最後に追加されるものだと思っていたのですが、

スプレッドの最後ということなのかもしれません。

ただこの場合正順なのでAT_ENDとAFTERで処理方法が異なるのもどうかとも思うのですが。