com.lowagie.text.pdf

Class PdfContentByte

public class PdfContentByte extends Object

PdfContentByte is an object containing the user positioned text and graphic contents of a page. It knows how to apply the proper font encoding.
Nested Class Summary
static classPdfContentByte.GraphicState
This class keeps the graphic state of the current page
Field Summary
static intALIGN_CENTER
The alignement is center
static intALIGN_LEFT
The alignement is left
static intALIGN_RIGHT
The alignement is right
static HashMapabrev
protected ByteBuffercontent
This is the actual content
protected ArrayListlayerDepth
The list were we save/restore the layer depth
static intLINE_CAP_BUTT
A possible line cap value
static intLINE_CAP_PROJECTING_SQUARE
A possible line cap value
static intLINE_CAP_ROUND
A possible line cap value
static intLINE_JOIN_BEVEL
A possible line join value
static intLINE_JOIN_MITER
A possible line join value
static intLINE_JOIN_ROUND
A possible line join value
protected PdfDocumentpdf
This is the PdfDocument
protected intseparator
The separator between commands.
protected PdfContentByte.GraphicStatestate
This is the GraphicState in use
protected ArrayListstateList
The list were we save/restore the state
static intTEXT_RENDER_MODE_CLIP
A possible text rendering value
static intTEXT_RENDER_MODE_FILL
A possible text rendering value
static intTEXT_RENDER_MODE_FILL_CLIP
A possible text rendering value
static intTEXT_RENDER_MODE_FILL_STROKE
A possible text rendering value
static intTEXT_RENDER_MODE_FILL_STROKE_CLIP
A possible text rendering value
static intTEXT_RENDER_MODE_INVISIBLE
A possible text rendering value
static intTEXT_RENDER_MODE_STROKE
A possible text rendering value
static intTEXT_RENDER_MODE_STROKE_CLIP
A possible text rendering value
static float[]unitRect
protected PdfWriterwriter
This is the writer
Constructor Summary
PdfContentByte(PdfWriter wr)
Constructs a new PdfContentByte-object.
Method Summary
voidadd(PdfContentByte other)
Adds the content of another PdfContent-object to this object.
voidaddAnnotation(PdfAnnotation annot)
voidaddImage(Image image)
Adds an Image to the page.
voidaddImage(Image image, boolean inlineImage)
Adds an Image to the page.
voidaddImage(Image image, float a, float b, float c, float d, float e, float f)
Adds an Image to the page.
voidaddImage(Image image, float a, float b, float c, float d, float e, float f, boolean inlineImage)
Adds an Image to the page.
voidaddOutline(PdfOutline outline)
Adds an outline to the document.
voidaddOutline(PdfOutline outline, String name)
Adds a named outline to the document.
voidaddPSXObject(PdfPSXObject psobject)
Adds a PostScript XObject to this content.
voidaddTemplate(PdfTemplate template, float a, float b, float c, float d, float e, float f)
Adds a template to this content.
voidaddTemplate(PdfTemplate template, float x, float y)
Adds a template to this content.
voidaddTemplateReference(PdfIndirectReference template, PdfName name, float a, float b, float c, float d, float e, float f)
voidarc(float x1, float y1, float x2, float y2, float startAng, float extent)
Draws a partial ellipse inscribed within the rectangle x1,y1,x2,y2, starting at startAng degrees and covering extent degrees.
voidbeginLayer(PdfOCG layer)
Begins a graphic block whose visibility is controled by the layer.
voidbeginLayer2(PdfOCG layer)
voidbeginMarkedContentSequence(PdfStructureElement struc)
Begins a marked content sequence.
voidbeginMarkedContentSequence(PdfName tag, PdfDictionary property, boolean inline)
Begins a marked content sequence.
voidbeginMarkedContentSequence(PdfName tag)
This is just a shorthand to beginMarkedContentSequence(tag, null, false).
voidbeginText()
Starts the writing of text.
static ArrayListbezierArc(float x1, float y1, float x2, float y2, float startAng, float extent)
Generates an array of bezier curves to draw an arc.
voidcheckNoPattern(PdfTemplate t)
Throws an error if it is a pattern.
protected voidcheckWriter()
Check if we have a valid PdfWriter.
voidcircle(float x, float y, float r)
Draws a circle.
voidclip()
Modify the current clipping path by intersecting it with the current path, using the nonzero winding number rule to determine which regions lie inside the clipping path.
voidclosePath()
Closes the current subpath by appending a straight line segment from the current point to the starting point of the subpath.
voidclosePathEoFillStroke()
Closes the path, fills it using the even-odd rule to determine the region to fill and strokes it.
voidclosePathFillStroke()
Closes the path, fills it using the non-zero winding number rule to determine the region to fill and strokes it.
voidclosePathStroke()
Closes the path and strokes it.
booleancompareColors(Color c1, Color c2)
voidconcatCTM(float a, float b, float c, float d, float e, float f)
Concatenate a matrix to the current transformation matrix.
PdfAppearancecreateAppearance(float width, float height)
Creates a new appearance to be used with form fields.
PdfAppearancecreateAppearance(float width, float height, PdfName forcedName)
Graphics2DcreateGraphics(float width, float height)
Gets a Graphics2D to write on.
Graphics2DcreateGraphics(float width, float height, boolean convertImagesToJPEG, float quality)
Gets a Graphics2D to write on.
Graphics2DcreateGraphics(float width, float height, FontMapper fontMapper)
Gets a Graphics2D to write on.
Graphics2DcreateGraphics(float width, float height, FontMapper fontMapper, boolean convertImagesToJPEG, float quality)
Gets a Graphics2D to write on.
Graphics2DcreateGraphicsShapes(float width, float height)
Gets a Graphics2D to write on.
Graphics2DcreateGraphicsShapes(float width, float height, boolean convertImagesToJPEG, float quality)
Gets a Graphics2D to print on.
PdfPatternPaintercreatePattern(float width, float height, float xstep, float ystep)
Create a new colored tiling pattern.
PdfPatternPaintercreatePattern(float width, float height)
Create a new colored tiling pattern.
PdfPatternPaintercreatePattern(float width, float height, float xstep, float ystep, Color color)
Create a new uncolored tiling pattern.
PdfPatternPaintercreatePattern(float width, float height, Color color)
Create a new uncolored tiling pattern.
Graphics2DcreatePrinterGraphics(float width, float height, PrinterJob printerJob)
Gets a Graphics2D to print on.
Graphics2DcreatePrinterGraphics(float width, float height, boolean convertImagesToJPEG, float quality, PrinterJob printerJob)
Gets a Graphics2D to print on.
Graphics2DcreatePrinterGraphics(float width, float height, FontMapper fontMapper, PrinterJob printerJob)
Gets a Graphics2D to print on.
Graphics2DcreatePrinterGraphics(float width, float height, FontMapper fontMapper, boolean convertImagesToJPEG, float quality, PrinterJob printerJob)
Gets a Graphics2D to print on.
Graphics2DcreatePrinterGraphicsShapes(float width, float height, PrinterJob printerJob)
Gets a Graphics2D to print on.
Graphics2DcreatePrinterGraphicsShapes(float width, float height, boolean convertImagesToJPEG, float quality, PrinterJob printerJob)
Gets a Graphics2D to print on.
PdfTemplatecreateTemplate(float width, float height)
Creates a new template.
PdfTemplatecreateTemplate(float width, float height, PdfName forcedName)
voidcurveFromTo(float x1, float y1, float x3, float y3)
Appends a Bjzier curve to the path, starting from the current point.
voidcurveTo(float x1, float y1, float x2, float y2, float x3, float y3)
Appends a Bjzier curve to the path, starting from the current point.
voidcurveTo(float x2, float y2, float x3, float y3)
Appends a Bjzier curve to the path, starting from the current point.
voiddrawButton(float llx, float lly, float urx, float ury, String text, BaseFont bf, float size)
Draws a button.
voiddrawRadioField(float llx, float lly, float urx, float ury, boolean on)
Draws a TextField.
voiddrawTextField(float llx, float lly, float urx, float ury)
Draws a TextField.
voidellipse(float x1, float y1, float x2, float y2)
Draws an ellipse inscribed within the rectangle x1,y1,x2,y2.
voidendLayer()
Ends a layer controled graphic block.
voidendMarkedContentSequence()
Ends a marked content sequence
voidendText()
Ends the writing of text and makes the current font invalid.
voideoClip()
Modify the current clipping path by intersecting it with the current path, using the even-odd rule to determine which regions lie inside the clipping path.
voideoFill()
Fills the path, using the even-odd rule to determine the region to fill.
voideoFillStroke()
Fills the path, using the even-odd rule to determine the region to fill and strokes it.
static byte[]escapeString(byte[] b)
Escapes a byte array according to the PDF conventions.
static voidescapeString(byte[] b, ByteBuffer content)
Escapes a byte array according to the PDF conventions.
voidfill()
Fills the path, using the non-zero winding number rule to determine the region to fill.
voidfillStroke()
Fills the path using the non-zero winding number rule to determine the region to fill and strokes it.
floatgetCharacterSpacing()
Gets the current character spacing.
PdfContentBytegetDuplicate()
Gets a duplicate of this PdfContentByte.
floatgetEffectiveStringWidth(String text, boolean kerned)
Computes the width of the given string taking in account the current values of "Character spacing", "Word Spacing" and "Horizontal Scaling".
floatgetHorizontalScaling()
Gets the current character spacing.
ByteBuffergetInternalBuffer()
Gets the internal buffer.
static PdfTextArraygetKernArray(String text, BaseFont font)
Constructs a kern array for a text in a certain font
floatgetLeading()
Gets the current text leading.
PageResourcesgetPageResources()
PdfDocumentgetPdfDocument()
Gets the PdfDocument in use by this object.
PdfWritergetPdfWriter()
Gets the PdfWriter in use by this object.
PdfOutlinegetRootOutline()
Gets the root outline.
floatgetWordSpacing()
Gets the current word spacing.
floatgetXTLM()
Gets the x position of the text line matrix.
floatgetYTLM()
Gets the y position of the text line matrix.
voidHelperCMYK(float cyan, float magenta, float yellow, float black)
Helper to validate and write the CMYK color components.
voidHelperRGB(float red, float green, float blue)
Helper to validate and write the RGB color components
voidlineTo(float x, float y)
Appends a straight line segment from the current point (x, y).
booleanlocalDestination(String name, PdfDestination destination)
The local destination to where a local goto with the same name will jump.
voidlocalGoto(String name, float llx, float lly, float urx, float ury)
Implements a link to other part of the document.
voidmoveText(float x, float y)
Moves to the start of the next line, offset from the start of the current line.
voidmoveTextWithLeading(float x, float y)
Moves to the start of the next line, offset from the start of the current line.
voidmoveTo(float x, float y)
Move the current point (x, y), omitting any connecting line segment.
voidnewlineShowText(String text)
Moves to the next line and shows text.
voidnewlineShowText(float wordSpacing, float charSpacing, String text)
Moves to the next line and shows text string, using the given values of the character and word spacing parameters.
voidnewlineText()
Moves to the start of the next line.
voidnewPath()
Ends the path without filling or stroking it.
voidoutputColorNumbers(Color color, float tint)
Outputs the color values to the content.
voidpaintShading(PdfShading shading)
Paints using a shading object.
voidpaintShading(PdfShadingPattern shading)
Paints using a shading pattern.
voidrectangle(float x, float y, float w, float h)
Adds a rectangle to the current path.
voidrectangle(Rectangle rectangle)
Adds a border (complete or partially) to the current path..
voidremoteGoto(String filename, String name, float llx, float lly, float urx, float ury)
Implements a link to another document.
voidremoteGoto(String filename, int page, float llx, float lly, float urx, float ury)
Implements a link to another document.
voidreset()
Makes this PdfContentByte empty.
voidresetCMYKColorFill()
Changes the current color for filling paths to black.
voidresetCMYKColorStroke()
Changes the current color for stroking paths to black.
voidresetGrayFill()
Changes the current gray tint for filling paths to black.
voidresetGrayStroke()
Changes the current gray tint for stroking paths to black.
voidresetRGBColorFill()
Changes the current color for filling paths to black.
voidresetRGBColorStroke()
Changes the current color for stroking paths to black.
voidrestoreState()
Restores the graphic state.
voidroundRectangle(float x, float y, float w, float h, float r)
Adds a round rectangle to the current path.
voidsaveState()
Saves the graphic state.
voidsetAction(PdfAction action, float llx, float lly, float urx, float ury)
Implements an action in an area.
voidsetCharacterSpacing(float charSpace)
Sets the character spacing parameter.
voidsetCMYKColorFill(int cyan, int magenta, int yellow, int black)
Changes the current color for filling paths (device dependent colors!)
voidsetCMYKColorFillF(float cyan, float magenta, float yellow, float black)
Changes the current color for filling paths (device dependent colors!)
voidsetCMYKColorStroke(int cyan, int magenta, int yellow, int black)
Changes the current color for stroking paths (device dependent colors!)
voidsetCMYKColorStrokeF(float cyan, float magenta, float yellow, float black)
Changes the current color for stroking paths (device dependent colors!)
voidsetColorFill(Color color)
Sets the fill color.
voidsetColorFill(PdfSpotColor sp, float tint)
Sets the fill color to a spot color.
voidsetColorStroke(Color color)
Sets the stroke color.
voidsetColorStroke(PdfSpotColor sp, float tint)
Sets the stroke color to a spot color.
voidsetDefaultColorspace(PdfName name, PdfObject obj)
Sets the default colorspace.
voidsetFlatness(float flatness)
Changes the Flatness.
voidsetFontAndSize(BaseFont bf, float size)
Set the font and the size for the subsequent text writing.
voidsetGrayFill(float gray)
Changes the currentgray tint for filling paths (device dependent colors!)
voidsetGrayStroke(float gray)
Changes the currentgray tint for stroking paths (device dependent colors!)
voidsetGState(PdfGState gstate)
Sets the graphic state
voidsetHorizontalScaling(float scale)
Sets the horizontal scaling parameter.
voidsetLeading(float leading)
Sets the text leading parameter.
voidsetLineCap(int style)
Changes the Line cap style.
voidsetLineDash(float phase)
Changes the value of the line dash pattern.
voidsetLineDash(float unitsOn, float phase)
Changes the value of the line dash pattern.
voidsetLineDash(float unitsOn, float unitsOff, float phase)
Changes the value of the line dash pattern.
voidsetLineDash(float[] array, float phase)
Changes the value of the line dash pattern.
voidsetLineJoin(int style)
Changes the Line join style.
voidsetLineWidth(float w)
Changes the line width.
voidsetLiteral(String s)
Outputs a String directly to the content.
voidsetLiteral(char c)
Outputs a char directly to the content.
voidsetLiteral(float n)
Outputs a float directly to the content.
voidsetMiterLimit(float miterLimit)
Changes the Miter limit.
voidsetPatternFill(PdfPatternPainter p)
Sets the fill color to a pattern.
voidsetPatternFill(PdfPatternPainter p, Color color)
Sets the fill color to an uncolored pattern.
voidsetPatternFill(PdfPatternPainter p, Color color, float tint)
Sets the fill color to an uncolored pattern.
voidsetPatternStroke(PdfPatternPainter p, Color color)
Sets the stroke color to an uncolored pattern.
voidsetPatternStroke(PdfPatternPainter p, Color color, float tint)
Sets the stroke color to an uncolored pattern.
voidsetPatternStroke(PdfPatternPainter p)
Sets the stroke color to a pattern.
voidsetRGBColorFill(int red, int green, int blue)
Changes the current color for filling paths (device dependent colors!)
voidsetRGBColorFillF(float red, float green, float blue)
Changes the current color for filling paths (device dependent colors!)
voidsetRGBColorStroke(int red, int green, int blue)
Changes the current color for stroking paths (device dependent colors!)
voidsetRGBColorStrokeF(float red, float green, float blue)
Changes the current color for stroking paths (device dependent colors!)
voidsetShadingFill(PdfShadingPattern shading)
Sets the shading fill pattern.
voidsetShadingStroke(PdfShadingPattern shading)
Sets the shading stroke pattern
voidsetTextMatrix(float a, float b, float c, float d, float x, float y)
Changes the text matrix.
voidsetTextMatrix(float x, float y)
Changes the text matrix.
voidsetTextRenderingMode(int rendering)
Sets the text rendering parameter.
voidsetTextRise(float rise)
Sets the text rise parameter.
voidsetWordSpacing(float wordSpace)
Sets the word spacing parameter.
voidshowText(String text)
Shows the text.
voidshowText(PdfTextArray text)
Show an array of text.
voidshowText2(String text)
A helper to insert into the content stream the text converted to bytes according to the font's encoding.
voidshowTextAligned(int alignment, String text, float x, float y, float rotation)
Shows text right, left or center aligned with rotation.
voidshowTextAligned(int alignment, String text, float x, float y, float rotation, boolean kerned)
voidshowTextAlignedKerned(int alignment, String text, float x, float y, float rotation)
Shows text kerned right, left or center aligned with rotation.
voidshowTextKerned(String text)
Shows the text kerned.
intsize()
Gets the size of this content.
voidstroke()
Strokes the path.
byte[]toPdf(PdfWriter writer)
Returns the PDF representation of this PdfContentByte-object.
StringtoString()
Returns the String representation of this PdfContentByte-object.
voidtransform(AffineTransform af)
Concatenates a transformation to the current transformation matrix.
voidvariableRectangle(Rectangle rect)
Adds a variable width border to the current path.

Field Detail

ALIGN_CENTER

public static final int ALIGN_CENTER
The alignement is center

ALIGN_LEFT

public static final int ALIGN_LEFT
The alignement is left

ALIGN_RIGHT

public static final int ALIGN_RIGHT
The alignement is right

abrev

private static HashMap abrev

content

protected ByteBuffer content
This is the actual content

layerDepth

protected ArrayList layerDepth
The list were we save/restore the layer depth

LINE_CAP_BUTT

public static final int LINE_CAP_BUTT
A possible line cap value

LINE_CAP_PROJECTING_SQUARE

public static final int LINE_CAP_PROJECTING_SQUARE
A possible line cap value

LINE_CAP_ROUND

public static final int LINE_CAP_ROUND
A possible line cap value

LINE_JOIN_BEVEL

public static final int LINE_JOIN_BEVEL
A possible line join value

LINE_JOIN_MITER

public static final int LINE_JOIN_MITER
A possible line join value

LINE_JOIN_ROUND

public static final int LINE_JOIN_ROUND
A possible line join value

pdf

protected PdfDocument pdf
This is the PdfDocument

separator

protected int separator
The separator between commands.

state

protected PdfContentByte.GraphicState state
This is the GraphicState in use

stateList

protected ArrayList stateList
The list were we save/restore the state

TEXT_RENDER_MODE_CLIP

public static final int TEXT_RENDER_MODE_CLIP
A possible text rendering value

TEXT_RENDER_MODE_FILL

public static final int TEXT_RENDER_MODE_FILL
A possible text rendering value

TEXT_RENDER_MODE_FILL_CLIP

public static final int TEXT_RENDER_MODE_FILL_CLIP
A possible text rendering value

TEXT_RENDER_MODE_FILL_STROKE

public static final int TEXT_RENDER_MODE_FILL_STROKE
A possible text rendering value

TEXT_RENDER_MODE_FILL_STROKE_CLIP

public static final int TEXT_RENDER_MODE_FILL_STROKE_CLIP
A possible text rendering value

TEXT_RENDER_MODE_INVISIBLE

public static final int TEXT_RENDER_MODE_INVISIBLE
A possible text rendering value

TEXT_RENDER_MODE_STROKE

public static final int TEXT_RENDER_MODE_STROKE
A possible text rendering value

TEXT_RENDER_MODE_STROKE_CLIP

public static final int TEXT_RENDER_MODE_STROKE_CLIP
A possible text rendering value

unitRect

private static final float[] unitRect

writer

protected PdfWriter writer
This is the writer

Constructor Detail

PdfContentByte

public PdfContentByte(PdfWriter wr)
Constructs a new PdfContentByte-object.

Parameters: wr the writer associated to this content

Method Detail

add

public void add(PdfContentByte other)
Adds the content of another PdfContent-object to this object.

Parameters: other another PdfByteContent-object

addAnnotation

void addAnnotation(PdfAnnotation annot)

addImage

public void addImage(Image image)
Adds an Image to the page. The Image must have absolute positioning.

Parameters: image the Image object

Throws: DocumentException if the Image does not have absolute positioning

addImage

public void addImage(Image image, boolean inlineImage)
Adds an Image to the page. The Image must have absolute positioning. The image can be placed inline.

Parameters: image the Image object inlineImage true to place this image inline, false otherwise

Throws: DocumentException if the Image does not have absolute positioning

addImage

public void addImage(Image image, float a, float b, float c, float d, float e, float f)
Adds an Image to the page. The positioning of the Image is done with the transformation matrix. To position an image at (x,y) use addImage(image, image_width, 0, 0, image_height, x, y).

Parameters: image the Image object a an element of the transformation matrix b an element of the transformation matrix c an element of the transformation matrix d an element of the transformation matrix e an element of the transformation matrix f an element of the transformation matrix

Throws: DocumentException on error

addImage

public void addImage(Image image, float a, float b, float c, float d, float e, float f, boolean inlineImage)
Adds an Image to the page. The positioning of the Image is done with the transformation matrix. To position an image at (x,y) use addImage(image, image_width, 0, 0, image_height, x, y). The image can be placed inline.

Parameters: image the Image object a an element of the transformation matrix b an element of the transformation matrix c an element of the transformation matrix d an element of the transformation matrix e an element of the transformation matrix f an element of the transformation matrix inlineImage true to place this image inline, false otherwise

Throws: DocumentException on error

addOutline

public void addOutline(PdfOutline outline)

Deprecated: not needed anymore. The outlines are extracted from the root outline

Adds an outline to the document.

Parameters: outline the outline

addOutline

public void addOutline(PdfOutline outline, String name)
Adds a named outline to the document.

Parameters: outline the outline name the name for the local destination

addPSXObject

public void addPSXObject(PdfPSXObject psobject)
Adds a PostScript XObject to this content.

Parameters: psobject the object

addTemplate

public void addTemplate(PdfTemplate template, float a, float b, float c, float d, float e, float f)
Adds a template to this content.

Parameters: template the template a an element of the transformation matrix b an element of the transformation matrix c an element of the transformation matrix d an element of the transformation matrix e an element of the transformation matrix f an element of the transformation matrix

addTemplate

public void addTemplate(PdfTemplate template, float x, float y)
Adds a template to this content.

Parameters: template the template x the x location of this template y the y location of this template

addTemplateReference

void addTemplateReference(PdfIndirectReference template, PdfName name, float a, float b, float c, float d, float e, float f)

arc

public void arc(float x1, float y1, float x2, float y2, float startAng, float extent)
Draws a partial ellipse inscribed within the rectangle x1,y1,x2,y2, starting at startAng degrees and covering extent degrees. Angles start with 0 to the right (+x) and increase counter-clockwise.

Parameters: x1 a corner of the enclosing rectangle y1 a corner of the enclosing rectangle x2 a corner of the enclosing rectangle y2 a corner of the enclosing rectangle startAng starting angle in degrees extent angle extent in degrees

beginLayer

public void beginLayer(PdfOCG layer)
Begins a graphic block whose visibility is controled by the layer. Blocks can be nested. Each block must be terminated by an endLayer.

Note that nested layers with addChild only require a single call to this method and a single call to endLayer; all the nesting control is built in.

Parameters: layer the layer

beginLayer2

private void beginLayer2(PdfOCG layer)

beginMarkedContentSequence

public void beginMarkedContentSequence(PdfStructureElement struc)
Begins a marked content sequence. This sequence will be tagged with the structure struc. The same structure can be used several times to connect text that belongs to the same logical segment but is in a different location, like the same paragraph crossing to another page, for example.

Parameters: struc the tagging structure

beginMarkedContentSequence

public void beginMarkedContentSequence(PdfName tag, PdfDictionary property, boolean inline)
Begins a marked content sequence. If property is null the mark will be of the type BMC otherwise it will be BDC.

Parameters: tag the tag property the property inline true to include the property in the content or false to include the property in the resource dictionary with the possibility of reusing

beginMarkedContentSequence

public void beginMarkedContentSequence(PdfName tag)
This is just a shorthand to beginMarkedContentSequence(tag, null, false).

Parameters: tag the tag

beginText

public void beginText()
Starts the writing of text.

bezierArc

public static ArrayList bezierArc(float x1, float y1, float x2, float y2, float startAng, float extent)
Generates an array of bezier curves to draw an arc.

(x1, y1) and (x2, y2) are the corners of the enclosing rectangle. Angles, measured in degrees, start with 0 to the right (the positive X axis) and increase counter-clockwise. The arc extends from startAng to startAng+extent. I.e. startAng=0 and extent=180 yields an openside-down semi-circle.

The resulting coordinates are of the form float[]{x1,y1,x2,y2,x3,y3, x4,y4} such that the curve goes from (x1, y1) to (x4, y4) with (x2, y2) and (x3, y3) as their respective Bezier control points.

Note: this code was taken from ReportLab (www.reportlab.org), an excelent PDF generator for Python (BSD license: http://www.reportlab.org/devfaq.html#1.3 ).

Parameters: x1 a corner of the enclosing rectangle y1 a corner of the enclosing rectangle x2 a corner of the enclosing rectangle y2 a corner of the enclosing rectangle startAng starting angle in degrees extent angle extent in degrees

Returns: a list of float[] with the bezier curves

checkNoPattern

void checkNoPattern(PdfTemplate t)
Throws an error if it is a pattern.

Parameters: t the object to check

checkWriter

protected void checkWriter()
Check if we have a valid PdfWriter.

circle

public void circle(float x, float y, float r)
Draws a circle. The endpoint will (x+r, y).

Parameters: x x center of circle y y center of circle r radius of circle

clip

public void clip()
Modify the current clipping path by intersecting it with the current path, using the nonzero winding number rule to determine which regions lie inside the clipping path.

closePath

public void closePath()
Closes the current subpath by appending a straight line segment from the current point to the starting point of the subpath.

closePathEoFillStroke

public void closePathEoFillStroke()
Closes the path, fills it using the even-odd rule to determine the region to fill and strokes it.

closePathFillStroke

public void closePathFillStroke()
Closes the path, fills it using the non-zero winding number rule to determine the region to fill and strokes it.

closePathStroke

public void closePathStroke()
Closes the path and strokes it.

compareColors

private boolean compareColors(Color c1, Color c2)

concatCTM

public void concatCTM(float a, float b, float c, float d, float e, float f)
Concatenate a matrix to the current transformation matrix.

Parameters: a an element of the transformation matrix b an element of the transformation matrix c an element of the transformation matrix d an element of the transformation matrix e an element of the transformation matrix f an element of the transformation matrix

createAppearance

public PdfAppearance createAppearance(float width, float height)
Creates a new appearance to be used with form fields.

Parameters: width the bounding box width height the bounding box height

Returns: the appearance created

createAppearance

PdfAppearance createAppearance(float width, float height, PdfName forcedName)

createGraphics

public Graphics2D createGraphics(float width, float height)
Gets a Graphics2D to write on. The graphics are translated to PDF commands.

Parameters: width the width of the panel height the height of the panel

Returns: a Graphics2D

createGraphics

public Graphics2D createGraphics(float width, float height, boolean convertImagesToJPEG, float quality)
Gets a Graphics2D to write on. The graphics are translated to PDF commands.

Parameters: width the width of the panel height the height of the panel convertImagesToJPEG quality

Returns: a Graphics2D

createGraphics

public Graphics2D createGraphics(float width, float height, FontMapper fontMapper)
Gets a Graphics2D to write on. The graphics are translated to PDF commands.

Parameters: width the width of the panel height the height of the panel fontMapper the mapping from awt fonts to BaseFont

Returns: a Graphics2D

createGraphics

public Graphics2D createGraphics(float width, float height, FontMapper fontMapper, boolean convertImagesToJPEG, float quality)
Gets a Graphics2D to write on. The graphics are translated to PDF commands.

Parameters: width the width of the panel height the height of the panel fontMapper the mapping from awt fonts to BaseFont convertImagesToJPEG converts awt images to jpeg before inserting in pdf quality the quality of the jpeg

Returns: a Graphics2D

createGraphicsShapes

public Graphics2D createGraphicsShapes(float width, float height)
Gets a Graphics2D to write on. The graphics are translated to PDF commands as shapes. No PDF fonts will appear.

Parameters: width the width of the panel height the height of the panel

Returns: a Graphics2D

createGraphicsShapes

public Graphics2D createGraphicsShapes(float width, float height, boolean convertImagesToJPEG, float quality)
Gets a Graphics2D to print on. The graphics are translated to PDF commands.

Parameters: width height convertImagesToJPEG quality

Returns: A Graphics2D object

createPattern

public PdfPatternPainter createPattern(float width, float height, float xstep, float ystep)
Create a new colored tiling pattern.

Parameters: width the width of the pattern height the height of the pattern xstep the desired horizontal spacing between pattern cells. May be either positive or negative, but not zero. ystep the desired vertical spacing between pattern cells. May be either positive or negative, but not zero.

Returns: the PdfPatternPainter where the pattern will be created

createPattern

public PdfPatternPainter createPattern(float width, float height)
Create a new colored tiling pattern. Variables xstep and ystep are set to the same values of width and height.

Parameters: width the width of the pattern height the height of the pattern

Returns: the PdfPatternPainter where the pattern will be created

createPattern

public PdfPatternPainter createPattern(float width, float height, float xstep, float ystep, Color color)
Create a new uncolored tiling pattern.

Parameters: width the width of the pattern height the height of the pattern xstep the desired horizontal spacing between pattern cells. May be either positive or negative, but not zero. ystep the desired vertical spacing between pattern cells. May be either positive or negative, but not zero. color the default color. Can be null

Returns: the PdfPatternPainter where the pattern will be created

createPattern

public PdfPatternPainter createPattern(float width, float height, Color color)
Create a new uncolored tiling pattern. Variables xstep and ystep are set to the same values of width and height.

Parameters: width the width of the pattern height the height of the pattern color the default color. Can be null

Returns: the PdfPatternPainter where the pattern will be created

createPrinterGraphics

public Graphics2D createPrinterGraphics(float width, float height, PrinterJob printerJob)
Gets a Graphics2D to print on. The graphics are translated to PDF commands.

Parameters: width the width of the panel height the height of the panel printerJob

Returns: a Graphics2D

createPrinterGraphics

public Graphics2D createPrinterGraphics(float width, float height, boolean convertImagesToJPEG, float quality, PrinterJob printerJob)
Gets a Graphics2D to print on. The graphics are translated to PDF commands.

Parameters: width the width of the panel height the height of the panel convertImagesToJPEG quality printerJob

Returns: a Graphics2D

createPrinterGraphics

public Graphics2D createPrinterGraphics(float width, float height, FontMapper fontMapper, PrinterJob printerJob)
Gets a Graphics2D to print on. The graphics are translated to PDF commands.

Parameters: width the width of the panel height the height of the panel fontMapper the mapping from awt fonts to BaseFont printerJob a printer job

Returns: a Graphics2D

createPrinterGraphics

public Graphics2D createPrinterGraphics(float width, float height, FontMapper fontMapper, boolean convertImagesToJPEG, float quality, PrinterJob printerJob)
Gets a Graphics2D to print on. The graphics are translated to PDF commands.

Parameters: width the width of the panel height the height of the panel fontMapper the mapping from awt fonts to BaseFont convertImagesToJPEG converts awt images to jpeg before inserting in pdf quality the quality of the jpeg printerJob a printer job

Returns: a Graphics2D

createPrinterGraphicsShapes

public Graphics2D createPrinterGraphicsShapes(float width, float height, PrinterJob printerJob)
Gets a Graphics2D to print on. The graphics are translated to PDF commands as shapes. No PDF fonts will appear.

Parameters: width the width of the panel height the height of the panel printerJob a printer job

Returns: a Graphics2D

createPrinterGraphicsShapes

public Graphics2D createPrinterGraphicsShapes(float width, float height, boolean convertImagesToJPEG, float quality, PrinterJob printerJob)
Gets a Graphics2D to print on. The graphics are translated to PDF commands.

Parameters: width height convertImagesToJPEG quality printerJob

Returns: a Graphics2D object

createTemplate

public PdfTemplate createTemplate(float width, float height)
Creates a new template.

Creates a new template that is nothing more than a form XObject. This template can be included in this PdfContentByte or in another template. Templates are only written to the output when the document is closed permitting things like showing text in the first page that is only defined in the last page.

Parameters: width the bounding box width height the bounding box height

Returns: the templated created

createTemplate

PdfTemplate createTemplate(float width, float height, PdfName forcedName)

curveFromTo

public void curveFromTo(float x1, float y1, float x3, float y3)
Appends a Bjzier curve to the path, starting from the current point.

Parameters: x1 x-coordinate of the first control point y1 y-coordinate of the first control point x3 x-coordinaat of the ending point (= new current point) y3 y-coordinaat of the ending point (= new current point)

curveTo

public void curveTo(float x1, float y1, float x2, float y2, float x3, float y3)
Appends a Bjzier curve to the path, starting from the current point.

Parameters: x1 x-coordinate of the first control point y1 y-coordinate of the first control point x2 x-coordinate of the second control point y2 y-coordinate of the second control point x3 x-coordinaat of the ending point (= new current point) y3 y-coordinaat of the ending point (= new current point)

curveTo

public void curveTo(float x2, float y2, float x3, float y3)
Appends a Bjzier curve to the path, starting from the current point.

Parameters: x2 x-coordinate of the second control point y2 y-coordinate of the second control point x3 x-coordinaat of the ending point (= new current point) y3 y-coordinaat of the ending point (= new current point)

drawButton

public void drawButton(float llx, float lly, float urx, float ury, String text, BaseFont bf, float size)
Draws a button.

Parameters: llx lly urx ury text bf size

drawRadioField

public void drawRadioField(float llx, float lly, float urx, float ury, boolean on)
Draws a TextField.

Parameters: llx lly urx ury on

drawTextField

public void drawTextField(float llx, float lly, float urx, float ury)
Draws a TextField.

Parameters: llx lly urx ury

ellipse

public void ellipse(float x1, float y1, float x2, float y2)
Draws an ellipse inscribed within the rectangle x1,y1,x2,y2.

Parameters: x1 a corner of the enclosing rectangle y1 a corner of the enclosing rectangle x2 a corner of the enclosing rectangle y2 a corner of the enclosing rectangle

endLayer

public void endLayer()
Ends a layer controled graphic block. It will end the most recent open block.

endMarkedContentSequence

public void endMarkedContentSequence()
Ends a marked content sequence

endText

public void endText()
Ends the writing of text and makes the current font invalid.

eoClip

public void eoClip()
Modify the current clipping path by intersecting it with the current path, using the even-odd rule to determine which regions lie inside the clipping path.

eoFill

public void eoFill()
Fills the path, using the even-odd rule to determine the region to fill.

eoFillStroke

public void eoFillStroke()
Fills the path, using the even-odd rule to determine the region to fill and strokes it.

escapeString

static byte[] escapeString(byte[] b)
Escapes a byte array according to the PDF conventions.

Parameters: b the byte array to escape

Returns: an escaped byte array

escapeString

static void escapeString(byte[] b, ByteBuffer content)
Escapes a byte array according to the PDF conventions.

Parameters: b the byte array to escape content the content

fill

public void fill()
Fills the path, using the non-zero winding number rule to determine the region to fill.

fillStroke

public void fillStroke()
Fills the path using the non-zero winding number rule to determine the region to fill and strokes it.

getCharacterSpacing

public float getCharacterSpacing()
Gets the current character spacing.

Returns: the current character spacing

getDuplicate

public PdfContentByte getDuplicate()
Gets a duplicate of this PdfContentByte. All the members are copied by reference but the buffer stays different.

Returns: a copy of this PdfContentByte

getEffectiveStringWidth

public float getEffectiveStringWidth(String text, boolean kerned)
Computes the width of the given string taking in account the current values of "Character spacing", "Word Spacing" and "Horizontal Scaling". The additional spacing is not computed for the last character of the string.

Parameters: text the string to get width of kerned the kerning option

Returns: the width

getHorizontalScaling

public float getHorizontalScaling()
Gets the current character spacing.

Returns: the current character spacing

getInternalBuffer

public ByteBuffer getInternalBuffer()
Gets the internal buffer.

Returns: the internal buffer

getKernArray

public static PdfTextArray getKernArray(String text, BaseFont font)
Constructs a kern array for a text in a certain font

Parameters: text the text font the font

Returns: a PdfTextArray

getLeading

public float getLeading()
Gets the current text leading.

Returns: the current text leading

getPageResources

PageResources getPageResources()

getPdfDocument

public PdfDocument getPdfDocument()
Gets the PdfDocument in use by this object.

Returns: the PdfDocument in use by this object

getPdfWriter

public PdfWriter getPdfWriter()
Gets the PdfWriter in use by this object.

Returns: the PdfWriter in use by this object

getRootOutline

public PdfOutline getRootOutline()
Gets the root outline.

Returns: the root outline

getWordSpacing

public float getWordSpacing()
Gets the current word spacing.

Returns: the current word spacing

getXTLM

public float getXTLM()
Gets the x position of the text line matrix.

Returns: the x position of the text line matrix

getYTLM

public float getYTLM()
Gets the y position of the text line matrix.

Returns: the y position of the text line matrix

HelperCMYK

private void HelperCMYK(float cyan, float magenta, float yellow, float black)
Helper to validate and write the CMYK color components.

Parameters: cyan the intensity of cyan. A value between 0 and 1 magenta the intensity of magenta. A value between 0 and 1 yellow the intensity of yellow. A value between 0 and 1 black the intensity of black. A value between 0 and 1

HelperRGB

private void HelperRGB(float red, float green, float blue)
Helper to validate and write the RGB color components

Parameters: red the intensity of red. A value between 0 and 1 green the intensity of green. A value between 0 and 1 blue the intensity of blue. A value between 0 and 1

lineTo

public void lineTo(float x, float y)
Appends a straight line segment from the current point (x, y). The new current point is (x, y).

Parameters: x new x-coordinate y new y-coordinate

localDestination

public boolean localDestination(String name, PdfDestination destination)
The local destination to where a local goto with the same name will jump.

Parameters: name the name of this local destination destination the PdfDestination with the jump coordinates

Returns: true if the local destination was added, false if a local destination with the same name already exists

localGoto

public void localGoto(String name, float llx, float lly, float urx, float ury)
Implements a link to other part of the document. The jump will be made to a local destination with the same name, that must exist.

Parameters: name the name for this link llx the lower left x corner of the activation area lly the lower left y corner of the activation area urx the upper right x corner of the activation area ury the upper right y corner of the activation area

moveText

public void moveText(float x, float y)
Moves to the start of the next line, offset from the start of the current line.

Parameters: x x-coordinate of the new current point y y-coordinate of the new current point

moveTextWithLeading

public void moveTextWithLeading(float x, float y)
Moves to the start of the next line, offset from the start of the current line.

As a side effect, this sets the leading parameter in the text state.

Parameters: x offset of the new current point y y-coordinate of the new current point

moveTo

public void moveTo(float x, float y)
Move the current point (x, y), omitting any connecting line segment.

Parameters: x new x-coordinate y new y-coordinate

newlineShowText

public void newlineShowText(String text)
Moves to the next line and shows text.

Parameters: text the text to write

newlineShowText

public void newlineShowText(float wordSpacing, float charSpacing, String text)
Moves to the next line and shows text string, using the given values of the character and word spacing parameters.

Parameters: wordSpacing a parameter charSpacing a parameter text the text to write

newlineText

public void newlineText()
Moves to the start of the next line.

newPath

public void newPath()
Ends the path without filling or stroking it.

outputColorNumbers

void outputColorNumbers(Color color, float tint)
Outputs the color values to the content.

Parameters: color The color tint the tint if it is a spot color, ignored otherwise

paintShading

public void paintShading(PdfShading shading)
Paints using a shading object.

Parameters: shading the shading object

paintShading

public void paintShading(PdfShadingPattern shading)
Paints using a shading pattern.

Parameters: shading the shading pattern

rectangle

public void rectangle(float x, float y, float w, float h)
Adds a rectangle to the current path.

Parameters: x x-coordinate of the starting point y y-coordinate of the starting point w width h height

rectangle

public void rectangle(Rectangle rectangle)
Adds a border (complete or partially) to the current path..

Parameters: rectangle a Rectangle

remoteGoto

public void remoteGoto(String filename, String name, float llx, float lly, float urx, float ury)
Implements a link to another document.

Parameters: filename the filename for the remote document name the name to jump to llx the lower left x corner of the activation area lly the lower left y corner of the activation area urx the upper right x corner of the activation area ury the upper right y corner of the activation area

remoteGoto

public void remoteGoto(String filename, int page, float llx, float lly, float urx, float ury)
Implements a link to another document.

Parameters: filename the filename for the remote document page the page to jump to llx the lower left x corner of the activation area lly the lower left y corner of the activation area urx the upper right x corner of the activation area ury the upper right y corner of the activation area

reset

public void reset()
Makes this PdfContentByte empty.

resetCMYKColorFill

public void resetCMYKColorFill()
Changes the current color for filling paths to black.

resetCMYKColorStroke

public void resetCMYKColorStroke()
Changes the current color for stroking paths to black.

resetGrayFill

public void resetGrayFill()
Changes the current gray tint for filling paths to black.

resetGrayStroke

public void resetGrayStroke()
Changes the current gray tint for stroking paths to black.

resetRGBColorFill

public void resetRGBColorFill()
Changes the current color for filling paths to black.

resetRGBColorStroke

public void resetRGBColorStroke()
Changes the current color for stroking paths to black.

restoreState

public void restoreState()
Restores the graphic state. saveState and restoreState must be balanced.

roundRectangle

public void roundRectangle(float x, float y, float w, float h, float r)
Adds a round rectangle to the current path.

Parameters: x x-coordinate of the starting point y y-coordinate of the starting point w width h height r radius of the arc corner

saveState

public void saveState()
Saves the graphic state. saveState and restoreState must be balanced.

setAction

public void setAction(PdfAction action, float llx, float lly, float urx, float ury)
Implements an action in an area.

Parameters: action the PdfAction llx the lower left x corner of the activation area lly the lower left y corner of the activation area urx the upper right x corner of the activation area ury the upper right y corner of the activation area

setCharacterSpacing

public void setCharacterSpacing(float charSpace)
Sets the character spacing parameter.

Parameters: charSpace a parameter

setCMYKColorFill

public void setCMYKColorFill(int cyan, int magenta, int yellow, int black)
Changes the current color for filling paths (device dependent colors!).

Sets the color space to DeviceCMYK (or the DefaultCMYK color space), and sets the color to use for filling paths.

This method is described in the 'Portable Document Format Reference Manual version 1.3' section 8.5.2.1 (page 331).

Following the PDF manual, each operand must be a number between 0 (no ink) and 1 (maximum ink). This method however accepts only integers between 0x00 and 0xFF.

Parameters: cyan the intensity of cyan magenta the intensity of magenta yellow the intensity of yellow black the intensity of black

setCMYKColorFillF

public void setCMYKColorFillF(float cyan, float magenta, float yellow, float black)
Changes the current color for filling paths (device dependent colors!).

Sets the color space to DeviceCMYK (or the DefaultCMYK color space), and sets the color to use for filling paths.

Following the PDF manual, each operand must be a number between 0 (no ink) and 1 (maximum ink).

Parameters: cyan the intensity of cyan. A value between 0 and 1 magenta the intensity of magenta. A value between 0 and 1 yellow the intensity of yellow. A value between 0 and 1 black the intensity of black. A value between 0 and 1

setCMYKColorStroke

public void setCMYKColorStroke(int cyan, int magenta, int yellow, int black)
Changes the current color for stroking paths (device dependent colors!).

Sets the color space to DeviceCMYK (or the DefaultCMYK color space), and sets the color to use for stroking paths.

This method is described in the 'Portable Document Format Reference Manual version 1.3' section 8.5.2.1 (page 331).

Following the PDF manual, each operand must be a number between 0 (miniumum intensity) and 1 (maximum intensity). This method however accepts only integers between 0x00 and 0xFF.

Parameters: cyan the intensity of red magenta the intensity of green yellow the intensity of blue black the intensity of black

setCMYKColorStrokeF

public void setCMYKColorStrokeF(float cyan, float magenta, float yellow, float black)
Changes the current color for stroking paths (device dependent colors!).

Sets the color space to DeviceCMYK (or the DefaultCMYK color space), and sets the color to use for stroking paths.

Following the PDF manual, each operand must be a number between 0 (miniumum intensity) and 1 (maximum intensity).

Parameters: cyan the intensity of cyan. A value between 0 and 1 magenta the intensity of magenta. A value between 0 and 1 yellow the intensity of yellow. A value between 0 and 1 black the intensity of black. A value between 0 and 1

setColorFill

public void setColorFill(Color color)
Sets the fill color. color can be an ExtendedColor.

Parameters: color the color

setColorFill

public void setColorFill(PdfSpotColor sp, float tint)
Sets the fill color to a spot color.

Parameters: sp the spot color tint the tint for the spot color. 0 is no color and 1 is 100% color

setColorStroke

public void setColorStroke(Color color)
Sets the stroke color. color can be an ExtendedColor.

Parameters: color the color

setColorStroke

public void setColorStroke(PdfSpotColor sp, float tint)
Sets the stroke color to a spot color.

Parameters: sp the spot color tint the tint for the spot color. 0 is no color and 1 is 100% color

setDefaultColorspace

public void setDefaultColorspace(PdfName name, PdfObject obj)
Sets the default colorspace.

Parameters: name the name of the colorspace. It can be PdfName.DEFAULTGRAY, PdfName.DEFAULTRGB or PdfName.DEFAULTCMYK obj the colorspace. A null or PdfNull removes any colorspace with the same name

setFlatness

public void setFlatness(float flatness)
Changes the Flatness.

Flatness sets the maximum permitted distance in device pixels between the mathematically correct path and an approximation constructed from straight line segments.

Parameters: flatness a value

setFontAndSize

public void setFontAndSize(BaseFont bf, float size)
Set the font and the size for the subsequent text writing.

Parameters: bf the font size the font size in points

setGrayFill

public void setGrayFill(float gray)
Changes the currentgray tint for filling paths (device dependent colors!).

Sets the color space to DeviceGray (or the DefaultGray color space), and sets the gray tint to use for filling paths.

Parameters: gray a value between 0 (black) and 1 (white)

setGrayStroke

public void setGrayStroke(float gray)
Changes the currentgray tint for stroking paths (device dependent colors!).

Sets the color space to DeviceGray (or the DefaultGray color space), and sets the gray tint to use for stroking paths.

Parameters: gray a value between 0 (black) and 1 (white)

setGState

public void setGState(PdfGState gstate)
Sets the graphic state

Parameters: gstate the graphic state

setHorizontalScaling

public void setHorizontalScaling(float scale)
Sets the horizontal scaling parameter.

Parameters: scale a parameter

setLeading

public void setLeading(float leading)
Sets the text leading parameter.

The leading parameter is measured in text space units. It specifies the vertical distance between the baselines of adjacent lines of text.

Parameters: leading the new leading

setLineCap

public void setLineCap(int style)
Changes the Line cap style.

The line cap style specifies the shape to be used at the end of open subpaths when they are stroked.
Allowed values are LINE_CAP_BUTT, LINE_CAP_ROUND and LINE_CAP_PROJECTING_SQUARE.

Parameters: style a value

setLineDash

public void setLineDash(float phase)
Changes the value of the line dash pattern.

The line dash pattern controls the pattern of dashes and gaps used to stroke paths. It is specified by an array and a phase. The array specifies the length of the alternating dashes and gaps. The phase specifies the distance into the dash pattern to start the dash.

Parameters: phase the value of the phase

setLineDash

public void setLineDash(float unitsOn, float phase)
Changes the value of the line dash pattern.

The line dash pattern controls the pattern of dashes and gaps used to stroke paths. It is specified by an array and a phase. The array specifies the length of the alternating dashes and gaps. The phase specifies the distance into the dash pattern to start the dash.

Parameters: phase the value of the phase unitsOn the number of units that must be 'on' (equals the number of units that must be 'off').

setLineDash

public void setLineDash(float unitsOn, float unitsOff, float phase)
Changes the value of the line dash pattern.

The line dash pattern controls the pattern of dashes and gaps used to stroke paths. It is specified by an array and a phase. The array specifies the length of the alternating dashes and gaps. The phase specifies the distance into the dash pattern to start the dash.

Parameters: phase the value of the phase unitsOn the number of units that must be 'on' unitsOff the number of units that must be 'off'

setLineDash

public final void setLineDash(float[] array, float phase)
Changes the value of the line dash pattern.

The line dash pattern controls the pattern of dashes and gaps used to stroke paths. It is specified by an array and a phase. The array specifies the length of the alternating dashes and gaps. The phase specifies the distance into the dash pattern to start the dash.

Parameters: array length of the alternating dashes and gaps phase the value of the phase

setLineJoin

public void setLineJoin(int style)
Changes the Line join style.

The line join style specifies the shape to be used at the corners of paths that are stroked.
Allowed values are LINE_JOIN_MITER (Miter joins), LINE_JOIN_ROUND (Round joins) and LINE_JOIN_BEVEL (Bevel joins).

Parameters: style a value

setLineWidth

public void setLineWidth(float w)
Changes the line width.

The line width specifies the thickness of the line used to stroke a path and is measured in user space units.

Parameters: w a width

setLiteral

public void setLiteral(String s)
Outputs a String directly to the content.

Parameters: s the String

setLiteral

public void setLiteral(char c)
Outputs a char directly to the content.

Parameters: c the char

setLiteral

public void setLiteral(float n)
Outputs a float directly to the content.

Parameters: n the float

setMiterLimit

public void setMiterLimit(float miterLimit)
Changes the Miter limit.

When two line segments meet at a sharp angle and mitered joins have been specified as the line join style, it is possible for the miter to extend far beyond the thickness of the line stroking path. The miter limit imposes a maximum on the ratio of the miter length to the line witdh. When the limit is exceeded, the join is converted from a miter to a bevel.

Parameters: miterLimit a miter limit

setPatternFill

public void setPatternFill(PdfPatternPainter p)
Sets the fill color to a pattern. The pattern can be colored or uncolored.

Parameters: p the pattern

setPatternFill

public void setPatternFill(PdfPatternPainter p, Color color)
Sets the fill color to an uncolored pattern.

Parameters: p the pattern color the color of the pattern

setPatternFill

public void setPatternFill(PdfPatternPainter p, Color color, float tint)
Sets the fill color to an uncolored pattern.

Parameters: p the pattern color the color of the pattern tint the tint if the color is a spot color, ignored otherwise

setPatternStroke

public void setPatternStroke(PdfPatternPainter p, Color color)
Sets the stroke color to an uncolored pattern.

Parameters: p the pattern color the color of the pattern

setPatternStroke

public void setPatternStroke(PdfPatternPainter p, Color color, float tint)
Sets the stroke color to an uncolored pattern.

Parameters: p the pattern color the color of the pattern tint the tint if the color is a spot color, ignored otherwise

setPatternStroke

public void setPatternStroke(PdfPatternPainter p)
Sets the stroke color to a pattern. The pattern can be colored or uncolored.

Parameters: p the pattern

setRGBColorFill

public void setRGBColorFill(int red, int green, int blue)
Changes the current color for filling paths (device dependent colors!).

Sets the color space to DeviceRGB (or the DefaultRGB color space), and sets the color to use for filling paths.

This method is described in the 'Portable Document Format Reference Manual version 1.3' section 8.5.2.1 (page 331).

Following the PDF manual, each operand must be a number between 0 (miniumum intensity) and 1 (maximum intensity). This method however accepts only integers between 0x00 and 0xFF.

Parameters: red the intensity of red green the intensity of green blue the intensity of blue

setRGBColorFillF

public void setRGBColorFillF(float red, float green, float blue)
Changes the current color for filling paths (device dependent colors!).

Sets the color space to DeviceRGB (or the DefaultRGB color space), and sets the color to use for filling paths.

Following the PDF manual, each operand must be a number between 0 (minimum intensity) and 1 (maximum intensity).

Parameters: red the intensity of red. A value between 0 and 1 green the intensity of green. A value between 0 and 1 blue the intensity of blue. A value between 0 and 1

setRGBColorStroke

public void setRGBColorStroke(int red, int green, int blue)
Changes the current color for stroking paths (device dependent colors!).

Sets the color space to DeviceRGB (or the DefaultRGB color space), and sets the color to use for stroking paths.

This method is described in the 'Portable Document Format Reference Manual version 1.3' section 8.5.2.1 (page 331).

Following the PDF manual, each operand must be a number between 0 (miniumum intensity) and 1 (maximum intensity). This method however accepts only integers between 0x00 and 0xFF.

Parameters: red the intensity of red green the intensity of green blue the intensity of blue

setRGBColorStrokeF

public void setRGBColorStrokeF(float red, float green, float blue)
Changes the current color for stroking paths (device dependent colors!).

Sets the color space to DeviceRGB (or the DefaultRGB color space), and sets the color to use for stroking paths.

Following the PDF manual, each operand must be a number between 0 (miniumum intensity) and 1 (maximum intensity).

Parameters: red the intensity of red. A value between 0 and 1 green the intensity of green. A value between 0 and 1 blue the intensity of blue. A value between 0 and 1

setShadingFill

public void setShadingFill(PdfShadingPattern shading)
Sets the shading fill pattern.

Parameters: shading the shading pattern

setShadingStroke

public void setShadingStroke(PdfShadingPattern shading)
Sets the shading stroke pattern

Parameters: shading the shading pattern

setTextMatrix

public void setTextMatrix(float a, float b, float c, float d, float x, float y)
Changes the text matrix.

Remark: this operation also initializes the current point position.

Parameters: a operand 1,1 in the matrix b operand 1,2 in the matrix c operand 2,1 in the matrix d operand 2,2 in the matrix x operand 3,1 in the matrix y operand 3,2 in the matrix

setTextMatrix

public void setTextMatrix(float x, float y)
Changes the text matrix. The first four parameters are {1,0,0,1}.

Remark: this operation also initializes the current point position.

Parameters: x operand 3,1 in the matrix y operand 3,2 in the matrix

setTextRenderingMode

public void setTextRenderingMode(int rendering)
Sets the text rendering parameter.

Parameters: rendering a parameter

setTextRise

public void setTextRise(float rise)
Sets the text rise parameter.

This allows to write text in subscript or superscript mode.

Parameters: rise a parameter

setWordSpacing

public void setWordSpacing(float wordSpace)
Sets the word spacing parameter.

Parameters: wordSpace a parameter

showText

public void showText(String text)
Shows the text.

Parameters: text the text to write

showText

public void showText(PdfTextArray text)
Show an array of text.

Parameters: text array of text

showText2

private void showText2(String text)
A helper to insert into the content stream the text converted to bytes according to the font's encoding.

Parameters: text the text to write

showTextAligned

public void showTextAligned(int alignment, String text, float x, float y, float rotation)
Shows text right, left or center aligned with rotation.

Parameters: alignment the alignment can be ALIGN_CENTER, ALIGN_RIGHT or ALIGN_LEFT text the text to show x the x pivot position y the y pivot position rotation the rotation to be applied in degrees counterclockwise

showTextAligned

private void showTextAligned(int alignment, String text, float x, float y, float rotation, boolean kerned)

showTextAlignedKerned

public void showTextAlignedKerned(int alignment, String text, float x, float y, float rotation)
Shows text kerned right, left or center aligned with rotation.

Parameters: alignment the alignment can be ALIGN_CENTER, ALIGN_RIGHT or ALIGN_LEFT text the text to show x the x pivot position y the y pivot position rotation the rotation to be applied in degrees counterclockwise

showTextKerned

public void showTextKerned(String text)
Shows the text kerned.

Parameters: text the text to write

size

int size()
Gets the size of this content.

Returns: the size of the content

stroke

public void stroke()
Strokes the path.

toPdf

public byte[] toPdf(PdfWriter writer)
Returns the PDF representation of this PdfContentByte-object.

Parameters: writer the PdfWriter

Returns: a byte array with the representation

toString

public String toString()
Returns the String representation of this PdfContentByte-object.

Returns: a String

transform

public void transform(AffineTransform af)
Concatenates a transformation to the current transformation matrix.

Parameters: af the transformation

variableRectangle

public void variableRectangle(Rectangle rect)
Adds a variable width border to the current path. Only use if Rectangle.isUseVariableBorders = true.

Parameters: rect a Rectangle