私が使用する場合
PdfContentByte cb = writer.getDirectContent();
cb.setColorFill(new CMYKColor(c, m, y, k));
それは簡単です。ただし、Graphics2Dで自己を描画するSwingコンポーネントがいくつかあります。そのようなものを使用することは非常に説得力があります:
PdfContentByte cb = writer.getDirectContent();
Graphics2D g2 cb.createGraphics(w, h);
mySwingComponent.paint(g2);
g2.dispose();
正常に動作しますが、色は iText によって Java の sRGB から CMYK に変換されます。CMYKカラーで直接描きたい。Swingコンポーネントでそうしようとしています
MySwingComponent extends JComponenet {
void paint(Graphics2D g2) {
g.setColor(new com.lowagie.text.pdf.CMYKColor(0, 0, 0, 1));
}
}
残念ながら、それは機能しません。どの CMYK カラーをペイントするかを正確に指定する方法はありますか?
PS私の問題の背景は、garyscaleで何かを描くと、Adobe IllustratorでPDFの色が(0、0、0、0.4)だけでなく、(0.1、0.15、0.2、0.4f)のようになることです。
UPD:私は今解決策を持っています: g2.setPaint(new CMYKColor(1f, 0.0f, 0.0f, 0.0f)); を使用するだけです あなたのペイント(Graphics2D g2)では、iTextにCMYK Pdfを強制的に生成させます