#include "font.h" #include #include #include #include "tables/hmtx.h" int main(int argc, char **argv) { Font file(argv[1]); std::map cidMap = file.getCharCodeMetrics(0, 0x4ff); std::map::const_iterator itr = cidMap.begin(); std::map::const_iterator end = cidMap.end(); std::cout << "{\n"; std::cout << " \"ascent\": " << file.getAscent() << ",\n"; std::cout << " \"descent\": " << file.getDescent() << ",\n"; std::cout << " \"lineGap\": " << file.getLineGap() << ",\n"; std::cout << " \"caretSlopeRise\": " << file.getCaretSlopeRise() << ",\n"; std::cout << " \"caretSlopeRun\": " << file.getCaretSlopeRun() << ",\n"; std::cout << " \"unitsPerEm\": " << file.getUnitsPerEm() << ",\n"; std::cout << " \"fontFamily\": \"" << file.getNameField("fontFamily") << "\",\n"; std::cout << " \"postScriptName\": \"" << file.getNameField("postScriptName") << "\",\n"; std::cout << " \"boundingBox\": {\n"; std::cout << " \"xMin\": " << file.getXMin() << ",\n"; std::cout << " \"xMax\": " << file.getXMax() << ",\n"; std::cout << " \"yMin\": " << file.getYMin() << ",\n"; std::cout << " \"yMax\": " << file.getYMax() << "\n"; std::cout << " },\n"; std::cout << " \"advanceWidthArray\": [\n "; int i = 0; for (; itr != end; ++itr) { if (i != 0) { if (i == 16) { std::cout << ",\n "; i = 0; } else { std::cout << ", "; } } std::cout << itr->second.advanceWidth; ++i; } std::cout << "\n ]\n"; std::cout << "}" << std::endl; return 0; }