これにはいくつかの方法があります。まず、色をどのように表現するかを決める必要があります...
- 「k」が常にゼロの CMYK
- 3 つのカラー チャネルを持つ Device-N カラースペース。「着色剤」は私が信じている用語です。
次に、iText の色オブジェクトを使用する必要があり、すべての単一の色属性がいずれかの色または null (iText-ville では「描画されていない」に変換されます) に設定されていることを確認してください。探し出して置き換える必要がある多くのデフォルト値があります。
具体的には、iText のソースを少しハックして支援することをお勧めしますPdfContentByte
。いくつかの異なるオプションがあります。
- 色を設定するすべての場所を見つけ、色の 1 つ (CMKY-with-no-K または Device-N-where-N-is-3) を使用するときに例外保存をスローします。
- はるかに難しい: スローしているすべての場所で、代わりに色を色空間の同等のものに変換します。グレースケールから CMY-No-K への変換はそれほど難しいことではありませんが、RGB から CMYK への優れた変換は、少なくとも科学と同じくらいの芸術です...
また、最初から CMY-no-K ではない画像を含める場合は、それらを翻訳する必要があります。それを回避する必要はありません。また、いくつかの色を変換する場合は、少なくとも上記の #2 の部分的なバージョンを使用することをお勧めします。