Package org.apache.pdfbox.pdmodel.edit
Class PDPageContentStream
java.lang.Object
org.apache.pdfbox.pdmodel.edit.PDPageContentStream
- All Implemented Interfaces:
Closeable,AutoCloseable
This class is a convenience for creating page content streams. You MUST
call close() when you are finished with this object.
- Author:
- Ben Litchfield
-
Constructor Summary
ConstructorsConstructorDescriptionPDPageContentStream(PDDocument document, PDPage sourcePage) Create a new PDPage content stream.PDPageContentStream(PDDocument document, PDPage sourcePage, boolean appendContent, boolean compress) Create a new PDPage content stream.PDPageContentStream(PDDocument document, PDPage sourcePage, boolean appendContent, boolean compress, boolean resetContext) Create a new PDPage content stream. -
Method Summary
Modifier and TypeMethodDescriptionvoidaddBezier31(float x1, float y1, float x3, float y3) Append a cubic Bézier curve to the current path.voidaddBezier312(float x1, float y1, float x2, float y2, float x3, float y3) Append a cubic Bézier curve to the current path.voidaddBezier32(float x2, float y2, float x3, float y3) Append a cubic Bézier curve to the current path.voidaddLine(float xStart, float yStart, float xEnd, float yEnd) add a line to the current path.voidaddPolygon(float[] x, float[] y) Add a polygon to the current path.voidaddRect(float x, float y, float width, float height) Add a rectangle to the current path.voidappendCOSName(COSName name) This will append aCOSNameto the content stream.voidappendRawCommands(byte[] commands) This will append raw commands to the content stream.voidappendRawCommands(double data) This will append raw commands to the content stream.voidappendRawCommands(float data) This will append raw commands to the content stream.voidappendRawCommands(int data) This will append raw commands to the content stream.voidappendRawCommands(String commands) This will append raw commands to the content stream.voidBegin a marked content sequence.voidbeginMarkedContentSequence(COSName tag, COSName propsName) Begin a marked content sequence with a reference to an entry in the page resources' Properties dictionary.voidBegin some text operations.voidclipPath(int windingRule) Clip path.voidclose()Close the content stream.voidClose and stroke the path.voidClose subpath.voidconcatenate2CTM(double a, double b, double c, double d, double e, double f) The Cm operator.voidThe Cm operator.voiddrawImage(PDXObjectImage image, float x, float y) Draw an image at the x,y coordinates, with the default size of the image.voiddrawLine(float xStart, float yStart, float xEnd, float yEnd) Draw a line on the page using the current stroking color and the current line width.voiddrawPolygon(float[] x, float[] y) Draw a polygon on the page using the current stroking color.voiddrawString(String text) This will draw a string at the current location on the screen.voiddrawXObject(PDXObject xobject, float x, float y, float width, float height) Draw an xobject(form or image) at the x,y coordinates and a certain width and height.voiddrawXObject(PDXObject xobject, AffineTransform transform) Draw an xobject(form or image) using the givenAffineTransformto position the xobject.voidEnd a marked content sequence.voidendText()End some text operations.voidfill(int windingRule) Fill the path.voidfillPolygon(float[] x, float[] y) Draw and fill a polygon on the page using the current stroking / non stroking colors.voidfillRect(float x, float y, float width, float height) Fill a rectangle on the page using the current non stroking color.voidlineTo(float x, float y) Add a move to the given coordinate.voidmoveTextPositionByAmount(float x, float y) The Td operator.voidmoveTo(float x, float y) Add a line to the given coordinate.voidQ operator.voidq operator.voidSet the font to draw text with.voidsetLineCapStyle(int lineCapStyle) Set the line cap style.voidsetLineDashPattern(float[] pattern, float phase) Set the line dash pattern.voidsetLineJoinStyle(int lineJoinStyle) Set the line join style.voidsetLineWidth(float lineWidth) Set linewidth to the given value.voidsetNonStrokingColor(double g) Set the non stroking color, specified as Grayscale 0.0-1.0.voidsetNonStrokingColor(double c, double m, double y, double k) Set the non stroking color, specified as CMYK, 0.0-1.0.voidsetNonStrokingColor(float[] components) Set the color components of current non stroking colorspace.voidsetNonStrokingColor(int g) Set the non stroking color, specified as grayscale, 0-255.voidsetNonStrokingColor(int r, int g, int b) Set the non stroking color, specified as RGB, 0-255.voidsetNonStrokingColor(int c, int m, int y, int k) Set the non stroking color, specified as CMYK, 0-255.voidsetNonStrokingColor(Color color) Set the non stroking color, specified as RGB.voidsetNonStrokingColorSpace(PDColorSpace colorSpace) Set the stroking color space.voidsetStrokingColor(double g) Set the stroking color, specified as Grayscale 0.0-1.0.voidsetStrokingColor(double c, double m, double y, double k) Set the stroking color, specified as CMYK, 0.0-1.0.voidsetStrokingColor(float[] components) Set the color components of current stroking colorspace.voidsetStrokingColor(int g) Set the stroking color, specified as grayscale, 0-255.voidsetStrokingColor(int r, int g, int b) Set the stroking color, specified as RGB, 0-255.voidsetStrokingColor(int c, int m, int y, int k) Set the stroking color, specified as CMYK, 0-255.voidsetStrokingColor(Color color) Set the stroking color, specified as RGB.voidsetStrokingColorSpace(PDColorSpace colorSpace) Set the stroking color space.voidsetTextMatrix(double a, double b, double c, double d, double e, double f) The Tm operator.voidsetTextMatrix(AffineTransform matrix) The Tm operator.voidsetTextRotation(double angle, double tx, double ty) The Tm operator.voidsetTextScaling(double sx, double sy, double tx, double ty) The Tm operator.voidsetTextTranslation(double tx, double ty) The Tm operator.voidstroke()Stroke the path.
-
Constructor Details
-
PDPageContentStream
Create a new PDPage content stream.- Parameters:
document- The document the page is part of.sourcePage- The page to write the contents to.- Throws:
IOException- If there is an error writing to the page contents.
-
PDPageContentStream
public PDPageContentStream(PDDocument document, PDPage sourcePage, boolean appendContent, boolean compress) throws IOException Create a new PDPage content stream.- Parameters:
document- The document the page is part of.sourcePage- The page to write the contents to.appendContent- Indicates whether content will be overwritten. If false all previous content is deleted.compress- Tell if the content stream should compress the page contents.- Throws:
IOException- If there is an error writing to the page contents.
-
PDPageContentStream
public PDPageContentStream(PDDocument document, PDPage sourcePage, boolean appendContent, boolean compress, boolean resetContext) throws IOException Create a new PDPage content stream.- Parameters:
document- The document the page is part of.sourcePage- The page to write the contents to.appendContent- Indicates whether content will be overwritten. If false all previous content is deleted.compress- Tell if the content stream should compress the page contents.resetContext- Tell if the graphic context should be reseted.- Throws:
IOException- If there is an error writing to the page contents.
-
-
Method Details
-
beginText
Begin some text operations.- Throws:
IOException- If there is an error writing to the stream or if you attempt to nest beginText calls.
-
endText
End some text operations.- Throws:
IOException- If there is an error writing to the stream or if you attempt to nest endText calls.
-
setFont
Set the font to draw text with.- Parameters:
font- The font to use.fontSize- The font size to draw the text.- Throws:
IOException- If there is an error writing the font information.
-
drawImage
Draw an image at the x,y coordinates, with the default size of the image.- Parameters:
image- The image to draw.x- The x-coordinate to draw the image.y- The y-coordinate to draw the image.- Throws:
IOException- If there is an error writing to the stream.
-
drawXObject
public void drawXObject(PDXObject xobject, float x, float y, float width, float height) throws IOException Draw an xobject(form or image) at the x,y coordinates and a certain width and height.- Parameters:
xobject- The xobject to draw.x- The x-coordinate to draw the image.y- The y-coordinate to draw the image.width- The width of the image to draw.height- The height of the image to draw.- Throws:
IOException- If there is an error writing to the stream.
-
drawXObject
Draw an xobject(form or image) using the givenAffineTransformto position the xobject.- Parameters:
xobject- The xobject to draw.transform- the transformation matrix- Throws:
IOException- If there is an error writing to the stream.
-
moveTextPositionByAmount
The Td operator. A current text matrix will be replaced with a new one (1 0 0 1 x y).- Parameters:
x- The x coordinate.y- The y coordinate.- Throws:
IOException- If there is an error writing to the stream.
-
setTextMatrix
public void setTextMatrix(double a, double b, double c, double d, double e, double f) throws IOException The Tm operator. Sets the text matrix to the given values. A current text matrix will be replaced with the new one.- Parameters:
a- The a value of the matrix.b- The b value of the matrix.c- The c value of the matrix.d- The d value of the matrix.e- The e value of the matrix.f- The f value of the matrix.- Throws:
IOException- If there is an error writing to the stream.
-
setTextMatrix
The Tm operator. Sets the text matrix to the given values. A current text matrix will be replaced with the new one.- Parameters:
matrix- the transformation matrix- Throws:
IOException- If there is an error writing to the stream.
-
setTextScaling
The Tm operator. Sets the text matrix to the given scaling and translation values. A current text matrix will be replaced with the new one.- Parameters:
sx- The scaling factor in x-direction.sy- The scaling factor in y-direction.tx- The translation value in x-direction.ty- The translation value in y-direction.- Throws:
IOException- If there is an error writing to the stream.
-
setTextTranslation
The Tm operator. Sets the text matrix to the given translation values. A current text matrix will be replaced with the new one.- Parameters:
tx- The translation value in x-direction.ty- The translation value in y-direction.- Throws:
IOException- If there is an error writing to the stream.
-
setTextRotation
The Tm operator. Sets the text matrix to the given rotation and translation values. A current text matrix will be replaced with the new one.- Parameters:
angle- The angle used for the counterclockwise rotation in radians.tx- The translation value in x-direction.ty- The translation value in y-direction.- Throws:
IOException- If there is an error writing to the stream.
-
concatenate2CTM
public void concatenate2CTM(double a, double b, double c, double d, double e, double f) throws IOException The Cm operator. Concatenates the current transformation matrix with the given values.- Parameters:
a- The a value of the matrix.b- The b value of the matrix.c- The c value of the matrix.d- The d value of the matrix.e- The e value of the matrix.f- The f value of the matrix.- Throws:
IOException- If there is an error writing to the stream.
-
concatenate2CTM
The Cm operator. Concatenates the current transformation matrix with the givenAffineTransform.- Parameters:
at- the transformation matrix- Throws:
IOException- If there is an error writing to the stream.
-
drawString
This will draw a string at the current location on the screen.- Parameters:
text- The text to draw.- Throws:
IOException- If an io exception occurs.
-
setStrokingColorSpace
Set the stroking color space. This will add the colorspace to the PDResources if necessary.- Parameters:
colorSpace- The colorspace to write.- Throws:
IOException- If there is an error writing the colorspace.
-
setNonStrokingColorSpace
Set the stroking color space. This will add the colorspace to the PDResources if necessary.- Parameters:
colorSpace- The colorspace to write.- Throws:
IOException- If there is an error writing the colorspace.
-
setStrokingColor
Set the color components of current stroking colorspace.- Parameters:
components- The components to set for the current color.- Throws:
IOException- If there is an error while writing to the stream.
-
setStrokingColor
Set the stroking color, specified as RGB.- Parameters:
color- The color to set.- Throws:
IOException- If an IO error occurs while writing to the stream.
-
setNonStrokingColor
Set the non stroking color, specified as RGB.- Parameters:
color- The color to set.- Throws:
IOException- If an IO error occurs while writing to the stream.
-
setStrokingColor
Set the stroking color, specified as RGB, 0-255.- Parameters:
r- The red value.g- The green value.b- The blue value.- Throws:
IOException- If an IO error occurs while writing to the stream.IllegalArgumentException- If the parameters are invalid.
-
setStrokingColor
Set the stroking color, specified as CMYK, 0-255.- Parameters:
c- The cyan value.m- The magenta value.y- The yellow value.k- The black value.- Throws:
IOException- If an IO error occurs while writing to the stream.IllegalArgumentException- If the parameters are invalid.
-
setStrokingColor
Set the stroking color, specified as CMYK, 0.0-1.0.- Parameters:
c- The cyan value.m- The magenta value.y- The yellow value.k- The black value.- Throws:
IOException- If an IO error occurs while writing to the stream.IllegalArgumentException- If the parameters are invalid.
-
setStrokingColor
Set the stroking color, specified as grayscale, 0-255.- Parameters:
g- The gray value.- Throws:
IOException- If an IO error occurs while writing to the stream.IllegalArgumentException- If the parameter is invalid.
-
setStrokingColor
Set the stroking color, specified as Grayscale 0.0-1.0.- Parameters:
g- The gray value.- Throws:
IOException- If an IO error occurs while writing to the stream.IllegalArgumentException- If the parameter is invalid.
-
setNonStrokingColor
Set the color components of current non stroking colorspace.- Parameters:
components- The components to set for the current color.- Throws:
IOException- If there is an error while writing to the stream.
-
setNonStrokingColor
Set the non stroking color, specified as RGB, 0-255.- Parameters:
r- The red value.g- The green value.b- The blue value.- Throws:
IOException- If an IO error occurs while writing to the stream.IllegalArgumentException- If the parameters are invalid.
-
setNonStrokingColor
Set the non stroking color, specified as CMYK, 0-255.- Parameters:
c- The cyan value.m- The magenta value.y- The yellow value.k- The black value.- Throws:
IOException- If an IO error occurs while writing to the stream.IllegalArgumentException- If the current colorspace is not DeviceCMYK, or if the parameters are invalid.
-
setNonStrokingColor
Set the non stroking color, specified as CMYK, 0.0-1.0.- Parameters:
c- The cyan value.m- The magenta value.y- The yellow value.k- The black value.- Throws:
IOException- If an IO error occurs while writing to the stream.IllegalArgumentException- If the current colorspace is not DeviceCMYK, or if the parameters are invalid.
-
setNonStrokingColor
Set the non stroking color, specified as grayscale, 0-255.- Parameters:
g- The gray value.- Throws:
IOException- If an IO error occurs while writing to the stream.IllegalArgumentException- If the current colorspace is not DeviceGray, or if the parameter is invalid.
-
setNonStrokingColor
Set the non stroking color, specified as Grayscale 0.0-1.0.- Parameters:
g- The gray value.- Throws:
IOException- If an IO error occurs while writing to the stream.IllegalArgumentException- If the current colorspace is not DeviceGray, or if the parameter is invalid.
-
addRect
Add a rectangle to the current path.- Parameters:
x- The lower left x coordinate.y- The lower left y coordinate.width- The width of the rectangle.height- The height of the rectangle.- Throws:
IOException- If there is an error while drawing on the screen.
-
fillRect
Fill a rectangle on the page using the current non stroking color.- Parameters:
x- The lower left x coordinate.y- The lower left y coordinate.width- The width of the rectangle.height- The height of the rectangle.- Throws:
IOException- If there is an error while drawing on the screen.
-
addBezier312
public void addBezier312(float x1, float y1, float x2, float y2, float x3, float y3) throws IOException Append a cubic Bézier curve to the current path. The curve extends from the current point to the point (x3 , y3 ), using (x1 , y1 ) and (x2 , y2 ) as the Bézier control points- Parameters:
x1- x coordinate of the point 1y1- y coordinate of the point 1x2- x coordinate of the point 2y2- y coordinate of the point 2x3- x coordinate of the point 3y3- y coordinate of the point 3- Throws:
IOException- If there is an error while adding the .
-
addBezier32
Append a cubic Bézier curve to the current path. The curve extends from the current point to the point (x3 , y3 ), using the current point and (x2 , y2 ) as the Bézier control points- Parameters:
x2- x coordinate of the point 2y2- y coordinate of the point 2x3- x coordinate of the point 3y3- y coordinate of the point 3- Throws:
IOException- If there is an error while adding the .
-
addBezier31
Append a cubic Bézier curve to the current path. The curve extends from the current point to the point (x3 , y3 ), using (x1 , y1 ) and (x3 , y3 ) as the Bézier control points- Parameters:
x1- x coordinate of the point 1y1- y coordinate of the point 1x3- x coordinate of the point 3y3- y coordinate of the point 3- Throws:
IOException- If there is an error while adding the .
-
moveTo
Add a line to the given coordinate.- Parameters:
x- The x coordinate.y- The y coordinate.- Throws:
IOException- If there is an error while adding the line.
-
lineTo
Add a move to the given coordinate.- Parameters:
x- The x coordinate.y- The y coordinate.- Throws:
IOException- If there is an error while adding the line.
-
addLine
add a line to the current path.- Parameters:
xStart- The start x coordinate.yStart- The start y coordinate.xEnd- The end x coordinate.yEnd- The end y coordinate.- Throws:
IOException- If there is an error while adding the line.
-
drawLine
Draw a line on the page using the current stroking color and the current line width.- Parameters:
xStart- The start x coordinate.yStart- The start y coordinate.xEnd- The end x coordinate.yEnd- The end y coordinate.- Throws:
IOException- If there is an error while drawing on the screen.
-
addPolygon
Add a polygon to the current path.- Parameters:
x- x coordinate of each pointsy- y coordinate of each points- Throws:
IOException- If there is an error while drawing on the screen.
-
drawPolygon
Draw a polygon on the page using the current stroking color.- Parameters:
x- x coordinate of each pointsy- y coordinate of each points- Throws:
IOException- If there is an error while drawing on the screen.
-
fillPolygon
Draw and fill a polygon on the page using the current stroking / non stroking colors.- Parameters:
x- x coordinate of each pointsy- y coordinate of each points- Throws:
IOException- If there is an error while drawing on the screen.
-
stroke
Stroke the path.- Throws:
IOException- If there is an error while stroking the path.
-
closeAndStroke
Close and stroke the path.- Throws:
IOException- If there is an error while closing and stroking the path.
-
fill
Fill the path.- Parameters:
windingRule- the winding rule to be used for filling- Throws:
IOException- If there is an error while filling the path.
-
closeSubPath
Close subpath.- Throws:
IOException- If there is an error while closing the subpath.
-
clipPath
Clip path.- Parameters:
windingRule- the winding rule to be used for clipping- Throws:
IOException- If there is an error while clipping the path.
-
setLineWidth
Set linewidth to the given value.- Parameters:
lineWidth- The width which is used for drawing.- Throws:
IOException- If there is an error while drawing on the screen.
-
setLineJoinStyle
Set the line join style.- Parameters:
lineJoinStyle- 0 for miter join, 1 for round join, and 2 for bevel join.- Throws:
IOException- If there is an error while writing to the stream.
-
setLineCapStyle
Set the line cap style.- Parameters:
lineCapStyle- 0 for butt cap, 1 for round cap, and 2 for projecting square cap.- Throws:
IOException- If there is an error while writing to the stream.
-
setLineDashPattern
Set the line dash pattern.- Parameters:
pattern- The pattern arrayphase- The phase of the pattern- Throws:
IOException- If there is an error while writing to the stream.
-
beginMarkedContentSequence
Begin a marked content sequence.- Parameters:
tag- the tag- Throws:
IOException- if an I/O error occurs
-
beginMarkedContentSequence
Begin a marked content sequence with a reference to an entry in the page resources' Properties dictionary.- Parameters:
tag- the tagpropsName- the properties reference- Throws:
IOException- if an I/O error occurs
-
endMarkedContentSequence
End a marked content sequence.- Throws:
IOException- if an I/O error occurs
-
saveGraphicsState
q operator. Saves the current graphics state.- Throws:
IOException- If an error occurs while writing to the stream.
-
restoreGraphicsState
Q operator. Restores the current graphics state.- Throws:
IOException- If an error occurs while writing to the stream.
-
appendRawCommands
This will append raw commands to the content stream.- Parameters:
commands- The commands to append to the stream.- Throws:
IOException- If an error occurs while writing to the stream.
-
appendRawCommands
This will append raw commands to the content stream.- Parameters:
commands- The commands to append to the stream.- Throws:
IOException- If an error occurs while writing to the stream.
-
appendRawCommands
This will append raw commands to the content stream.- Parameters:
data- Append a raw byte to the stream.- Throws:
IOException- If an error occurs while writing to the stream.
-
appendRawCommands
This will append raw commands to the content stream.- Parameters:
data- Append a formatted double value to the stream.- Throws:
IOException- If an error occurs while writing to the stream.
-
appendRawCommands
This will append raw commands to the content stream.- Parameters:
data- Append a formatted float value to the stream.- Throws:
IOException- If an error occurs while writing to the stream.
-
appendCOSName
This will append aCOSNameto the content stream.- Parameters:
name- the name- Throws:
IOException- If an error occurs while writing to the stream.
-
close
Close the content stream. This must be called when you are done with this object.- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Throws:
IOException- If the underlying stream has a problem being written to.
-