ここにいるすべての親切な人々のおかげで、私は InDesign CS6 のスクリプトを大量に学びました! これは、ドキュメントの printPreferences を設定する際の問題です。ここに私が持っているコードがあります:
with(document.printPreferences) {
activePrinterPreset = outputPreset;
pageRange = outputRange;
for (var j = 0; j < allInks.length; j++) {
document.inks.item(allInks[j]).printInk = false;
}
for (var k = 0; k < printInks.length; k++) {
if (printInks[k].toString() === "Black") {
$.writeln("Found Black!");
printBlack = true;
$.writeln("Set Black!");
} else {
document.inks.item(printInks[k]).printInk = true;
}
}
if (offsetJob) {
// If it's an offset job, we might need to change page sizes.
if (productType === "HI-N13W") {
paperSize = PaperSizes.custom;
paperHeight = 12.5;
paperWidth = 8.5;
} else if (productType.subString(3,5) === "PC") {
paperSize = PaperSizes.custom;
paperHeight = 8;
paperWidth = 12.5;
} else if (couldBeBothJobs.toString().indexOf(productType.subString(3,5)) > -1) {
paperSize = "US Letter";
} else {
paperSize = PaperSizes.custom;
paperHeight = 8;
paperWidth = 25;
}
}
}
2 番目のfor
ループでは、最初にドキュメント内のすべてのインクを印刷用にオフにしたことがわかります。printInks
次に、アレイ内のもののみをオンにします。ただし、「Black」という単語が配列に存在する場合、そのためのインクがないため、代わりに組み込みの printPreference 「printBlack」を設定します。(これは、他の 3 つ (printCyan、printMagenta、および printYellow) を補完します。)
InDesign CS6 Object Model Referenceによると、ブール値であると想定されています。ただし、スクリプトがそのポイントに到達するたびに停止します。エラーメッセージを確認できるように、その小さなコードだけを新しいドキュメントに貼り付けると、次のようになります。
The property is not applicable in the current state.
これは何を意味するのでしょうか?さらに重要なことに、どうすれば修正できますか? このプロパティを設定する前にトラッピングをオフにする必要があることはわかっていますが、確実にオフになっていることを確認しました。