15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Copyright 2013 Google Inc. 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Use of this source code is governed by a BSD-style license that can be 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * found in the LICENSE file. 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "SkPdfFontDescriptorDictionary_autogen.h" 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "SkPdfNativeDoc.h" 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 117dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochSkString SkPdfFontDescriptorDictionary::Type(SkPdfNativeDoc* doc) { 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SkPdfNativeObject* ret = get("Type", ""); 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (doc) {ret = doc->resolveReference(ret);} 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if ((ret != NULL && ret->isName()) || (doc == NULL && ret != NULL && ret->isReference())) return ret->nameValue2(); 15c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // TODO(edisonn): warn about missing required field, assert for known good pdfs 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return SkString(); 172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)bool SkPdfFontDescriptorDictionary::has_Type() const { 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return get("Type", "") != NULL; 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)SkString SkPdfFontDescriptorDictionary::FontName(SkPdfNativeDoc* doc) { 24eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch SkPdfNativeObject* ret = get("FontName", ""); 25eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch if (doc) {ret = doc->resolveReference(ret);} 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if ((ret != NULL && ret->isName()) || (doc == NULL && ret != NULL && ret->isReference())) return ret->nameValue2(); 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // TODO(edisonn): warn about missing required field, assert for known good pdfs 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return SkString(); 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool SkPdfFontDescriptorDictionary::has_FontName() const { 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return get("FontName", "") != NULL; 332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int64_t SkPdfFontDescriptorDictionary::Flags(SkPdfNativeDoc* doc) { 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SkPdfNativeObject* ret = get("Flags", ""); 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (doc) {ret = doc->resolveReference(ret);} 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if ((ret != NULL && ret->isInteger()) || (doc == NULL && ret != NULL && ret->isReference())) return ret->intValue(); 392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // TODO(edisonn): warn about missing required field, assert for known good pdfs 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return 0; 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool SkPdfFontDescriptorDictionary::has_Flags() const { 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return get("Flags", "") != NULL; 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 47a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)SkRect SkPdfFontDescriptorDictionary::FontBBox(SkPdfNativeDoc* doc) { 48c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) SkPdfNativeObject* ret = get("FontBBox", ""); 492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (doc) {ret = doc->resolveReference(ret);} 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if ((ret != NULL && ret->isRectangle()) || (doc == NULL && ret != NULL && ret->isReference())) return ret->rectangleValue(); 51424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) // TODO(edisonn): warn about missing required field, assert for known good pdfs 52424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) return SkRect::MakeEmpty(); 53424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)} 54424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool SkPdfFontDescriptorDictionary::has_FontBBox() const { 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return get("FontBBox", "") != NULL; 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 58eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)double SkPdfFontDescriptorDictionary::ItalicAngle(SkPdfNativeDoc* doc) { 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SkPdfNativeObject* ret = get("ItalicAngle", ""); 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (doc) {ret = doc->resolveReference(ret);} 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if ((ret != NULL && ret->isNumber()) || (doc == NULL && ret != NULL && ret->isReference())) return ret->numberValue(); 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // TODO(edisonn): warn about missing required field, assert for known good pdfs 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return 0; 655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool SkPdfFontDescriptorDictionary::has_ItalicAngle() const { 685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return get("ItalicAngle", "") != NULL; 69ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch} 702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)double SkPdfFontDescriptorDictionary::Ascent(SkPdfNativeDoc* doc) { 722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SkPdfNativeObject* ret = get("Ascent", ""); 732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (doc) {ret = doc->resolveReference(ret);} 742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if ((ret != NULL && ret->isNumber()) || (doc == NULL && ret != NULL && ret->isReference())) return ret->numberValue(); 752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // TODO(edisonn): warn about missing required field, assert for known good pdfs 762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return 0; 772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)bool SkPdfFontDescriptorDictionary::has_Ascent() const { 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return get("Ascent", "") != NULL; 812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)double SkPdfFontDescriptorDictionary::Descent(SkPdfNativeDoc* doc) { 845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SkPdfNativeObject* ret = get("Descent", ""); 855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (doc) {ret = doc->resolveReference(ret);} 865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if ((ret != NULL && ret->isNumber()) || (doc == NULL && ret != NULL && ret->isReference())) return ret->numberValue(); 875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // TODO(edisonn): warn about missing required field, assert for known good pdfs 885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return 0; 895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 9190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)bool SkPdfFontDescriptorDictionary::has_Descent() const { 925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return get("Descent", "") != NULL; 935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)double SkPdfFontDescriptorDictionary::Leading(SkPdfNativeDoc* doc) { 965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SkPdfNativeObject* ret = get("Leading", ""); 975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (doc) {ret = doc->resolveReference(ret);} 985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if ((ret != NULL && ret->isNumber()) || (doc == NULL && ret != NULL && ret->isReference())) return ret->numberValue(); 995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // TODO(edisonn): warn about missing default value for optional fields 1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return 0; 1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool SkPdfFontDescriptorDictionary::has_Leading() const { 1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return get("Leading", "") != NULL; 1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)double SkPdfFontDescriptorDictionary::CapHeight(SkPdfNativeDoc* doc) { 1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SkPdfNativeObject* ret = get("CapHeight", ""); 1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (doc) {ret = doc->resolveReference(ret);} 1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if ((ret != NULL && ret->isNumber()) || (doc == NULL && ret != NULL && ret->isReference())) return ret->numberValue(); 1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // TODO(edisonn): warn about missing required field, assert for known good pdfs 1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return 0; 1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool SkPdfFontDescriptorDictionary::has_CapHeight() const { 1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return get("CapHeight", "") != NULL; 1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)double SkPdfFontDescriptorDictionary::XHeight(SkPdfNativeDoc* doc) { 1202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SkPdfNativeObject* ret = get("XHeight", ""); 1212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (doc) {ret = doc->resolveReference(ret);} 1222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if ((ret != NULL && ret->isNumber()) || (doc == NULL && ret != NULL && ret->isReference())) return ret->numberValue(); 1232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // TODO(edisonn): warn about missing default value for optional fields 1242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return 0; 1252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 1262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)bool SkPdfFontDescriptorDictionary::has_XHeight() const { 1282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return get("XHeight", "") != NULL; 1292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 1302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)double SkPdfFontDescriptorDictionary::StemV(SkPdfNativeDoc* doc) { 1322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SkPdfNativeObject* ret = get("StemV", ""); 1332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (doc) {ret = doc->resolveReference(ret);} 1342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if ((ret != NULL && ret->isNumber()) || (doc == NULL && ret != NULL && ret->isReference())) return ret->numberValue(); 1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // TODO(edisonn): warn about missing required field, assert for known good pdfs 1362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return 0; 1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool SkPdfFontDescriptorDictionary::has_StemV() const { 1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return get("StemV", "") != NULL; 1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)double SkPdfFontDescriptorDictionary::StemH(SkPdfNativeDoc* doc) { 1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SkPdfNativeObject* ret = get("StemH", ""); 1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (doc) {ret = doc->resolveReference(ret);} 1465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if ((ret != NULL && ret->isNumber()) || (doc == NULL && ret != NULL && ret->isReference())) return ret->numberValue(); 1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // TODO(edisonn): warn about missing default value for optional fields 1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return 0; 1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool SkPdfFontDescriptorDictionary::has_StemH() const { 1525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return get("StemH", "") != NULL; 1535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)double SkPdfFontDescriptorDictionary::AvgWidth(SkPdfNativeDoc* doc) { 1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SkPdfNativeObject* ret = get("AvgWidth", ""); 1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (doc) {ret = doc->resolveReference(ret);} 1585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if ((ret != NULL && ret->isNumber()) || (doc == NULL && ret != NULL && ret->isReference())) return ret->numberValue(); 1595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // TODO(edisonn): warn about missing default value for optional fields 1605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return 0; 1615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 16390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)bool SkPdfFontDescriptorDictionary::has_AvgWidth() const { 16490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) return get("AvgWidth", "") != NULL; 1655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)double SkPdfFontDescriptorDictionary::MaxWidth(SkPdfNativeDoc* doc) { 1685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SkPdfNativeObject* ret = get("MaxWidth", ""); 1695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (doc) {ret = doc->resolveReference(ret);} 1705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if ((ret != NULL && ret->isNumber()) || (doc == NULL && ret != NULL && ret->isReference())) return ret->numberValue(); 1715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // TODO(edisonn): warn about missing default value for optional fields 1725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return 0; 1735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool SkPdfFontDescriptorDictionary::has_MaxWidth() const { 1765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return get("MaxWidth", "") != NULL; 1775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)double SkPdfFontDescriptorDictionary::MissingWidth(SkPdfNativeDoc* doc) { 1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SkPdfNativeObject* ret = get("MissingWidth", ""); 1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (doc) {ret = doc->resolveReference(ret);} 1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if ((ret != NULL && ret->isNumber()) || (doc == NULL && ret != NULL && ret->isReference())) return ret->numberValue(); 1835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // TODO(edisonn): warn about missing default value for optional fields 1845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return 0; 1855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool SkPdfFontDescriptorDictionary::has_MissingWidth() const { 1885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return get("MissingWidth", "") != NULL; 1895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)SkPdfStream* SkPdfFontDescriptorDictionary::FontFile(SkPdfNativeDoc* doc) { 1925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SkPdfNativeObject* ret = get("FontFile", ""); 1935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (doc) {ret = doc->resolveReference(ret);} 1945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if ((ret != NULL && ret->hasStream()) || (doc == NULL && ret != NULL && ret->isReference())) return ret->getStream(); 1955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // TODO(edisonn): warn about missing default value for optional fields 1965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return NULL; 1975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool SkPdfFontDescriptorDictionary::has_FontFile() const { 2005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return get("FontFile", "") != NULL; 2017dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch} 202c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 2032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)SkPdfStream* SkPdfFontDescriptorDictionary::FontFile2(SkPdfNativeDoc* doc) { 20490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) SkPdfNativeObject* ret = get("FontFile2", ""); 205c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) if (doc) {ret = doc->resolveReference(ret);} 20690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) if ((ret != NULL && ret->hasStream()) || (doc == NULL && ret != NULL && ret->isReference())) return ret->getStream(); 207eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch // TODO(edisonn): warn about missing default value for optional fields 208eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch return NULL; 2092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 2102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 2112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)bool SkPdfFontDescriptorDictionary::has_FontFile2() const { 2125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return get("FontFile2", "") != NULL; 2135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)SkPdfStream* SkPdfFontDescriptorDictionary::FontFile3(SkPdfNativeDoc* doc) { 2165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SkPdfNativeObject* ret = get("FontFile3", ""); 2175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (doc) {ret = doc->resolveReference(ret);} 2185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if ((ret != NULL && ret->hasStream()) || (doc == NULL && ret != NULL && ret->isReference())) return ret->getStream(); 2195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // TODO(edisonn): warn about missing default value for optional fields 2205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return NULL; 2215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool SkPdfFontDescriptorDictionary::has_FontFile3() const { 2245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return get("FontFile3", "") != NULL; 2255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)SkString SkPdfFontDescriptorDictionary::CharSet(SkPdfNativeDoc* doc) { 2285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SkPdfNativeObject* ret = get("CharSet", ""); 2295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (doc) {ret = doc->resolveReference(ret);} 2305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if ((ret != NULL && ret->isAnyString()) || (doc == NULL && ret != NULL && ret->isReference())) return ret->stringValue2(); 2315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // TODO(edisonn): warn about missing default value for optional fields 2325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return SkString(); 2335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool SkPdfFontDescriptorDictionary::has_CharSet() const { 2365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return get("CharSet", "") != NULL; 2375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)