Package org.apache.fop.pdf
Class PDFColor
java.lang.Object
org.apache.fop.pdf.PDFObject
org.apache.fop.pdf.PDFPathPaint
org.apache.fop.pdf.PDFColor
- All Implemented Interfaces:
PDFWritable
PDF Color object. It is currently only used to hold the transparent color of a masked bitmap
image. And in this context, only RGB and Gray values are used.
Use of this class is discouraged. PDFColorHandler
is now used for in-content color
selection. For masked bitmaps, it may be wiser to switch to Color
in the long run.
-
Field Summary
Fields inherited from class org.apache.fop.pdf.PDFPathPaint
colorSpace
-
Constructor Summary
ConstructorDescriptionPDFColor
(double theRed, double theGreen, double theBlue) Create a PDF color with double values ranging from 0 to 1.PDFColor
(double theCyan, double theMagenta, double theYellow, double theBlack) Create a PDF color with CMYK values.PDFColor
(int theRed, int theGreen, int theBlue) Create a PDF color with int values ranging from 0 to 255Create a PDF color from a java.awt.Color object. -
Method Summary
Modifier and TypeMethodDescriptiondouble
black()
Get the black component.double
blue()
Get the blue component.int
blue255()
Get the blue integer component.protected boolean
contentEquals
(PDFObject obj) Check if the other PDFObject has the same content as the current object.protected void
Convert the color from CMYK to Gray.protected void
Convert the color from CMYK to RGB.protected void
Convert the color from Gray to CMYK.protected void
Convert the color from Gray to RGB.protected void
Convert the color from RGB to CMYK.protected void
Convert the color from RGB to Gray.double
cyan()
Get the cyan component.getColorSpaceOut
(boolean fillNotStroke) Get the PDF output string for this color.Return a vector representation of the color in the appropriate colorspace.double
green()
Get the green component.int
green255()
Get the green integer component.double
magenta()
Get the magenta component.double
red()
Get the red component.int
red255()
Get the red integer component.void
setColorSpace
(int theColorSpace) Set the color space for this color.byte[]
toPDF()
Create pdf.double
yellow()
Get the yellow component.Methods inherited from class org.apache.fop.pdf.PDFPathPaint
getColorSpace
Methods inherited from class org.apache.fop.pdf.PDFObject
encode, encodeBinaryToHexString, encodeString, encodeText, formatObject, getChildren, getDocument, getDocumentSafely, getGeneration, getObjectID, getObjectNumber, getParent, hasObjectNumber, makeReference, output, outputInline, referencePDF, setDocument, setObjectNumber, setObjectNumber, setObjectNumber, setParent, toPDFString
-
Constructor Details
-
PDFColor
public PDFColor(double theRed, double theGreen, double theBlue) Create a PDF color with double values ranging from 0 to 1.- Parameters:
theRed
- the red double valuetheGreen
- the green double valuetheBlue
- the blue double value
-
PDFColor
Create a PDF color from a java.awt.Color object. Different Color objects are handled differently. Cases recognized are. 1. CMYK color 3. 'Normal' java.awt.Color (RGB case assumed or implicit conversion to sRGB)- Parameters:
col
- the java.awt.Color object for which to create a PDFColor object
-
PDFColor
public PDFColor(int theRed, int theGreen, int theBlue) Create a PDF color with int values ranging from 0 to 255- Parameters:
theRed
- the red integer valuetheGreen
- the green integer valuetheBlue
- the blue integer value
-
PDFColor
public PDFColor(double theCyan, double theMagenta, double theYellow, double theBlack) Create a PDF color with CMYK values.- Parameters:
theCyan
- the cyan valuetheMagenta
- the magenta valuetheYellow
- the yellow valuetheBlack
- the black value
-
-
Method Details
-
getVector
Return a vector representation of the color in the appropriate colorspace.- Returns:
- a list containing the Double values of the color
-
red
public double red()Get the red component.- Returns:
- the red double value
-
green
public double green()Get the green component.- Returns:
- the green double value
-
blue
public double blue()Get the blue component.- Returns:
- the blue double value
-
red255
public int red255()Get the red integer component.- Returns:
- the red integer value
-
green255
public int green255()Get the green integer component.- Returns:
- the green integer value
-
blue255
public int blue255()Get the blue integer component.- Returns:
- the blue integer value
-
cyan
public double cyan()Get the cyan component.- Returns:
- the cyan double value
-
magenta
public double magenta()Get the magenta component.- Returns:
- the magenta double value
-
yellow
public double yellow()Get the yellow component.- Returns:
- the yellow double value
-
black
public double black()Get the black component.- Returns:
- the black double value
-
setColorSpace
public void setColorSpace(int theColorSpace) Set the color space for this color. If the new color space is different the values are converted to the new color space.- Overrides:
setColorSpace
in classPDFPathPaint
- Parameters:
theColorSpace
- the new color space
-
getColorSpaceOut
Get the PDF output string for this color. This returns the string to be inserted into PDF for setting the current color.- Overrides:
getColorSpaceOut
in classPDFPathPaint
- Parameters:
fillNotStroke
- whether to return fill or stroke command- Returns:
- the PDF string for setting the fill/stroke color
-
convertCMYKtoRGB
protected void convertCMYKtoRGB()Convert the color from CMYK to RGB. -
convertRGBtoCMYK
protected void convertRGBtoCMYK()Convert the color from RGB to CMYK. -
convertGRAYtoRGB
protected void convertGRAYtoRGB()Convert the color from Gray to RGB. -
convertGRAYtoCMYK
protected void convertGRAYtoCMYK()Convert the color from Gray to CMYK. -
convertCMYKtoGRAY
protected void convertCMYKtoGRAY()Convert the color from CMYK to Gray. -
convertRGBtoGRAY
protected void convertRGBtoGRAY()Convert the color from RGB to Gray. -
toPDF
public byte[] toPDF()Create pdf. Not used for this object. -
contentEquals
Check if the other PDFObject has the same content as the current object.Note: This function has a contract which is less binding than
Object.equals(Object)
. Whereas equals would require all values to be identical, this method is not required to check everything. In the case of PDFObjects, this means that the overriding function does not have to check forPDFObject.getObjectID()
.- Overrides:
contentEquals
in classPDFObject
- Parameters:
obj
- object to compare to.- Returns:
- true if the other object has the same content.
-