| Index: experimental/PdfViewer/autogen/SkPdfType3FontDictionary_autogen.h
|
| ===================================================================
|
| --- experimental/PdfViewer/autogen/SkPdfType3FontDictionary_autogen.h (revision 0)
|
| +++ experimental/PdfViewer/autogen/SkPdfType3FontDictionary_autogen.h (revision 0)
|
| @@ -0,0 +1,246 @@
|
| +#ifndef __DEFINED__SkPdfType3FontDictionary
|
| +#define __DEFINED__SkPdfType3FontDictionary
|
| +
|
| +#include "SkPdfUtils.h"
|
| +#include "SkPdfEnums_autogen.h"
|
| +#include "SkPdfArray_autogen.h"
|
| +#include "SkPdfType1FontDictionary_autogen.h"
|
| +
|
| +// Entries in a Type 3 font dictionary
|
| +class SkPdfType3FontDictionary : public SkPdfType1FontDictionary {
|
| +public:
|
| + virtual SkPdfObjectType getType() const { return kType3FontDictionary_SkPdfObjectType;}
|
| + virtual SkPdfObjectType getTypeEnd() const { return (SkPdfObjectType)(kType3FontDictionary_SkPdfObjectType + 1);}
|
| +public:
|
| + virtual SkPdfType3FontDictionary* asType3FontDictionary() {return this;}
|
| + virtual const SkPdfType3FontDictionary* asType3FontDictionary() const {return this;}
|
| +
|
| +private:
|
| + virtual SkPdfMultiMasterFontDictionary* asMultiMasterFontDictionary() {return NULL;}
|
| + virtual const SkPdfMultiMasterFontDictionary* asMultiMasterFontDictionary() const {return NULL;}
|
| +
|
| + virtual SkPdfTrueTypeFontDictionary* asTrueTypeFontDictionary() {return NULL;}
|
| + virtual const SkPdfTrueTypeFontDictionary* asTrueTypeFontDictionary() const {return NULL;}
|
| +
|
| +public:
|
| +private:
|
| +public:
|
| + SkPdfType3FontDictionary(const PdfMemDocument* podofoDoc = NULL, const PdfObject* podofoObj = NULL) : SkPdfType1FontDictionary(podofoDoc, podofoObj) {}
|
| +
|
| + SkPdfType3FontDictionary(const SkPdfType3FontDictionary& from) : SkPdfType1FontDictionary(from.fPodofoDoc, from.fPodofoObj) {}
|
| +
|
| + virtual bool valid() const {return true;}
|
| +
|
| + SkPdfType3FontDictionary& operator=(const SkPdfType3FontDictionary& from) {this->fPodofoDoc = from.fPodofoDoc; this->fPodofoObj = from.fPodofoObj; return *this;}
|
| +
|
| +/** (Required) The type of PDF object that this dictionary describes; must be
|
| + * Font for a font dictionary.
|
| +**/
|
| + bool has_Type() const {
|
| + return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Type", "", NULL));
|
| + }
|
| +
|
| + std::string Type() const {
|
| + std::string ret;
|
| + if (NameFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Type", "", &ret)) return ret;
|
| + // TODO(edisonn): warn about missing required field, assert for known good pdfs
|
| + return "";
|
| + }
|
| +
|
| +/** (Required) The type of font; must be Type3 for a Type 3 font.
|
| +**/
|
| + bool has_Subtype() const {
|
| + return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Subtype", "", NULL));
|
| + }
|
| +
|
| + std::string Subtype() const {
|
| + std::string ret;
|
| + if (NameFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Subtype", "", &ret)) return ret;
|
| + // TODO(edisonn): warn about missing required field, assert for known good pdfs
|
| + return "";
|
| + }
|
| +
|
| +/** (Required in PDF 1.0; optional otherwise) See Table 5.8 on page 317.
|
| +**/
|
| + bool has_Name() const {
|
| + return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Name", "", NULL));
|
| + }
|
| +
|
| + std::string Name() const {
|
| + std::string ret;
|
| + if (NameFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Name", "", &ret)) return ret;
|
| + // TODO(edisonn): warn about missing required field, assert for known good pdfs
|
| + return "";
|
| + }
|
| +
|
| +/** (Required) A rectangle (see Section 3.8.3, "Rectangles"), expressed in the
|
| + * glyph coordinate system, specifying the font bounding box. This is the small-
|
| + * est rectangle enclosing the shape that would result if all of the glyphs of the
|
| + * font were placed with their origins coincident and then filled.
|
| + * If all four elements of the rectangle are zero, no assumptions are made based
|
| + * on the font bounding box. If any element is nonzero, it is essential that the
|
| + * font bounding box be accurate; if any glyph's marks fall outside this bound-
|
| + * ing box, incorrect behavior may result.
|
| +**/
|
| + bool has_FontBBox() const {
|
| + return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "FontBBox", "", NULL));
|
| + }
|
| +
|
| + SkRect* FontBBox() const {
|
| + SkRect* ret;
|
| + if (SkRectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "FontBBox", "", &ret)) return ret;
|
| + // TODO(edisonn): warn about missing required field, assert for known good pdfs
|
| + return NULL;
|
| + }
|
| +
|
| +/** (Required) An array of six numbers specifying the font matrix, mapping
|
| + * glyph space to text space (see Section 5.1.3, "Glyph Positioning and
|
| + * Metrics"). A common practice is to define glyphs in terms of a 1000-unit
|
| + * glyph coordinate system, in which case the font matrix is
|
| + * [0.001 0 0 0.001 0 0].
|
| +**/
|
| + bool has_FontMatrix() const {
|
| + return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "FontMatrix", "", NULL));
|
| + }
|
| +
|
| + SkMatrix* FontMatrix() const {
|
| + SkMatrix* ret;
|
| + if (SkMatrixFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "FontMatrix", "", &ret)) return ret;
|
| + // TODO(edisonn): warn about missing required field, assert for known good pdfs
|
| + return NULL;
|
| + }
|
| +
|
| +/** (Required) A dictionary in which each key is a character name and the value
|
| + * associated with that key is a content stream that constructs and paints the
|
| + * glyph for that character. The stream must include as its first operator either
|
| + * d0 or d1. This is followed by operators describing one or more graphics
|
| + * objects, which may include path, text, or image objects. See below for more
|
| + * details about Type 3 glyph descriptions.
|
| +**/
|
| + bool has_CharProcs() const {
|
| + return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "CharProcs", "", NULL));
|
| + }
|
| +
|
| + SkPdfDictionary* CharProcs() const {
|
| + SkPdfDictionary* ret;
|
| + if (DictionaryFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "CharProcs", "", &ret)) return ret;
|
| + // TODO(edisonn): warn about missing required field, assert for known good pdfs
|
| + return NULL;
|
| + }
|
| +
|
| +/** (Required) An encoding dictionary whose Differences array specifies the
|
| + * complete character encoding for this font (see Section 5.5.5, "Character
|
| + * Encoding"; also see implementation note 46 in Appendix H).
|
| +**/
|
| + bool has_Encoding() const {
|
| + return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Encoding", "", NULL));
|
| + }
|
| +
|
| + bool isEncodingAName() const {
|
| + SkPdfObject* ret = NULL;
|
| + if (!ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Encoding", "", &ret)) return false;
|
| + return ret->podofo()->GetDataType() == ePdfDataType_Name;
|
| + }
|
| +
|
| + std::string getEncodingAsName() const {
|
| + std::string ret = "";
|
| + if (NameFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Encoding", "", &ret)) return ret;
|
| + // TODO(edisonn): warn about missing required field, assert for known good pdfs
|
| + return "";
|
| + }
|
| +
|
| + bool isEncodingAEncodingdictionary() const {
|
| + SkPdfObject* ret = NULL;
|
| + if (!ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Encoding", "", &ret)) return false;
|
| + return ret->podofo()->GetDataType() == ePdfDataType_Dictionary;
|
| + }
|
| +
|
| + SkPdfEncodingDictionary* getEncodingAsEncodingdictionary() const {
|
| + SkPdfEncodingDictionary* ret = NULL;
|
| + if (DictionaryFromDictionary2(fPodofoDoc, fPodofoObj->GetDictionary(), "Encoding", "", &ret)) return ret;
|
| + // TODO(edisonn): warn about missing required field, assert for known good pdfs
|
| + return NULL;
|
| + }
|
| +
|
| +/** (Required) The first character code defined in the font's Widths array.
|
| +**/
|
| + bool has_FirstChar() const {
|
| + return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "FirstChar", "", NULL));
|
| + }
|
| +
|
| + long FirstChar() const {
|
| + long ret;
|
| + if (LongFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "FirstChar", "", &ret)) return ret;
|
| + // TODO(edisonn): warn about missing required field, assert for known good pdfs
|
| + return 0;
|
| + }
|
| +
|
| +/** (Required) The last character code defined in the font's Widths array.
|
| +**/
|
| + bool has_LastChar() const {
|
| + return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "LastChar", "", NULL));
|
| + }
|
| +
|
| + long LastChar() const {
|
| + long ret;
|
| + if (LongFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "LastChar", "", &ret)) return ret;
|
| + // TODO(edisonn): warn about missing required field, assert for known good pdfs
|
| + return 0;
|
| + }
|
| +
|
| +/** (Required; indirect reference preferred) An array of (LastChar - FirstChar + 1)
|
| + * widths, each element being the glyph width for the character whose code is
|
| + * FirstChar plus the array index. For character codes outside the range FirstChar
|
| + * to LastChar, the width is 0. These widths are interpreted in glyph space as
|
| + * specified by FontMatrix (unlike the widths of a Type 1 font, which are in
|
| + * thousandths of a unit of text space).
|
| + * Note: If FontMatrix specifies a rotation, only the horizontal component of the
|
| + * transformed width is used. That is, the resulting displacement is always horizon-
|
| + * tal in text space, as is the case for all simple fonts.
|
| +**/
|
| + bool has_Widths() const {
|
| + return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Widths", "", NULL));
|
| + }
|
| +
|
| + SkPdfArray* Widths() const {
|
| + SkPdfArray* ret;
|
| + if (ArrayFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Widths", "", &ret)) return ret;
|
| + // TODO(edisonn): warn about missing required field, assert for known good pdfs
|
| + return NULL;
|
| + }
|
| +
|
| +/** (Optional but strongly recommended; PDF 1.2) A list of the named resources,
|
| + * such as fonts and images, required by the glyph descriptions in this font (see
|
| + * Section 3.7.2, "Resource Dictionaries"). If any glyph descriptions refer to
|
| + * named resources but this dictionary is absent, the names are looked up in the
|
| + * resource dictionary of the page on which the font is used. (See implementa-
|
| + * tion note 47 in Appendix H.)
|
| +**/
|
| + bool has_Resources() const {
|
| + return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Resources", "", NULL));
|
| + }
|
| +
|
| + SkPdfDictionary* Resources() const {
|
| + SkPdfDictionary* ret;
|
| + if (DictionaryFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Resources", "", &ret)) return ret;
|
| + // TODO(edisonn): warn about missing required field, assert for known good pdfs
|
| + return NULL;
|
| + }
|
| +
|
| +/** (Optional; PDF 1.2) A stream containing a CMap file that maps character
|
| + * codes to Unicode values (see Section 5.9, "ToUnicode CMaps").
|
| +**/
|
| + bool has_ToUnicode() const {
|
| + return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "ToUnicode", "", NULL));
|
| + }
|
| +
|
| + SkPdfStream* ToUnicode() const {
|
| + SkPdfStream* ret;
|
| + if (StreamFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "ToUnicode", "", &ret)) return ret;
|
| + // TODO(edisonn): warn about missing required field, assert for known good pdfs
|
| + return NULL;
|
| + }
|
| +
|
| +};
|
| +
|
| +#endif // __DEFINED__SkPdfType3FontDictionary
|
|
|