本件、整理すると、 Illustratorだけでなく、InDesignでも同様の現象が発生する → Adobe PDF Libraryがあやしい PDF書き出し時、個別のテキストオブジェクトを内部表現に「まとめる」と発生する まとめるのは、オブジェクトツリー上(レイヤー パネルでレイヤーを展開した際の上下の並び)で隣接しているもの 座標の小数点以下の精度が低く、誤差が発生する オブジェクトをまとめた個数が多くなると、その分だけ誤差が累積し、目視でわかるズレとなる 「まとめる」動作の中で発生するものなので、回避方法としては、いかに「まとめないようにするか」がポイントになるかと思います。 言い換えると、まとめると結果が変わってしまうように仕向ければ良いということになります。 オブジェクトの重なり順が入れ替わってしまう テキストオブジェクトとテキストオブジェクトの間に、別のオブジェクトが存在する場合、まとめることができない 不透明度やワープ効果など、個別に適用した時とまとめて適用した時に結果が異なる 効果コピーの場合はまとめられる(グループ化されている状態と同じ扱いで、全体に不透明度・効果が適用されるため影響がない) 視覚的効果だけでは判断できない意味の要素がある タグ付きPDFのように、テキストオブジェクトに読み上げ順や意味上の分類が施されていると勝手にまとめることができない 不明なのは、誤差が蓄積したあと、個数なのかズレ幅なのか、ある限度を超えると正常な位置にリセットされる理由です。 ひょっとすると誤差が蓄積するのは作っている人は承知していて(仕様)、大きく破綻しないようにガードがかかっているのかもしれません。 さて、ちょっとだけPDFの内部表現に立ち入ります。 私もよくわかっていないので、眉に唾を付けて(真偽を疑って)お読み下さい。 テキストについて記述されている部分の抜粋です。 BT (中略) 12 0 0 12 486.185089111 167.639602661 Tm (\000 \031)Tj -1.417 0 Td (\000 \031)Tj -1.417 0 Td (\000 \031)Tj -1.417 0 Td (中略) (\000 \031)Tj -1.417 0 Td (\000 \031)Tj 34.01599884 1.417 Td (\000 \031)Tj -1.417 0 Td (\000 \031)Tj (中略) -1.417 0 Td (\000 \031)Tj ET BT (以下略) BTがテキストの始まり、ETがテキストの終わりです。 (\000 \031)Tj というのが「8」です。 -1.417 0 Td というのが座標の指定で、x座標を-1.417、y座標を0 移動せよ、ということです。 12 0 0 12 486.185089111 167.639602661 Tm というのが座標系の定義で、xスケール 12, x傾き 0, y傾き 0, yスケール 12, x座標 486.185089111, y座標 167.639602661 といった具合です。(行列の指定ですが、私には説明できないので省略させていただきます) 追っていくと、テキストがズレ始めてから最大のズレになるまでがBTとETで囲まれていて、また繰り返すところでBTがはじまります。 -1.417 × 12 = -17.004(pt) つまり 5.9986mm 移動しているということで、発生している現象と一致します。 Tmでx座標の指定は小数点以下の桁数が多いのに、なぜTdでの指定は小数点以下の桁数が少ないのでしょうか? まぁ、これが何の仕様なのかは確かめていませんが、つまりはそういうことのようです。 ということで、「まとめさせない」というのは、内部の話としては、Tdでの移動を許さず、その都度Tmで正しい位置を指定すれば問題ナシ、ということです。
... View more