Composes Postscript document as three separate and independant streams for header, body and footer. More...
#include <LASi.h>
Classes | |
| class | GlyphId |
| For internal use only. More... | |
| class | write_glyph_routine_to_stream |
| For internal use only. More... | |
Public Member Functions | |
| PostscriptDocument () | |
| ~PostscriptDocument () | |
| void | setFont (const char *const family="sans", LASi::FontStyle=LASi::NORMAL_STYLE, LASi::FontWeight=LASi::NORMAL_WEIGHT, LASi::FontVariant=LASi::NORMAL_VARIANT, LASi::FontStretch=LASi::NORMAL_STRETCH) |
| Sets the font that all subsequent text written to bodyStream() or footerStream() will be rendered with. | |
| void | setFontSize (const double size) |
| Sets the font size, in points, that all subsequent text written to bodyStream() or footerStream() will be rendered with. | |
| std::ostringstream & | osHeader () |
| Returns stream for Postscript header. | |
| oPostscriptStream & | osBody () |
| Returns stream for Postscript body. | |
| oPostscriptStream & | osFooter () |
| Returns stream for Postscript footer. | |
| void | write (std::ostream &os, double llx=0, double lly=0, double urx=0, double ury=0) |
| Closes all streams and writes completed Postscript document to os. | |
| void | get_dimensions (const char *s, double *lineSpacing, double *xAdvance=NULL, double *yMin=NULL, double *yMax=NULL) |
| Return string dimensions: lineSpacing: inter-line spacing xAdvance: width of the string yMin: y-coordinate bounding the lowest descender, Indic under-consonantal vowel, etc. | |
| void | get_dimensions (std::string s, double *lineSpacing, double *xAdvance=NULL, double *yMin=NULL, double *yMax=NULL) |
Protected Types | |
| typedef std::map< GlyphId, FreetypeGlyphMgr > | GlyphMap |
| Maps glyph routine name to FT_Glyph instance. | |
| typedef void(PostscriptDocument::* | GLYPH_FUNC )(const GlyphMap::value_type &, void *contextData) |
| Pointer to a function that takes a reference to a glyph and to x and y coordinates. | |
Protected Member Functions | |
| void | invoke_glyph_routine (const GlyphMap::value_type &, void *contextData) |
| void | accrue_dimensions (const GlyphMap::value_type &, void *contextData1) |
| void | for_each_glyph_do (const std::string &, const GLYPH_FUNC, void *contextData, bool applyOffset=false) |
| Decomposes string into glyphs and applies GLYPH_FUNC to each glyph. | |
| PangoContext * | pangoContext () const |
| std::string | glyphProcName () const |
| double | getFontSize () |
Friends | |
| class | write_glyph_routine_to_stream |
| class | show |
Composes Postscript document as three separate and independant streams for header, body and footer.
Body and footer streams respond to LASi::show applicator which generates Postscript commands to display a string by using glyph routines instead of a Postscript font.
typedef void(PostscriptDocument::* LASi::PostscriptDocument::GLYPH_FUNC)(const GlyphMap::value_type &, void *contextData) [protected] |
Pointer to a function that takes a reference to a glyph and to x and y coordinates.
May return new x and y coordinates.
typedef std::map<GlyphId, FreetypeGlyphMgr> LASi::PostscriptDocument::GlyphMap [protected] |
Maps glyph routine name to FT_Glyph instance.
| LASi::PostscriptDocument::PostscriptDocument | ( | ) |
| LASi::PostscriptDocument::~PostscriptDocument | ( | ) |
| void LASi::PostscriptDocument::accrue_dimensions | ( | const GlyphMap::value_type & | , | |
| void * | contextData1 | |||
| ) | [protected] |
| void LASi::PostscriptDocument::for_each_glyph_do | ( | const std::string & | , | |
| const | GLYPH_FUNC, | |||
| void * | contextData, | |||
| bool | applyOffset = false | |||
| ) | [protected] |
Decomposes string into glyphs and applies GLYPH_FUNC to each glyph.
| void LASi::PostscriptDocument::get_dimensions | ( | const char * | s, | |
| double * | lineSpacing, | |||
| double * | xAdvance = NULL, |
|||
| double * | yMin = NULL, |
|||
| double * | yMax = NULL | |||
| ) |
Return string dimensions: lineSpacing: inter-line spacing xAdvance: width of the string yMin: y-coordinate bounding the lowest descender, Indic under-consonantal vowel, etc.
yMax: y-coordinate bounding the highest ascender, diacritic, Indic over-letter vowel, etc.
| void LASi::PostscriptDocument::get_dimensions | ( | std::string | s, | |
| double * | lineSpacing, | |||
| double * | xAdvance = NULL, |
|||
| double * | yMin = NULL, |
|||
| double * | yMax = NULL | |||
| ) |
| double LASi::PostscriptDocument::getFontSize | ( | ) | [inline, protected] |
| std::string LASi::PostscriptDocument::glyphProcName | ( | ) | const [protected] |
| void LASi::PostscriptDocument::invoke_glyph_routine | ( | const GlyphMap::value_type & | , | |
| void * | contextData | |||
| ) | [protected] |
| oPostscriptStream& LASi::PostscriptDocument::osBody | ( | ) | [inline] |
Returns stream for Postscript body.
| oPostscriptStream& LASi::PostscriptDocument::osFooter | ( | ) | [inline] |
Returns stream for Postscript footer.
| std::ostringstream& LASi::PostscriptDocument::osHeader | ( | ) | [inline] |
Returns stream for Postscript header.
| PangoContext* LASi::PostscriptDocument::pangoContext | ( | ) | const [protected] |
| void LASi::PostscriptDocument::setFont | ( | const char *const | family = "sans", |
|
| LASi::FontStyle | = LASi::NORMAL_STYLE, |
|||
| LASi::FontWeight | = LASi::NORMAL_WEIGHT, |
|||
| LASi::FontVariant | = LASi::NORMAL_VARIANT, |
|||
| LASi::FontStretch | = LASi::NORMAL_STRETCH | |||
| ) |
Sets the font that all subsequent text written to bodyStream() or footerStream() will be rendered with.
Referenced by LASi::setFont::apply().
| void LASi::PostscriptDocument::setFontSize | ( | const double | size | ) | [inline] |
Sets the font size, in points, that all subsequent text written to bodyStream() or footerStream() will be rendered with.
Referenced by LASi::setFontSize::apply().
| void LASi::PostscriptDocument::write | ( | std::ostream & | os, | |
| double | llx = 0, |
|||
| double | lly = 0, |
|||
| double | urx = 0, |
|||
| double | ury = 0 | |||
| ) |
Closes all streams and writes completed Postscript document to os.
Header will include glyph routines for all text glyphs in body and footer.
2006.05.01.ET Addendum: To create an EPS document, just include the the four BoundingBox coordinates llx, lly, urx, ury (dimensions in points). These are optional parameters -- When not included, you'll get a regular PS document. When included, you'll get an EPS document.
friend class show [friend] |
friend class write_glyph_routine_to_stream [friend] |
1.7.1