| OLD | NEW |
| 1 #ifndef __DEFINED__SkPdfCIDFontDictionary | 1 #ifndef __DEFINED__SkPdfCIDFontDictionary |
| 2 #define __DEFINED__SkPdfCIDFontDictionary | 2 #define __DEFINED__SkPdfCIDFontDictionary |
| 3 | 3 |
| 4 #include "SkPdfUtils.h" | 4 #include "SkPdfUtils.h" |
| 5 #include "SkPdfEnums_autogen.h" | 5 #include "SkPdfEnums_autogen.h" |
| 6 #include "SkPdfArray_autogen.h" | 6 #include "SkPdfArray_autogen.h" |
| 7 #include "SkPdfFontDictionary_autogen.h" | 7 #include "SkPdfFontDictionary_autogen.h" |
| 8 | 8 |
| 9 // Entries in a CIDFont dictionary | 9 // Entries in a CIDFont dictionary |
| 10 class SkPdfCIDFontDictionary : public SkPdfFontDictionary { | 10 class SkPdfCIDFontDictionary : public SkPdfFontDictionary { |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 42 | 42 |
| 43 SkPdfCIDFontDictionary& operator=(const SkPdfCIDFontDictionary& from) {this->f
PodofoDoc = from.fPodofoDoc; this->fPodofoObj = from.fPodofoObj; return *this;} | 43 SkPdfCIDFontDictionary& operator=(const SkPdfCIDFontDictionary& from) {this->f
PodofoDoc = from.fPodofoDoc; this->fPodofoObj = from.fPodofoObj; return *this;} |
| 44 | 44 |
| 45 /** (Required) The type of PDF object that this dictionary describes; must be | 45 /** (Required) The type of PDF object that this dictionary describes; must be |
| 46 * Font for a CIDFont dictionary. | 46 * Font for a CIDFont dictionary. |
| 47 **/ | 47 **/ |
| 48 bool has_Type() const { | 48 bool has_Type() const { |
| 49 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Type"
, "", NULL)); | 49 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Type"
, "", NULL)); |
| 50 } | 50 } |
| 51 | 51 |
| 52 std::string Type() const { | 52 std::string Type() const; |
| 53 std::string ret; | |
| 54 if (NameFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Type", "",
&ret)) return ret; | |
| 55 // TODO(edisonn): warn about missing required field, assert for known good p
dfs | |
| 56 return ""; | |
| 57 } | |
| 58 | |
| 59 /** (Required) The type of CIDFont; CIDFontType0 or CIDFontType2. | 53 /** (Required) The type of CIDFont; CIDFontType0 or CIDFontType2. |
| 60 **/ | 54 **/ |
| 61 bool has_Subtype() const { | 55 bool has_Subtype() const { |
| 62 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Subty
pe", "", NULL)); | 56 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Subty
pe", "", NULL)); |
| 63 } | 57 } |
| 64 | 58 |
| 65 std::string Subtype() const { | 59 std::string Subtype() const; |
| 66 std::string ret; | |
| 67 if (NameFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Subtype", "
", &ret)) return ret; | |
| 68 // TODO(edisonn): warn about missing required field, assert for known good p
dfs | |
| 69 return ""; | |
| 70 } | |
| 71 | |
| 72 /** (Required) The PostScript name of the CIDFont. For Type 0 CIDFonts, this | 60 /** (Required) The PostScript name of the CIDFont. For Type 0 CIDFonts, this |
| 73 * is usually the value of the CIDFontName entry in the CIDFont program. For | 61 * is usually the value of the CIDFontName entry in the CIDFont program. For |
| 74 * Type 2 CIDFonts, it is derived the same way as for a simple TrueType font; | 62 * Type 2 CIDFonts, it is derived the same way as for a simple TrueType font; |
| 75 * see Section 5.5.2, "TrueType Fonts." In either case, the name can have a sub
- | 63 * see Section 5.5.2, "TrueType Fonts." In either case, the name can have a sub
- |
| 76 * set prefix if appropriate; see Section 5.5.3, "Font Subsets." | 64 * set prefix if appropriate; see Section 5.5.3, "Font Subsets." |
| 77 **/ | 65 **/ |
| 78 bool has_BaseFont() const { | 66 bool has_BaseFont() const { |
| 79 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "BaseF
ont", "", NULL)); | 67 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "BaseF
ont", "", NULL)); |
| 80 } | 68 } |
| 81 | 69 |
| 82 std::string BaseFont() const { | 70 std::string BaseFont() const; |
| 83 std::string ret; | |
| 84 if (NameFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "BaseFont",
"", &ret)) return ret; | |
| 85 // TODO(edisonn): warn about missing required field, assert for known good p
dfs | |
| 86 return ""; | |
| 87 } | |
| 88 | |
| 89 /** (Required) A dictionary containing entries that define the character collec- | 71 /** (Required) A dictionary containing entries that define the character collec- |
| 90 * tion of the CIDFont. See Table 5.12 on page 337. | 72 * tion of the CIDFont. See Table 5.12 on page 337. |
| 91 **/ | 73 **/ |
| 92 bool has_CIDSystemInfo() const { | 74 bool has_CIDSystemInfo() const { |
| 93 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "CIDSy
stemInfo", "", NULL)); | 75 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "CIDSy
stemInfo", "", NULL)); |
| 94 } | 76 } |
| 95 | 77 |
| 96 SkPdfDictionary* CIDSystemInfo() const { | 78 SkPdfDictionary* CIDSystemInfo() const; |
| 97 SkPdfDictionary* ret; | |
| 98 if (DictionaryFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "CIDSy
stemInfo", "", &ret)) return ret; | |
| 99 // TODO(edisonn): warn about missing required field, assert for known good p
dfs | |
| 100 return NULL; | |
| 101 } | |
| 102 | |
| 103 /** (Required; must be an indirect reference) A font descriptor describing the | 79 /** (Required; must be an indirect reference) A font descriptor describing the |
| 104 * CIDFont's default metrics other than its glyph widths (see Section 5.7, | 80 * CIDFont's default metrics other than its glyph widths (see Section 5.7, |
| 105 * "Font Descriptors"). | 81 * "Font Descriptors"). |
| 106 **/ | 82 **/ |
| 107 bool has_FontDescriptor() const { | 83 bool has_FontDescriptor() const { |
| 108 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "FontD
escriptor", "", NULL)); | 84 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "FontD
escriptor", "", NULL)); |
| 109 } | 85 } |
| 110 | 86 |
| 111 SkPdfDictionary* FontDescriptor() const { | 87 SkPdfDictionary* FontDescriptor() const; |
| 112 SkPdfDictionary* ret; | |
| 113 if (DictionaryFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "FontD
escriptor", "", &ret)) return ret; | |
| 114 // TODO(edisonn): warn about missing required field, assert for known good p
dfs | |
| 115 return NULL; | |
| 116 } | |
| 117 | |
| 118 /** (Optional) The default width for glyphs in the CIDFont (see "Glyph Met- | 88 /** (Optional) The default width for glyphs in the CIDFont (see "Glyph Met- |
| 119 * rics in CIDFonts" on page 340). Default value: 1000. | 89 * rics in CIDFonts" on page 340). Default value: 1000. |
| 120 **/ | 90 **/ |
| 121 bool has_DW() const { | 91 bool has_DW() const { |
| 122 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "DW",
"", NULL)); | 92 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "DW",
"", NULL)); |
| 123 } | 93 } |
| 124 | 94 |
| 125 long DW() const { | 95 long DW() const; |
| 126 long ret; | |
| 127 if (LongFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "DW", "", &r
et)) return ret; | |
| 128 // TODO(edisonn): warn about missing required field, assert for known good p
dfs | |
| 129 return 0; | |
| 130 } | |
| 131 | |
| 132 /** (Optional) A description of the widths for the glyphs in the CIDFont. The | 96 /** (Optional) A description of the widths for the glyphs in the CIDFont. The |
| 133 * array's elements have a variable format that can specify individual widths | 97 * array's elements have a variable format that can specify individual widths |
| 134 * for consecutive CIDs or one width for a range of CIDs (see "Glyph Metrics | 98 * for consecutive CIDs or one width for a range of CIDs (see "Glyph Metrics |
| 135 * in CIDFonts" on page 340). Default value: none (the DW value is used for | 99 * in CIDFonts" on page 340). Default value: none (the DW value is used for |
| 136 * all glyphs). | 100 * all glyphs). |
| 137 **/ | 101 **/ |
| 138 bool has_W() const { | 102 bool has_W() const { |
| 139 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "W", "
", NULL)); | 103 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "W", "
", NULL)); |
| 140 } | 104 } |
| 141 | 105 |
| 142 SkPdfArray* W() const { | 106 SkPdfArray* W() const; |
| 143 SkPdfArray* ret; | |
| 144 if (ArrayFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "W", "", &r
et)) return ret; | |
| 145 // TODO(edisonn): warn about missing required field, assert for known good p
dfs | |
| 146 return NULL; | |
| 147 } | |
| 148 | |
| 149 /** (Optional; applies only to CIDFonts used for vertical writing) An array of t
wo | 107 /** (Optional; applies only to CIDFonts used for vertical writing) An array of t
wo |
| 150 * numbers specifying the default metrics for vertical writing (see "Glyph | 108 * numbers specifying the default metrics for vertical writing (see "Glyph |
| 151 * Metrics in CIDFonts" on page 340). Default value: [880 -1000]. | 109 * Metrics in CIDFonts" on page 340). Default value: [880 -1000]. |
| 152 **/ | 110 **/ |
| 153 bool has_DW2() const { | 111 bool has_DW2() const { |
| 154 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "DW2",
"", NULL)); | 112 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "DW2",
"", NULL)); |
| 155 } | 113 } |
| 156 | 114 |
| 157 SkPdfArray* DW2() const { | 115 SkPdfArray* DW2() const; |
| 158 SkPdfArray* ret; | |
| 159 if (ArrayFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "DW2", "",
&ret)) return ret; | |
| 160 // TODO(edisonn): warn about missing required field, assert for known good p
dfs | |
| 161 return NULL; | |
| 162 } | |
| 163 | |
| 164 /** (Optional; applies only to CIDFonts used for vertical writing) A description
of | 116 /** (Optional; applies only to CIDFonts used for vertical writing) A description
of |
| 165 * the metrics for vertical writing for the glyphs in the CIDFont (see "Glyph | 117 * the metrics for vertical writing for the glyphs in the CIDFont (see "Glyph |
| 166 * Metrics in CIDFonts" on page 340). Default value: none (the DW2 value is | 118 * Metrics in CIDFonts" on page 340). Default value: none (the DW2 value is |
| 167 * used for all glyphs). | 119 * used for all glyphs). |
| 168 **/ | 120 **/ |
| 169 bool has_W2() const { | 121 bool has_W2() const { |
| 170 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "W2",
"", NULL)); | 122 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "W2",
"", NULL)); |
| 171 } | 123 } |
| 172 | 124 |
| 173 SkPdfArray* W2() const { | 125 SkPdfArray* W2() const; |
| 174 SkPdfArray* ret; | |
| 175 if (ArrayFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "W2", "", &
ret)) return ret; | |
| 176 // TODO(edisonn): warn about missing required field, assert for known good p
dfs | |
| 177 return NULL; | |
| 178 } | |
| 179 | |
| 180 /** (Optional; Type 2 CIDFonts only) A specification of the mapping from CIDs | 126 /** (Optional; Type 2 CIDFonts only) A specification of the mapping from CIDs |
| 181 * to glyph indices. If the value is a stream, the bytes in the stream contain
the | 127 * to glyph indices. If the value is a stream, the bytes in the stream contain
the |
| 182 * mapping from CIDs to glyph indices: the glyph index for a particular CID | 128 * mapping from CIDs to glyph indices: the glyph index for a particular CID |
| 183 * value c is a 2-byte value stored in bytes 2 x c and 2 x c + 1, where the fir
st | 129 * value c is a 2-byte value stored in bytes 2 x c and 2 x c + 1, where the fir
st |
| 184 * byte is the high-order byte. If the value of CIDToGIDMap is a name, it must | 130 * byte is the high-order byte. If the value of CIDToGIDMap is a name, it must |
| 185 * be Identity, indicating that the mapping between CIDs and glyph indices is | 131 * be Identity, indicating that the mapping between CIDs and glyph indices is |
| 186 * the identity mapping. Default value: Identity. | 132 * the identity mapping. Default value: Identity. |
| 187 * This entry may appear only in a Type 2 CIDFont whose associated True- | 133 * This entry may appear only in a Type 2 CIDFont whose associated True- |
| 188 * Type font program is embedded in the PDF file (see the next section). | 134 * Type font program is embedded in the PDF file (see the next section). |
| 189 **/ | 135 **/ |
| 190 bool has_CIDToGIDMap() const { | 136 bool has_CIDToGIDMap() const { |
| 191 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "CIDTo
GIDMap", "", NULL)); | 137 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "CIDTo
GIDMap", "", NULL)); |
| 192 } | 138 } |
| 193 | 139 |
| 194 bool isCIDToGIDMapAStream() const { | 140 bool isCIDToGIDMapAStream() const { |
| 195 SkPdfObject* ret = NULL; | 141 SkPdfObject* ret = NULL; |
| 196 if (!ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "CIDToGID
Map", "", &ret)) return false; | 142 if (!ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "CIDToGID
Map", "", &ret)) return false; |
| 197 return ret->podofo()->HasStream(); | 143 return ret->podofo()->HasStream(); |
| 198 } | 144 } |
| 199 | 145 |
| 200 SkPdfStream* getCIDToGIDMapAsStream() const { | 146 SkPdfStream* getCIDToGIDMapAsStream() const; |
| 201 SkPdfStream* ret = NULL; | |
| 202 if (StreamFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "CIDToGIDM
ap", "", &ret)) return ret; | |
| 203 // TODO(edisonn): warn about missing required field, assert for known good p
dfs | |
| 204 return NULL; | |
| 205 } | |
| 206 | |
| 207 bool isCIDToGIDMapAName() const { | 147 bool isCIDToGIDMapAName() const { |
| 208 SkPdfObject* ret = NULL; | 148 SkPdfObject* ret = NULL; |
| 209 if (!ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "CIDToGID
Map", "", &ret)) return false; | 149 if (!ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "CIDToGID
Map", "", &ret)) return false; |
| 210 return ret->podofo()->GetDataType() == ePdfDataType_Name; | 150 return ret->podofo()->GetDataType() == ePdfDataType_Name; |
| 211 } | 151 } |
| 212 | 152 |
| 213 std::string getCIDToGIDMapAsName() const { | 153 std::string getCIDToGIDMapAsName() const; |
| 214 std::string ret = ""; | |
| 215 if (NameFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "CIDToGIDMap
", "", &ret)) return ret; | |
| 216 // TODO(edisonn): warn about missing required field, assert for known good p
dfs | |
| 217 return ""; | |
| 218 } | |
| 219 | |
| 220 }; | 154 }; |
| 221 | 155 |
| 222 #endif // __DEFINED__SkPdfCIDFontDictionary | 156 #endif // __DEFINED__SkPdfCIDFontDictionary |
| OLD | NEW |