標題の通りです。CC2017でも改善されていないバグ(だと個人的には思ってます)です。
適当に表を用意してもらい、斜線(色を[黒]にする)を引いてオーバープリントプレビューにしてみてください。もしくはPDFに書き出して出力プレビューでも可です。
デフォルトの設定では[黒]スウォッチは自動でノセ(オーバープリント)になるはずなので、環境設定をいじってなければそのままで。
セルの罫線はきちんとノセになるのですが、斜線だけは手動で「オーバープリント」のチェックをオンにしないとノセになりません。これを仕様と謳うならどつくぞ…。
かといって、セルの設定を開いて[黒]スウォッチ(ないしK100)であればオーバープリントをオンにして…ということを手作業でやるのは骨が折れます。
そこで「斜線に[黒]スウォッチが使われていればオーバープリントをオンにする」スクリプトです。ぺぺぺって適当に書いたので恐縮ですが、こんな感じで自動化が可能です。
var myDoc = app.activeDocument; var myTxf = myDoc.textFrames; var tgtBlack = myDoc.swatches.item('Black'); for (var i=0; i<myTxf.length; i++){ var myTab = myTxf[i].tables; for (var k=0; k<myTab.length; k++){ var myCel = myTab[k].cells; for (var m=0; m<myCel.length; m++){ if (!myCel[m].diagonalLineStrokeOverprint && myCel[m].diagonalLineStrokeColor == tgtBlack){ myCel[m].diagonalLineStrokeOverprint = true; } if (!myCel[m].diagonalLineStrokeGapOverprint && myCel[m].diagonalLineStrokeGapColor == tgtBlack){ myCel[m].diagonalLineStrokeGapOverprint = true; } } } }
diagonalLineStrokeOverprint
が斜線のオーバープリント設定、diagonalLineStrokeColor
がその色。
diagonalLineStrokeGapOverprint
が斜線の間隔のオーバープリント設定、diagonalLineStrokeGapColor
がその色ということです。
[黒]スウォッチだけでなく、K100であれば問答無用でノセにしたい場合は、例えばmyCel[m].diagonalLineStrokeColor == tgtBlack
の部分をmyCel[m].diagonalLineStrokeColor.colorValue.join(',') === "0,0,0,100"
とかにすればいいと思われます(試してませんが…^^;;;)。
もし業務でお使いの場合は、スクリプトで修正した個数を表示したり、catch(e)
の中にエラーログを記述できるようにしたり、confirm()
をつかってひとつずつ確認しながらオーバープリントを設定できるようにしたり、doScript
に突っ込んでUndoModes.FAST_ENTIRE_SCRIPT
を指定したり…といったギミックを実装したほうが安全で使いやすいとは思います。
以上、表の斜線に関する一考察でした(?)。