PoDoFo  0.9.4
Public Member Functions | Protected Member Functions | List of all members
PoDoFo::PdfFont Class Reference

#include <PdfFont.h>

Inheritance diagram for PoDoFo::PdfFont:
PoDoFo::PdfElement PoDoFo::PdfFontCID PoDoFo::PdfFontSimple PoDoFo::PdfFontTrueType PoDoFo::PdfFontType1 PoDoFo::PdfFontType1Base14 PoDoFo::PdfFontType3

Public Member Functions

 PdfFont (PdfFontMetrics *pMetrics, const PdfEncoding *const pEncoding, PdfVecObjects *pParent)
 
 PdfFont (PdfFontMetrics *pMetrics, const PdfEncoding *const pEncoding, PdfObject *pObject)
 
void SetFontSize (float fSize)
 
float GetFontSize () const
 
void SetFontScale (float fScale)
 
float GetFontScale () const
 
void SetFontCharSpace (float fCharSpace)
 
float GetFontCharSpace () const
 
void SetWordSpace (float fWordSpace)
 
float GetWordSpace () const
 
void SetUnderlined (bool bUnder)
 
bool IsUnderlined () const
 
bool IsBold () const
 
bool IsItalic () const
 
void SetStrikeOut (bool bStrikeOut)
 
bool IsStrikeOut () const
 
const PdfNameGetIdentifier () const
 
const PdfEncodingGetEncoding () const
 
const PdfFontMetricsGetFontMetrics () const
 
PdfFontMetricsGetFontMetrics2 ()
 
virtual void WriteStringToStream (const PdfString &rsString, PdfStream *pStream)
 
virtual void EmbedFont ()
 
virtual void AddUsedSubsettingGlyphs (const PdfString &sText, long lStringLen)
 
virtual void AddUsedGlyphname (const char *pszGlyphName)
 
virtual void EmbedSubsetFont ()
 
bool IsSubsetting () const
 
- Public Member Functions inherited from PoDoFo::PdfElement
PdfObjectGetObject ()
 
const PdfObjectGetObject () const
 

Protected Member Functions

const PdfNameGetBaseFont () const
 
virtual void SetBold (bool bBold)
 
virtual void SetItalic (bool bItalic)
 
- Protected Member Functions inherited from PoDoFo::PdfElement
 PdfElement (const char *pszType, PdfVecObjects *pParent)
 
 PdfElement (const char *pszType, PdfDocument *pParent)
 
 PdfElement (const char *pszType, PdfObject *pObject)
 
 PdfElement (EPdfDataType eExpectedDataType, PdfObject *pObject)
 
const char * TypeNameForIndex (int i, const char **ppTypes, long lLen) const
 
int TypeNameToIndex (const char *pszType, const char **ppTypes, long lLen, int nUnknownValue) const
 
PdfObjectCreateObject (const char *pszType=NULL)
 
PdfObjectGetNonConstObject () const
 

Detailed Description

Before you can draw text on a PDF document, you have to create a font object first. You can reuse this font object as often as you want.

Use PdfDocument::CreateFont to create a new font object. It will choose a correct subclass using PdfFontFactory.

This is only an abstract base class which is implemented for different font formats.

Constructor & Destructor Documentation

PoDoFo::PdfFont::PdfFont ( PdfFontMetrics pMetrics,
const PdfEncoding *const  pEncoding,
PdfVecObjects pParent 
)

Create a new PdfFont object which will introduce itself automatically to every page object it is used on.

The font has a default font size of 12.0pt.

Parameters
pMetricspointer to a font metrics object. The font in the PDF file will match this fontmetrics object. The metrics object is deleted along with the font.
pEncodingthe encoding of this font. The font will take ownership of this object depending on pEncoding->IsAutoDelete()
pParentparent of the font object
PoDoFo::PdfFont::PdfFont ( PdfFontMetrics pMetrics,
const PdfEncoding *const  pEncoding,
PdfObject pObject 
)

Create a PdfFont based on an existing PdfObject

Parameters
pMetricspointer to a font metrics object. The font in the PDF file will match this fontmetrics object. The metrics object is deleted along with the font.
pEncodingthe encoding of this font. The font will take ownership of this object depending on pEncoding->IsAutoDelete()
pObjectan existing PdfObject

Member Function Documentation

void PoDoFo::PdfFont::AddUsedGlyphname ( const char *  pszGlyphName)
virtual

Remember the glyphname in case of subsetting

Parameters
pszGlyphNameName of the glyph to remember

Reimplemented in PoDoFo::PdfFontType1.

void PoDoFo::PdfFont::AddUsedSubsettingGlyphs ( const PdfString sText,
long  lStringLen 
)
virtual

Remember the glyphs used in the string in case of subsetting

Parameters
sTextthe text string which should be printed (is not allowed to be NULL!)
lStringLendraw only lLen characters of pszText

Only call if IsSubsetting() returns true. Might throw an exception otherwise.

See also
IsSubsetting

Reimplemented in PoDoFo::PdfFontType1, and PoDoFo::PdfFontCID.

void PoDoFo::PdfFont::EmbedFont ( )
virtual

Embeds the font into PDF page

Reimplemented in PoDoFo::PdfFontCID, and PoDoFo::PdfFontSimple.

void PoDoFo::PdfFont::EmbedSubsetFont ( )
virtual

Embeds pending subset-font into PDF page Only call if IsSubsetting() returns true. Might throw an exception otherwise.

See also
IsSubsetting

Reimplemented in PoDoFo::PdfFontType1, and PoDoFo::PdfFontCID.

const PdfName & PoDoFo::PdfFont::GetBaseFont ( ) const
inlineprotected

Get the base font name of this font

Returns
the base font name
const PdfEncoding * PoDoFo::PdfFont::GetEncoding ( ) const
inline

Returns a reference to the fonts encoding

Returns
a PdfEncoding object.
float PoDoFo::PdfFont::GetFontCharSpace ( ) const
inline

Retrieve the current character spacing of this font object

Returns
the current font character spacing
const PdfFontMetrics * PoDoFo::PdfFont::GetFontMetrics ( ) const
inline

Returns a handle to the fontmetrics object of this font. This can be used for size calculations of text strings when drawn using this font.

Returns
a handle to the font metrics object
PdfFontMetrics * PoDoFo::PdfFont::GetFontMetrics2 ( )
inline

Returns a handle to the fontmetrics object of this font. This can be used for size calculations of text strings when drawn using this font.

Returns
a handle to the font metrics object
float PoDoFo::PdfFont::GetFontScale ( ) const
inline

Retrieve the current horizontal scaling of this font object

Returns
the current font scaling
float PoDoFo::PdfFont::GetFontSize ( ) const
inline

Retrieve the current font size of this font object

Returns
the current font size
const PdfName & PoDoFo::PdfFont::GetIdentifier ( ) const
inline

Returns the identifier of this font how it is known in the pages resource dictionary.

Returns
PdfName containing the identifier (e.g. /Ft13)
float PoDoFo::PdfFont::GetWordSpace ( ) const
inline

Retrieve the current word spacing of this font object

Returns
the current font word spacing in PDF units
bool PoDoFo::PdfFont::IsBold ( ) const
inline
Returns
true if this font is bold
See also
IsItalic
IsUnderlined
bool PoDoFo::PdfFont::IsItalic ( ) const
inline
Returns
true if this font is italic
See also
IsBold
IsUnderlined
bool PoDoFo::PdfFont::IsStrikeOut ( ) const
inline
Returns
true if the font is striked out
bool PoDoFo::PdfFont::IsSubsetting ( ) const
inline

Check if this is a subsetting font.

Returns
true if this is a subsetting font
bool PoDoFo::PdfFont::IsUnderlined ( ) const
inline
Returns
true if the font is underlined
See also
IsBold
IsItalic
void PoDoFo::PdfFont::SetBold ( bool  bBold)
protectedvirtual

Used to specify if this represents a bold font

Parameters
bBoldif true this is a bold font.
See also
IsBold

This can be called by PdfFontFactory to tell this font object that it belongs to a bold font.

Reimplemented in PoDoFo::PdfFontCID.

void PoDoFo::PdfFont::SetFontCharSpace ( float  fCharSpace)
inline

Set the character spacing of the font

Parameters
fCharSpacecharacter spacing in percent
void PoDoFo::PdfFont::SetFontScale ( float  fScale)
inline

Set the horizontal scaling of the font for compressing (< 100) and expanding (>100)

Parameters
fScalescaling in percent
void PoDoFo::PdfFont::SetFontSize ( float  fSize)
inline

Set the font size before drawing with this font.

Parameters
fSizefont size in points
void PoDoFo::PdfFont::SetItalic ( bool  bItalic)
protectedvirtual

Used to specify if this represents an italic font

Parameters
bItalicif true this is an italic font.
See also
IsItalc

This can be called by PdfFontFactory to tell this font object that it belongs to an italic font.

Reimplemented in PoDoFo::PdfFontCID.

void PoDoFo::PdfFont::SetStrikeOut ( bool  bStrikeOut)
inline

Set the strikeout property of the font

Parameters
bStrikeOutif true any text drawn with this font by a PdfPainter will be strikedout. Default is false
void PoDoFo::PdfFont::SetUnderlined ( bool  bUnder)
inline

Set the underlined property of the font

Parameters
bUnderif true any text drawn with this font by a PdfPainter will be underlined. Default is false
void PoDoFo::PdfFont::SetWordSpace ( float  fWordSpace)
inline

Set the word spacing of the font

Parameters
fWordSpaceword spacing in PDF units
void PoDoFo::PdfFont::WriteStringToStream ( const PdfString rsString,
PdfStream pStream 
)
virtual

Write a PdfString to a PdfStream in a format so that it can be used with this font. This is used by PdfPainter::DrawText to display a text string. The following PDF operator will be Tj

Parameters
rsStringa unicode or ansi string which will be displayed
pStreamthe string will be appended to pStream without any leading or following whitespaces.