PoDoFo::PdfFontCache Class Reference

#include <PdfFontCache.h>

List of all members.

Public Types

 eFontCreationFlags_None = 0
 No special settings.
 eFontCreationFlags_AutoSelectBase14 = 1
 Create automatically a base14 font if the fontname matches one of them.
 eFontCreationFlags_Type1Subsetting = 2
 Create subsetted type1-font, which includes only used characters.
enum  EFontCreationFlags { eFontCreationFlags_None = 0, eFontCreationFlags_AutoSelectBase14 = 1, eFontCreationFlags_Type1Subsetting = 2 }

Public Member Functions

 PdfFontCache (PdfVecObjects *pParent)
 ~PdfFontCache ()
void EmptyCache ()
PdfFontGetFont (PdfObject *pObject)
PdfFontGetFont (const char *pszFontName, bool bBold, bool bItalic, bool bEmbedd, EFontCreationFlags eFontCreationFlags=eFontCreationFlags_AutoSelectBase14, const PdfEncoding *const =PdfEncodingFactory::GlobalWinAnsiEncodingInstance(), const char *pszFileName=NULL)
PdfFontGetFont (FT_Face face, bool bEmbedd, const PdfEncoding *const =PdfEncodingFactory::GlobalWinAnsiEncodingInstance())
PdfFontGetDuplicateFontType1 (PdfFont *pFont, const char *pszSuffix)
PdfFontGetFontSubset (const char *pszFontName, bool bBold, bool bItalic, const PdfEncoding *const =PdfEncodingFactory::GlobalWinAnsiEncodingInstance(), const char *pszFileName=NULL)
void EmbedSubsetFonts ()
FT_Library GetFontLibrary () const


Detailed Description

This class assists PdfDocument with caching font information.

Additional to font caching, this class is also responsible for font matching.

PdfFont is an actual font that can be used in a PDF file (i.e. it does also font embedding) and PdfFontMetrics provides only metrics informations.

This class is an internal class of PoDoFo and should not be used in user applications

See also:
PdfDocument


Member Enumeration Documentation

enum PoDoFo::PdfFontCache::EFontCreationFlags

Flags to control font creation.

Enumerator:
eFontCreationFlags_None  No special settings.
eFontCreationFlags_AutoSelectBase14  Create automatically a base14 font if the fontname matches one of them.
eFontCreationFlags_Type1Subsetting  Create subsetted type1-font, which includes only used characters.


Constructor & Destructor Documentation

PoDoFo::PdfFontCache::PdfFontCache ( PdfVecObjects pParent  ) 

Create an empty font cache

Parameters:
pParent a PdfVecObjects which is required to create new font objects

PoDoFo::PdfFontCache::~PdfFontCache (  ) 

Destroy and empty the font cache


Member Function Documentation

void PoDoFo::PdfFontCache::EmbedSubsetFonts (  ) 

Embeds all pending subset-fonts

void PoDoFo::PdfFontCache::EmptyCache (  ) 

Empty the internal font cache. This should be done when ever a new document is created or openened.

PdfFont * PoDoFo::PdfFontCache::GetDuplicateFontType1 ( PdfFont pFont,
const char *  pszSuffix 
)

Get a font with specific id from the cache. If the font does not yet exist, copy from existing type1-font and set id.

Parameters:
pFont an existing font
pszSuffix Suffix to add to font-id
Returns:
a PdfFont object or NULL if the font could not be created or found.

PdfFont * PoDoFo::PdfFontCache::GetFont ( FT_Face  face,
bool  bEmbedd,
const PdfEncoding const = PdfEncodingFactory::GlobalWinAnsiEncodingInstance() 
)

Get a font from the cache. If the font does not yet exist, add it to the cache.

Parameters:
face a valid freetype font face (will be free'd by PoDoFo)
bEmbedd if true a font for embedding into PDF will be created
pEncoding the encoding of the font. The font will not take ownership of this object.
Returns:
a PdfFont object or NULL if the font could not be created or found.

PdfFont * PoDoFo::PdfFontCache::GetFont ( const char *  pszFontName,
bool  bBold,
bool  bItalic,
bool  bEmbedd,
EFontCreationFlags  eFontCreationFlags = eFontCreationFlags_AutoSelectBase14,
const PdfEncoding const = PdfEncodingFactory::GlobalWinAnsiEncodingInstance(),
const char *  pszFileName = NULL 
)

Get a font from the cache. If the font does not yet exist, add it to the cache.

Parameters:
pszFontName a valid fontname
bBold if true search for a bold font
bItalic if true search for an italic font
bEmbedd if true a font for embedding into PDF will be created
eFontCreationFlags special flag to specify how fonts should be created
pEncoding the encoding of the font. The font will not take ownership of this object.
pszFileName optional path to a valid font file
Returns:
a PdfFont object or NULL if the font could not be created or found.

PdfFont * PoDoFo::PdfFontCache::GetFont ( PdfObject pObject  ) 

Get a font from the cache. If the font does not yet exist, add it to the cache. This font is created from an existing object.

Parameters:
pObject a PdfObject that is a font
Returns:
a PdfFont object or NULL if the font could not be created or found.

FT_Library PoDoFo::PdfFontCache::GetFontLibrary (  )  const [inline]

Returns the font library from font cache

Returns:
the internal handle to the freetype library

PdfFont * PoDoFo::PdfFontCache::GetFontSubset ( const char *  pszFontName,
bool  bBold,
bool  bItalic,
const PdfEncoding const = PdfEncodingFactory::GlobalWinAnsiEncodingInstance(),
const char *  pszFileName = NULL 
)

Get a fontsubset from the cache. If the font does not yet exist, add it to the cache.

Parameters:
pszFontName a valid fontname
bBold if true search for a bold font
bItalic if true search for an italic font
pEncoding the encoding of the font. All characters of the encoding will be included in this subset. The font will not take ownership of this object.
pszFileName optional path to a valid font file
Returns:
a PdfFont object or NULL if the font could not be created or found.


Generated on Sun Feb 12 13:13:32 2012 for PoDoFo by  doxygen 1.4.7