PoDoFo::PdfPainter Class Reference

#include <PdfPainter.h>

Inheritance diagram for PoDoFo::PdfPainter:

PoDoFo::PdfPainterMM

List of all members.

Public Member Functions

 PdfPainter ()
void SetPage (PdfCanvas *pPage)
PdfCanvasGetPage () const
PdfStreamGetCanvas () const
void FinishPage ()
void SetStrokingGray (double g)
void SetGray (double g)
void SetStrokingColor (double r, double g, double b)
void SetColor (double r, double g, double b)
void SetStrokingColorCMYK (double c, double m, double y, double k)
void SetColorCMYK (double c, double m, double y, double k)
void SetStrokingShadingPattern (const PdfShadingPattern &rPattern)
void SetShadingPattern (const PdfShadingPattern &rPattern)
void SetStrokingTilingPattern (const PdfTilingPattern &rPattern)
void SetStrokingTilingPattern (const std::string &rPatternName)
void SetTilingPattern (const PdfTilingPattern &rPattern)
void SetTilingPattern (const std::string &rPatternName)
void SetStrokingColor (const PdfColor &rColor)
void SetColor (const PdfColor &rColor)
void SetStrokeWidth (double dWidth)
void SetStrokeStyle (EPdfStrokeStyle eStyle, const char *pszCustom=NULL, bool inverted=false, double scale=1.0, bool subtractJoinCap=false)
void SetLineCapStyle (EPdfLineCapStyle eCapStyle)
void SetLineJoinStyle (EPdfLineJoinStyle eJoinStyle)
void SetFont (PdfFont *pFont)
void SetTextRenderingMode (EPdfTextRenderingMode mode)
EPdfTextRenderingMode GetTextRenderingMode (void) const
PdfFontGetFont () const
void SetClipRect (double dX, double dY, double dWidth, double dHeight)
void SetClipRect (const PdfRect &rRect)
void SetMiterLimit (double value)
void DrawLine (double dStartX, double dStartY, double dEndX, double dEndY)
void Rectangle (double dX, double dY, double dWidth, double dHeight, double dRoundX=0.0, double dRoundY=0.0)
void Rectangle (const PdfRect &rRect, double dRoundX=0.0, double dRoundY=0.0)
void Ellipse (double dX, double dY, double dWidth, double dHeight)
void Circle (double dX, double dY, double dRadius)
void DrawText (double dX, double dY, const PdfString &sText)
void DrawText (double dX, double dY, const PdfString &sText, long lLen)
void DrawMultiLineText (double dX, double dY, double dWidth, double dHeight, const PdfString &rsText, EPdfAlignment eAlignment=ePdfAlignment_Left, EPdfVerticalAlignment eVertical=ePdfVerticalAlignment_Top, bool bClip=true)
void DrawMultiLineText (const PdfRect &rRect, const PdfString &rsText, EPdfAlignment eAlignment=ePdfAlignment_Left, EPdfVerticalAlignment eVertical=ePdfVerticalAlignment_Top, bool bClip=true)
std::vector< PdfStringGetMultiLineTextAsLines (double dWidth, const PdfString &rsText)
void DrawTextAligned (double dX, double dY, double dWidth, const PdfString &rsText, EPdfAlignment eAlignment)
void BeginText (double dX, double dY)
void AddText (const PdfString &sText)
void AddText (const PdfString &sText, pdf_long lStringLen)
void MoveTextPos (double dX, double dY)
void EndText ()
void DrawGlyph (PdfMemDocument *pDocument, double dX, double dY, const char *pszGlyphname)
void DrawImage (double dX, double dY, PdfImage *pObject, double dScaleX=1.0, double dScaleY=1.0)
void DrawXObject (double dX, double dY, PdfXObject *pObject, double dScaleX=1.0, double dScaleY=1.0)
void ClosePath ()
void LineTo (double dX, double dY)
void MoveTo (double dX, double dY)
void CubicBezierTo (double dX1, double dY1, double dX2, double dY2, double dX3, double dY3)
void HorizontalLineTo (double dX)
void VerticalLineTo (double dY)
void SmoothCurveTo (double dX2, double dY2, double dX3, double dY3)
void QuadCurveTo (double dX1, double dY1, double dX3, double dY3)
void SmoothQuadCurveTo (double dX3, double dY3)
void ArcTo (double dX, double dY, double dRadiusX, double dRadiusY, double dRotation, bool bLarge, bool bSweep)
void Close ()
void Stroke ()
void Fill (bool useEvenOddRule=false)
void FillAndStroke (bool useEvenOddRule=false)
void Clip (bool useEvenOddRule=false)
void EndPath (void)
void Save ()
void Restore ()
void SetTransformationMatrix (double a, double b, double c, double d, double e, double f)
void SetExtGState (PdfExtGState *inGState)
void SetRenderingIntent (char *intent)
void SetTabWidth (unsigned short nTabWidth)
unsigned short GetTabWidth () const
void SetPrecision (unsigned short inPrec)
unsigned short GetPrecision () const
std::ostringstream & GetCurrentPath (void)

Protected Member Functions

virtual void AddToPageResources (const PdfName &rIdentifier, const PdfReference &rRef, const PdfName &rName)
void SetCurrentStrokingColor ()
PdfString ExpandTabs (const PdfString &rsString, pdf_long lLen) const

Protected Attributes

PdfStreamm_pCanvas
PdfCanvasm_pPage
PdfFontm_pFont
unsigned short m_nTabWidth
PdfColor m_curColor
bool m_isTextOpen
std::ostringstream m_oss
std::ostringstream m_curPath


Detailed Description

This class provides an easy to use painter object which allows you to draw on a PDF page object.

During all drawing operations, you are still able to access the stream of the object you are drawing on directly.

All functions that take coordinates expect these to be in PDF User Units. Keep in mind that PDF has its coordinate system origin at the bottom left corner.


Constructor & Destructor Documentation

PoDoFo::PdfPainter::PdfPainter (  ) 

Create a new PdfPainter object.


Member Function Documentation

void PoDoFo::PdfPainter::SetPage ( PdfCanvas pPage  ) 

Set the page on which the painter should draw. The painter will draw of course on the pages contents object.

Calls FinishPage() on the last page if it was not yet called.

Parameters:
pPage a PdfCanvas object (most likely a PdfPage or PdfXObject).
See also:
PdfPage

PdfXObject

FinishPage()

GetPage()

PdfCanvas * PoDoFo::PdfPainter::GetPage (  )  const [inline]

Return the current page that is that on the painter.

Returns:
the current page of the painter or NULL if none is set

PdfStream * PoDoFo::PdfPainter::GetCanvas (  )  const [inline]

Return the current page canvas stream that is set on the painter.

Returns:
the current page canvas stream of the painter or NULL if none is set

void PoDoFo::PdfPainter::FinishPage (  ) 

Finish drawing onto a page.

This has to be called whenever a page has been drawn complete.

void PoDoFo::PdfPainter::SetStrokingGray ( double  g  ) 

Set the color for all following stroking operations in grayscale colorspace. This operation used the 'G' PDF operator.

Parameters:
g gray scale value in the range 0.0 - 1.0

void PoDoFo::PdfPainter::SetGray ( double  g  ) 

Set the color for all following non-stroking operations in grayscale colorspace. This operation used the 'g' PDF operator.

Parameters:
g gray scale value in the range 0.0 - 1.0

void PoDoFo::PdfPainter::SetStrokingColor ( double  r,
double  g,
double  b 
)

Set the color for all following stroking operations in rgb colorspace. This operation used the 'RG' PDF operator.

Parameters:
r red value in the range 0.0 - 1.0
g green value in the range 0.0 - 1.0
b blue value in the range 0.0 - 1.0

void PoDoFo::PdfPainter::SetColor ( double  r,
double  g,
double  b 
)

Set the color for all following non-stroking operations in rgb colorspace. This operation used the 'rg' PDF operator.

This color is also used when drawing text.

Parameters:
r red value in the range 0.0 - 1.0
g green value in the range 0.0 - 1.0
b blue value in the range 0.0 - 1.0

void PoDoFo::PdfPainter::SetStrokingColorCMYK ( double  c,
double  m,
double  y,
double  k 
)

Set the color for all following stroking operations in cmyk colorspace. This operation used the 'K' PDF operator.

Parameters:
c cyan value in the range 0.0 - 1.0
m magenta value in the range 0.0 - 1.0
y yellow value in the range 0.0 - 1.0
k black value in the range 0.0 - 1.0

void PoDoFo::PdfPainter::SetColorCMYK ( double  c,
double  m,
double  y,
double  k 
)

Set the color for all following non-stroking operations in cmyk colorspace. This operation used the 'k' PDF operator.

Parameters:
c cyan value in the range 0.0 - 1.0
m magenta value in the range 0.0 - 1.0
y yellow value in the range 0.0 - 1.0
k black value in the range 0.0 - 1.0

void PoDoFo::PdfPainter::SetStrokingShadingPattern ( const PdfShadingPattern rPattern  ) 

Set the shading pattern for all following stroking operations. This operation uses the 'SCN' PDF operator.

Parameters:
rPattern a shading pattern

void PoDoFo::PdfPainter::SetShadingPattern ( const PdfShadingPattern rPattern  ) 

Set the shading pattern for all following non-stroking operations. This operation uses the 'scn' PDF operator.

Parameters:
rPattern a shading pattern

void PoDoFo::PdfPainter::SetStrokingTilingPattern ( const PdfTilingPattern rPattern  ) 

Set the tiling pattern for all following stroking operations. This operation uses the 'SCN' PDF operator.

Parameters:
rPattern a tiling pattern

void PoDoFo::PdfPainter::SetStrokingTilingPattern ( const std::string &  rPatternName  ) 

Set the tiling pattern for all following stroking operations by pattern name, Use when it's already in resources. This operation uses the 'SCN' PDF operator.

Parameters:
rPatternName a tiling pattern name

void PoDoFo::PdfPainter::SetTilingPattern ( const PdfTilingPattern rPattern  ) 

Set the tiling pattern for all following non-stroking operations. This operation uses the 'scn' PDF operator.

Parameters:
rPattern a tiling pattern

void PoDoFo::PdfPainter::SetTilingPattern ( const std::string &  rPatternName  ) 

Set the tiling pattern for all following non-stroking operations by pattern name. Use when it's already in resources. This operation uses the 'scn' PDF operator.

Parameters:
rPattern a tiling pattern

void PoDoFo::PdfPainter::SetStrokingColor ( const PdfColor rColor  ) 

Set the color for all following stroking operations.

Parameters:
rColor a PdfColor object

void PoDoFo::PdfPainter::SetColor ( const PdfColor rColor  ) 

Set the color for all following non-stroking operations.

Parameters:
rColor a PdfColor object

void PoDoFo::PdfPainter::SetStrokeWidth ( double  dWidth  ) 

Set the line width for all stroking operations.

Parameters:
dWidth in PDF User Units.

void PoDoFo::PdfPainter::SetStrokeStyle ( EPdfStrokeStyle  eStyle,
const char *  pszCustom = NULL,
bool  inverted = false,
double  scale = 1.0,
bool  subtractJoinCap = false 
)

Set the stoke style for all stroking operations.

Parameters:
eStyle style of the stroking operations
pszCustom a custom stroking style which is used when eStyle == ePdfStrokeStyle_Custom.
inverted inverted dash style (gaps for drawn spaces), it is ignored for None, Solid and Custom styles
scale scale factor of the stroke style it is ignored for None, Solid and Custom styles
subtractJoinCap if true, subtracts scaled width on filled parts, thus the line capability still draws into the cell; is used only if scale is not 1.0
Possible values: ePdfStrokeStyle_None ePdfStrokeStyle_Solid ePdfStrokeStyle_Dash ePdfStrokeStyle_Dot ePdfStrokeStyle_DashDot ePdfStrokeStyle_DashDotDot ePdfStrokeStyle_Custom

void PoDoFo::PdfPainter::SetLineCapStyle ( EPdfLineCapStyle  eCapStyle  ) 

Set the line cap style for all stroking operations.

Parameters:
eCapStyle the cap style.
Possible values: ePdfLineCapStyle_Butt, ePdfLineCapStyle_Round, ePdfLineCapStyle_Square

void PoDoFo::PdfPainter::SetLineJoinStyle ( EPdfLineJoinStyle  eJoinStyle  ) 

Set the line join style for all stroking operations.

Parameters:
eJoinStyle the join style.
Possible values: ePdfLineJoinStyle_Miter ePdfLineJoinStyle_Round ePdfLineJoinStyle_Bevel

void PoDoFo::PdfPainter::SetFont ( PdfFont pFont  ) 

Set the font for all text drawing operations

Parameters:
pFont a handle to a valid PdfFont object
See also:
DrawText

void PoDoFo::PdfPainter::SetTextRenderingMode ( EPdfTextRenderingMode  mode  ) 

Set the text rendering mode

Parameters:
mode What text rendering mode to use.
Possible values: ePdfTextRenderingMode_Fill (default mode) ePdfTextRenderingMode_Stroke ePdfTextRenderingMode_FillAndStroke ePdfTextRenderingMode_Invisible ePdfTextRenderingMode_FillToClipPath ePdfTextRenderingMode_StrokeToClipPath ePdfTextRenderingMode_FillAndStrokeToClipPath ePdfTextRenderingMode_ToClipPath

EPdfTextRenderingMode PoDoFo::PdfPainter::GetTextRenderingMode ( void   )  const [inline]

Gets current text rendering mode. Default mode is ePdfTextRenderingMode_Fill.

PdfFont * PoDoFo::PdfPainter::GetFont (  )  const [inline]

Get the current font:

Returns:
a font object or NULL if no font was set.

void PoDoFo::PdfPainter::SetClipRect ( double  dX,
double  dY,
double  dWidth,
double  dHeight 
)

Set a clipping rectangle

Parameters:
dX x coordinate of the rectangle (left coordinate)
dY y coordinate of the rectangle (bottom coordinate)
dWidth width of the rectangle
dHeight absolute height of the rectangle

void PoDoFo::PdfPainter::SetClipRect ( const PdfRect rRect  )  [inline]

Set a clipping rectangle

Parameters:
rRect rectangle

void PoDoFo::PdfPainter::SetMiterLimit ( double  value  ) 

Set miter limit.

void PoDoFo::PdfPainter::DrawLine ( double  dStartX,
double  dStartY,
double  dEndX,
double  dEndY 
)

Draw a line with the current color and line settings.

Parameters:
dStartX x coordinate of the starting point
dStartY y coordinate of the starting point
dEndX x coordinate of the ending point
dEndY y coordinate of the ending point

void PoDoFo::PdfPainter::Rectangle ( double  dX,
double  dY,
double  dWidth,
double  dHeight,
double  dRoundX = 0.0,
double  dRoundY = 0.0 
)

Add a rectangle into the current path

Parameters:
dX x coordinate of the rectangle (left coordinate)
dY y coordinate of the rectangle (bottom coordinate)
dWidth width of the rectangle
dHeight absolute height of the rectangle
dRoundX rounding factor, x direction
dRoundY rounding factor, y direction

void PoDoFo::PdfPainter::Rectangle ( const PdfRect rRect,
double  dRoundX = 0.0,
double  dRoundY = 0.0 
) [inline]

Add a rectangle into the current path

Parameters:
rRect the rectangle area
dRoundX rounding factor, x direction
dRoundY rounding factor, y direction
See also:
DrawRect

void PoDoFo::PdfPainter::Ellipse ( double  dX,
double  dY,
double  dWidth,
double  dHeight 
)

Add an ellipse into the current path

Parameters:
dX x coordinate of the ellipse (left coordinate)
dY y coordinate of the ellipse (top coordinate)
dWidth width of the ellipse
dHeight absolute height of the ellipse

void PoDoFo::PdfPainter::Circle ( double  dX,
double  dY,
double  dRadius 
)

Add a circle into the current path

Parameters:
dX x center coordinate of the circle
dY y coordinate of the circle
dRadius radius of the circle

void PoDoFo::PdfPainter::DrawText ( double  dX,
double  dY,
const PdfString sText 
)

Draw a single-line text string on a page using a given font object. You have to call SetFont before calling this function.

Parameters:
dX the x coordinate
dY the y coordinate
sText the text string which should be printed
See also:
SetFont()

void PoDoFo::PdfPainter::DrawText ( double  dX,
double  dY,
const PdfString sText,
long  lLen 
)

Draw a single-line text string on a page using a given font object. You have to call SetFont before calling this function.

Parameters:
dX the x coordinate
dY the y coordinate
sText the text string which should be printed (is not allowed to be NULL!)
lLen draw only lLen characters of pszText
See also:
SetFont()

void PoDoFo::PdfPainter::DrawMultiLineText ( double  dX,
double  dY,
double  dWidth,
double  dHeight,
const PdfString rsText,
EPdfAlignment  eAlignment = ePdfAlignment_Left,
EPdfVerticalAlignment  eVertical = ePdfVerticalAlignment_Top,
bool  bClip = true 
)

Draw multiline text into a rectangle doing automatic wordwrapping. The current font is used and SetFont has to be called at least once before using this function

Parameters:
dX the x coordinate of the text area (left)
dY the y coordinate of the text area (bottom)
dWidth width of the text area
dHeight height of the text area
rsText the text which should be drawn
eAlignment alignment of the individual text lines in the given bounding box
eVertical vertical alignment of the text in the given bounding box
bClip set the clipping rectangle to the given rRect, otherwise no clipping is performed

void PoDoFo::PdfPainter::DrawMultiLineText ( const PdfRect rRect,
const PdfString rsText,
EPdfAlignment  eAlignment = ePdfAlignment_Left,
EPdfVerticalAlignment  eVertical = ePdfVerticalAlignment_Top,
bool  bClip = true 
) [inline]

Draw multiline text into a rectangle doing automatic wordwrapping. The current font is used and SetFont has to be called at least once before using this function

Parameters:
rRect bounding rectangle of the text
rsText the text which should be drawn
eAlignment alignment of the individual text lines in the given bounding box
eVertical vertical alignment of the text in the given bounding box
bClip set the clipping rectangle to the given rRect, otherwise no clipping is performed

std::vector< PdfString > PoDoFo::PdfPainter::GetMultiLineTextAsLines ( double  dWidth,
const PdfString rsText 
)

Gets the text divided into individual lines, using the current font and clipping rectangle.

Parameters:
dWidth width of the text area
rsText the text which should be drawn

void PoDoFo::PdfPainter::DrawTextAligned ( double  dX,
double  dY,
double  dWidth,
const PdfString rsText,
EPdfAlignment  eAlignment 
)

Draw a single line of text horizontally aligned.

Parameters:
dX the x coordinate of the text line
dY the y coordinate of the text line
dWidth the width of the text line
rsText the text to draw
eAlignment alignment of the text line

void PoDoFo::PdfPainter::BeginText ( double  dX,
double  dY 
)

Begin drawing multiple text strings on a page using a given font object. You have to call SetFont before calling this function.

If you want more simpler text output and do not need the advanced text position features of MoveTextPos use DrawText which is easier.

Parameters:
dX the x coordinate
dY the y coordinate
See also:
SetFont()

AddText()

MoveTextPos()

EndText()

void PoDoFo::PdfPainter::AddText ( const PdfString sText  ) 

Draw a string on a page. You have to call BeginText before the first call of this function and EndText after the last call.

If you want more simpler text output and do not need the advanced text position features of MoveTextPos use DrawText which is easier.

Parameters:
sText the text string which should be printed
See also:
SetFont()

MoveTextPos()

EndText()

void PoDoFo::PdfPainter::AddText ( const PdfString sText,
pdf_long  lStringLen 
)

Draw a string on a page. You have to call BeginText before the first call of this function and EndText after the last call.

If you want more simpler text output and do not need the advanced text position features of MoveTextPos use DrawText which is easier.

Parameters:
sText the text string which should be printed
lStringLen draw only lLen characters of pszText
See also:
SetFont()

MoveTextPos()

EndText()

void PoDoFo::PdfPainter::MoveTextPos ( double  dX,
double  dY 
)

Move position for text drawing on a page. You have to call BeginText before calling this function

If you want more simpler text output and do not need the advanced text position features of MoveTextPos use DrawText which is easier.

Parameters:
dX the x offset relative to pos of BeginText or last MoveTextPos
dY the y offset relative to pos of BeginText or last MoveTextPos
See also:
BeginText()

AddText()

EndText()

void PoDoFo::PdfPainter::EndText (  ) 

End drawing multiple text strings on a page

If you want more simpler text output and do not need the advanced text position features of MoveTextPos use DrawText which is easier.

See also:
BeginText()

AddText()

MoveTextPos()

void PoDoFo::PdfPainter::DrawGlyph ( PdfMemDocument pDocument,
double  dX,
double  dY,
const char *  pszGlyphname 
)

Draw a single glyph on a page using a given font object.

Parameters:
pDocument pointer to the document, needed to generate a copy of the current font
dX the x coordinate
dY the y coordinate
pszGlyphname the name of the glyph which should be printed
See also:
SetFont()

void PoDoFo::PdfPainter::DrawImage ( double  dX,
double  dY,
PdfImage pObject,
double  dScaleX = 1.0,
double  dScaleY = 1.0 
)

Draw an image on the current page.

Parameters:
dX the x coordinate (bottom left position of the image)
dY the y coordinate (bottom position of the image)
pObject an PdfXObject
dScaleX option scaling factor in x direction
dScaleY option scaling factor in y direction

void PoDoFo::PdfPainter::DrawXObject ( double  dX,
double  dY,
PdfXObject pObject,
double  dScaleX = 1.0,
double  dScaleY = 1.0 
)

Draw an XObject on the current page. For PdfImage use DrawImage.

Parameters:
dX the x coordinate (bottom left position of the XObject)
dY the y coordinate (bottom position of the XObject)
pObject an PdfXObject
dScaleX option scaling factor in x direction
dScaleY option scaling factor in y direction
See also:
DrawImage

void PoDoFo::PdfPainter::ClosePath (  ) 

Closes the current path by drawing a line from the current point to the starting point of the path. Matches the PDF 'h' operator. This function is useful to construct an own path for drawing or clipping.

void PoDoFo::PdfPainter::LineTo ( double  dX,
double  dY 
)

Append a line segment to the current path. Matches the PDF 'l' operator. This function is useful to construct an own path for drawing or clipping.

Parameters:
dX x position
dY y position

void PoDoFo::PdfPainter::MoveTo ( double  dX,
double  dY 
)

Begin a new path. Matches the PDF 'm' operator. This function is useful to construct an own path for drawing or clipping.

Parameters:
dX x position
dY y position

void PoDoFo::PdfPainter::CubicBezierTo ( double  dX1,
double  dY1,
double  dX2,
double  dY2,
double  dX3,
double  dY3 
)

Append a cubic bezier curve to the current path Matches the PDF 'c' operator.

Parameters:
dX1 x coordinate of the first control point
dY1 y coordinate of the first control point
dX2 x coordinate of the second control point
dY2 y coordinate of the second control point
dX3 x coordinate of the end point, which is the new current point
dY3 y coordinate of the end point, which is the new current point

void PoDoFo::PdfPainter::HorizontalLineTo ( double  dX  ) 

Append a horizontal line to the current path Matches the SVG 'H' operator

Parameters:
dX x coordinate to draw the line to

void PoDoFo::PdfPainter::VerticalLineTo ( double  dY  ) 

Append a vertical line to the current path Matches the SVG 'V' operator

Parameters:
dY y coordinate to draw the line to

void PoDoFo::PdfPainter::SmoothCurveTo ( double  dX2,
double  dY2,
double  dX3,
double  dY3 
)

Append a smooth bezier curve to the current path Matches the SVG 'S' operator.

Parameters:
dX2 x coordinate of the second control point
dY2 y coordinate of the second control point
dX3 x coordinate of the end point, which is the new current point
dY3 y coordinate of the end point, which is the new current point

void PoDoFo::PdfPainter::QuadCurveTo ( double  dX1,
double  dY1,
double  dX3,
double  dY3 
)

Append a quadratic bezier curve to the current path Matches the SVG 'Q' operator.

Parameters:
dX1 x coordinate of the first control point
dY1 y coordinate of the first control point
dX3 x coordinate of the end point, which is the new current point
dY3 y coordinate of the end point, which is the new current point

void PoDoFo::PdfPainter::SmoothQuadCurveTo ( double  dX3,
double  dY3 
)

Append a smooth quadratic bezier curve to the current path Matches the SVG 'T' operator.

Parameters:
dX3 x coordinate of the end point, which is the new current point
dY3 y coordinate of the end point, which is the new current point

void PoDoFo::PdfPainter::ArcTo ( double  dX,
double  dY,
double  dRadiusX,
double  dRadiusY,
double  dRotation,
bool  bLarge,
bool  bSweep 
)

Append a Arc to the current path Matches the SVG 'A' operator.

Parameters:
dX x coordinate of the start point
dY y coordinate of the start point
dRadiusX x coordinate of the end point, which is the new current point
dRadiusY y coordinate of the end point, which is the new current point
dRotation degree of rotation in radians
bLarge large or small portion of the arc
bSweep sweep?

void PoDoFo::PdfPainter::Close (  ) 

Close the current path. Matches the PDF 'h' operator.

void PoDoFo::PdfPainter::Stroke (  ) 

Stroke the current path. Matches the PDF 'S' operator. This function is useful to construct an own path for drawing or clipping.

void PoDoFo::PdfPainter::Fill ( bool  useEvenOddRule = false  ) 

Fill the current path. Matches the PDF 'f' operator. This function is useful to construct an own path for drawing or clipping.

Parameters:
useEvenOddRule select even-odd rule instead of nonzero winding number rule

void PoDoFo::PdfPainter::FillAndStroke ( bool  useEvenOddRule = false  ) 

Fill then stroke the current path. Matches the PDF 'B' operator.

Parameters:
useEvenOddRule select even-odd rule instead of nonzero winding number rule

void PoDoFo::PdfPainter::Clip ( bool  useEvenOddRule = false  ) 

Clip the current path. Matches the PDF 'W' operator. This function is useful to construct an own path for drawing or clipping.

Parameters:
useEvenOddRule select even-odd rule instead of nonzero winding number rule

void PoDoFo::PdfPainter::EndPath ( void   ) 

End current pathm without filling or stroking it. Matches the PDF 'n' operator.

void PoDoFo::PdfPainter::Save (  ) 

Save the current graphics settings onto the graphics stack. Operator 'q' in PDF. This call has to be balanced with a corresponding call to Restore()!

See also:
Restore

void PoDoFo::PdfPainter::Restore (  ) 

Restore the current graphics settings from the graphics stack. Operator 'Q' in PDF. This call has to be balanced with a corresponding call to Save()!

See also:
Save

void PoDoFo::PdfPainter::SetTransformationMatrix ( double  a,
double  b,
double  c,
double  d,
double  e,
double  f 
)

Set the transformation matrix for the current coordinate system See the operator 'cm' in PDF.

The six parameters are a standard 3x3 transformation matrix where the 3 left parameters are 0 0 1.

Parameters:
a scale in x direction
b rotation
c rotation
d scale in y direction
e translate in x direction
f translate in y direction
See also:
Save()

Restore()

void PoDoFo::PdfPainter::SetExtGState ( PdfExtGState inGState  ) 

Sets a specific PdfExtGState as being active

Parameters:
inGState the specific ExtGState to set

void PoDoFo::PdfPainter::SetRenderingIntent ( char *  intent  ) 

Sets a specific rendering intent

Parameters:
intent the specific intent to set

void PoDoFo::PdfPainter::SetTabWidth ( unsigned short  nTabWidth  )  [inline]

Set the tab width for the DrawText operation. Every tab '\t' is replaced with nTabWidth spaces before drawing text. Default is a value of 4

Parameters:
nTabWidth replace every tabulator by this much spaces
See also:
DrawText

TabWidth

unsigned short PoDoFo::PdfPainter::GetTabWidth (  )  const [inline]

Get the currently set tab width

Returns:
by how many spaces a tabulator will be replaced
See also:
DrawText

TabWidth

void PoDoFo::PdfPainter::SetPrecision ( unsigned short  inPrec  )  [inline]

Set the floating point precision.

Parameters:
inPrec write this many decimal places

unsigned short PoDoFo::PdfPainter::GetPrecision (  )  const [inline]

Get the currently set floating point precision

Returns:
how many decimal places will be written out for any floating point value

std::ostringstream & PoDoFo::PdfPainter::GetCurrentPath ( void   )  [inline]

Get current path string stream. Stroke/Fill commands clear current path.

Returns:
std::ostringstream representing current path

void PoDoFo::PdfPainter::AddToPageResources ( const PdfName rIdentifier,
const PdfReference rRef,
const PdfName rName 
) [protected, virtual]

Register an object in the resource dictionary of this page so that it can be used for any following drawing operations.

Parameters:
rIdentifier identifier of this object, e.g. /Ft0
rRef reference to the object you want to register
rName register under this key in the resource dictionary

void PoDoFo::PdfPainter::SetCurrentStrokingColor (  )  [protected]

Sets the color that was last set by the user as the current stroking color. You should always enclose this function by Save() and Restore()

See also:
Save()

Restore()

PdfString PoDoFo::PdfPainter::ExpandTabs ( const PdfString rsString,
pdf_long  lLen 
) const [protected]

Expand all tab characters in a string using spaces.

Parameters:
rsString expand all tabs in this string using spaces
lLen use only lLen characters of rsString
Returns:
an expanded copy of the passed string
See also:
SetTabWidth


Member Data Documentation

All drawing operations work on this stream. This object may not be NULL. If it is NULL any function accessing it should return ERROR_PDF_INVALID_HANDLE

The page object is needed so that fonts etc. can be added to the page resource dictionary as appropriate.

Font for all drawing operations

unsigned short PoDoFo::PdfPainter::m_nTabWidth [protected]

Every tab '\t' is replaced with m_nTabWidth spaces before drawing text. Default is a value of 4

Save the current color for non stroking colors

Is between BT and ET

std::ostringstream PoDoFo::PdfPainter::m_oss [protected]

temporary stream buffer

std::ostringstream PoDoFo::PdfPainter::m_curPath [protected]

current path


Generated on Tue Nov 29 09:28:35 2016 for PoDoFo by  doxygen 1.5.6