我想使用java打印機制來繪製一些Graphics2D對象。所以我必須定義一個Printable的子類。CMYK中的Java打印
public class PrintCMYK() implements Printable {
public int print(Graphics g, PageFormat pf, int page)
throws PrinterException {
g.setColor(Color.RED);
g.fillOval(44, 44, 100, 100);
}
}
所以這個代碼只是打印一個紅色圓圈RGB。 Java可能會在某些CMYK中以某種方式轉換rgb顏色,以便能夠使用CMYK進行打印。但我想在這裏完全控制。所以我可以以某種方式顯式設置想要CMYK顏色。類似於
public class PrintCMYK() implements Printable {
public int print(Graphics g, PageFormat pf, int page)
throws PrinterException {
float[] ff = {0, 1, 0, 0}; // pure magenta
Color cmykColor = new Color(ColorSpace.getInstance(TYP_CMYK), ff, 1);
g.setPaint(cmykColor);
g.fillOval(44, 44, 100, 100);
}
}
此代碼無法正常工作。
UPD:在後記產生由Java代碼使用的指令setrgbcolor但我需要setcmykcolor。我能以某種方式實現這種行爲嗎?
但我需要CMYK,而不是RGB。 java.awt.Color是否支持CMYK? – AvrDragon 2013-03-19 14:58:17
好的,我承認我不熟悉那種技術,所以我會假設提取r,g,b不是一個選項。 雖然一般調試通過了TYP_CMYK,但是在其他地方定義了一個變量,因爲您調用的方法需要一個int作爲其輸入。你可以通過ColorSpace.getInstance(ColorSpace。)找到你的選項(如果你處於一個良好的集成開發環境中) //不是有效的行,但只要鍵入。你得到你的選項列表中,我注意到TYP_CMYK是不是其中之一,但你有這個更多的經驗,可能會看到一個等效 – 2013-03-19 15:04:02
即它需要int作爲它的開關輸入但是,這些整數的意思是ColorSpace類 – 2013-03-19 15:05:46