DictData.Entry syntheticBaseEntry = topDict.getEntry("SyntheticBase"); if (syntheticBaseEntry != null) boolean isCIDFont = topDict.getEntry("ROS") != null; if (isCIDFont) DictData.Entry rosEntry = topDict.getEntry("ROS"); ((CFFCIDFont) font).setRegistry(readString(rosEntry.getNumber(0).intValue())); ((CFFCIDFont) font).setOrdering(readString(rosEntry.getNumber(1).intValue())); font.addValueToTopDict("FamilyName", getString(topDict, "FamilyName")); font.addValueToTopDict("Weight", getString(topDict, "Weight")); font.addValueToTopDict("isFixedPitch", topDict.getBoolean("isFixedPitch", false)); font.addValueToTopDict("ItalicAngle", topDict.getNumber("ItalicAngle", 0)); font.addValueToTopDict("UnderlinePosition", topDict.getNumber("UnderlinePosition", -100)); font.addValueToTopDict("UnderlineThickness", topDict.getNumber("UnderlineThickness", 50)); font.addValueToTopDict("PaintType", topDict.getNumber("PaintType", 0)); font.addValueToTopDict("CharstringType", topDict.getNumber("CharstringType", 2)); font.addValueToTopDict("FontMatrix", topDict.getArray("FontMatrix", Arrays.<Number>asList( 0.001, (double) 0, (double) 0, 0.001, (double) 0, (double) 0))); font.addValueToTopDict("UniqueID", topDict.getNumber("UniqueID", null)); font.addValueToTopDict("FontBBox", topDict.getArray("FontBBox", Arrays.<Number> asList(0, 0, 0, 0))); font.addValueToTopDict("StrokeWidth", topDict.getNumber("StrokeWidth", 0)); font.addValueToTopDict("XUID", topDict.getArray("XUID", null)); DictData.Entry charStringsEntry = topDict.getEntry("CharStrings"); int charStringsOffset = charStringsEntry.getNumber(0).intValue();
private Map<String, Object> readPrivateDict(DictData privateDict) { Map<String, Object> privDict = new LinkedHashMap<>(17); privDict.put("BlueValues", privateDict.getDelta("BlueValues", null)); privDict.put("OtherBlues", privateDict.getDelta("OtherBlues", null)); privDict.put("FamilyBlues", privateDict.getDelta("FamilyBlues", null)); privDict.put("FamilyOtherBlues", privateDict.getDelta("FamilyOtherBlues", null)); privDict.put("BlueScale", privateDict.getNumber("BlueScale", 0.039625)); privDict.put("BlueShift", privateDict.getNumber("BlueShift", 7)); privDict.put("BlueFuzz", privateDict.getNumber("BlueFuzz", 1)); privDict.put("StdHW", privateDict.getNumber("StdHW", null)); privDict.put("StdVW", privateDict.getNumber("StdVW", null)); privDict.put("StemSnapH", privateDict.getDelta("StemSnapH", null)); privDict.put("StemSnapV", privateDict.getDelta("StemSnapV", null)); privDict.put("ForceBold", privateDict.getBoolean("ForceBold", false)); privDict.put("LanguageGroup", privateDict.getNumber("LanguageGroup", 0)); privDict.put("ExpansionFactor", privateDict.getNumber("ExpansionFactor", 0.06)); privDict.put("initialRandomSeed", privateDict.getNumber("initialRandomSeed", 0)); privDict.put("defaultWidthX", privateDict.getNumber("defaultWidthX", 0)); privDict.put("nominalWidthX", privateDict.getNumber("nominalWidthX", 0)); return privDict; }
DictData.Entry syntheticBaseEntry = topDict.getEntry("SyntheticBase"); if (syntheticBaseEntry != null) boolean isCIDFont = topDict.getEntry("ROS") != null; if (isCIDFont) DictData.Entry rosEntry = topDict.getEntry("ROS"); ((CFFCIDFont) font).setRegistry(readString(rosEntry.getNumber(0).intValue())); ((CFFCIDFont) font).setOrdering(readString(rosEntry.getNumber(1).intValue())); font.addValueToTopDict("FamilyName", getString(topDict, "FamilyName")); font.addValueToTopDict("Weight", getString(topDict, "Weight")); font.addValueToTopDict("isFixedPitch", topDict.getBoolean("isFixedPitch", false)); font.addValueToTopDict("ItalicAngle", topDict.getNumber("ItalicAngle", 0)); font.addValueToTopDict("UnderlinePosition", topDict.getNumber("UnderlinePosition", -100)); font.addValueToTopDict("UnderlineThickness", topDict.getNumber("UnderlineThickness", 50)); font.addValueToTopDict("PaintType", topDict.getNumber("PaintType", 0)); font.addValueToTopDict("CharstringType", topDict.getNumber("CharstringType", 2)); font.addValueToTopDict("FontMatrix", topDict.getArray("FontMatrix", Arrays.<Number>asList( 0.001, (double) 0, (double) 0, 0.001, (double) 0, (double) 0))); font.addValueToTopDict("UniqueID", topDict.getNumber("UniqueID", null)); font.addValueToTopDict("FontBBox", topDict.getArray("FontBBox", Arrays.<Number> asList(0, 0, 0, 0))); font.addValueToTopDict("StrokeWidth", topDict.getNumber("StrokeWidth", 0)); font.addValueToTopDict("XUID", topDict.getArray("XUID", null)); DictData.Entry charStringsEntry = topDict.getEntry("CharStrings"); int charStringsOffset = charStringsEntry.getNumber(0).intValue();
DictData.Entry syntheticBaseEntry = topDict.getEntry("SyntheticBase"); if (syntheticBaseEntry != null) boolean isCIDFont = topDict.getEntry("ROS") != null; if (isCIDFont) DictData.Entry rosEntry = topDict.getEntry("ROS"); ((CFFCIDFont) font).setRegistry(readString(rosEntry.getNumber(0).intValue())); ((CFFCIDFont) font).setOrdering(readString(rosEntry.getNumber(1).intValue())); font.addValueToTopDict("FamilyName", getString(topDict, "FamilyName")); font.addValueToTopDict("Weight", getString(topDict, "Weight")); font.addValueToTopDict("isFixedPitch", topDict.getBoolean("isFixedPitch", false)); font.addValueToTopDict("ItalicAngle", topDict.getNumber("ItalicAngle", 0)); font.addValueToTopDict("UnderlinePosition", topDict.getNumber("UnderlinePosition", -100)); font.addValueToTopDict("UnderlineThickness", topDict.getNumber("UnderlineThickness", 50)); font.addValueToTopDict("PaintType", topDict.getNumber("PaintType", 0)); font.addValueToTopDict("CharstringType", topDict.getNumber("CharstringType", 2)); font.addValueToTopDict("FontMatrix", topDict.getArray("FontMatrix", Arrays.<Number>asList( 0.001, (double) 0, (double) 0, 0.001, (double) 0, (double) 0))); font.addValueToTopDict("UniqueID", topDict.getNumber("UniqueID", null)); font.addValueToTopDict("FontBBox", topDict.getArray("FontBBox", Arrays.<Number> asList(0, 0, 0, 0))); font.addValueToTopDict("StrokeWidth", topDict.getNumber("StrokeWidth", 0)); font.addValueToTopDict("XUID", topDict.getArray("XUID", null)); DictData.Entry charStringsEntry = topDict.getEntry("CharStrings"); int charStringsOffset = charStringsEntry.getNumber(0).intValue();
DictData.Entry fdArrayEntry = topDict.getEntry("FDArray"); if (fdArrayEntry == null) DictData.Entry privateEntry = fontDict.getEntry("Private"); if (privateEntry == null) fontDictMap.put("FontType", fontDict.getNumber("FontType", 0)); fontDictMap.put("FontBBox", fontDict.getArray("FontBBox", null)); fontDictMap.put("FontMatrix", fontDict.getArray("FontMatrix", null)); int localSubrOffset = (Integer) privateDict.getNumber("Subrs", 0); if (localSubrOffset > 0) DictData.Entry fdSelectEntry = topDict.getEntry("FDSelect"); int fdSelectPos = fdSelectEntry.getNumber(0).intValue(); input.setPosition(fdSelectPos);
DictData.Entry fdArrayEntry = topDict.getEntry("FDArray"); if (fdArrayEntry == null) DictData.Entry privateEntry = fontDict.getEntry("Private"); if (privateEntry == null) fontDictMap.put("FontType", fontDict.getNumber("FontType", 0)); fontDictMap.put("FontBBox", fontDict.getArray("FontBBox", null)); fontDictMap.put("FontMatrix", fontDict.getArray("FontMatrix", null)); int localSubrOffset = (Integer) privateDict.getNumber("Subrs", 0); if (localSubrOffset > 0) DictData.Entry fdSelectEntry = topDict.getEntry("FDSelect"); int fdSelectPos = fdSelectEntry.getNumber(0).intValue(); input.setPosition(fdSelectPos);
DictData.Entry encodingEntry = topDict.getEntry("Encoding"); CFFEncoding encoding; int encodingId = encodingEntry != null ? encodingEntry.getNumber(0).intValue() : 0; DictData.Entry privateEntry = topDict.getEntry("Private"); if (privateEntry == null) int localSubrOffset = (Integer) privateDict.getNumber("Subrs", 0); if (localSubrOffset > 0)
DictData.Entry encodingEntry = topDict.getEntry("Encoding"); CFFEncoding encoding; int encodingId = encodingEntry != null ? encodingEntry.getNumber(0).intValue() : 0; DictData.Entry privateEntry = topDict.getEntry("Private"); if (privateEntry == null) int localSubrOffset = (Integer) privateDict.getNumber("Subrs", 0); if (localSubrOffset > 0)
private Map<String, Object> readPrivateDict(DictData privateDict) { Map<String, Object> privDict = new LinkedHashMap<>(17); privDict.put("BlueValues", privateDict.getArray("BlueValues", null)); privDict.put("OtherBlues", privateDict.getArray("OtherBlues", null)); privDict.put("FamilyBlues", privateDict.getArray("FamilyBlues", null)); privDict.put("FamilyOtherBlues", privateDict.getArray("FamilyOtherBlues", null)); privDict.put("BlueScale", privateDict.getNumber("BlueScale", 0.039625)); privDict.put("BlueShift", privateDict.getNumber("BlueShift", 7)); privDict.put("BlueFuzz", privateDict.getNumber("BlueFuzz", 1)); privDict.put("StdHW", privateDict.getNumber("StdHW", null)); privDict.put("StdVW", privateDict.getNumber("StdVW", null)); privDict.put("StemSnapH", privateDict.getArray("StemSnapH", null)); privDict.put("StemSnapV", privateDict.getArray("StemSnapV", null)); privDict.put("ForceBold", privateDict.getBoolean("ForceBold", false)); privDict.put("LanguageGroup", privateDict.getNumber("LanguageGroup", 0)); privDict.put("ExpansionFactor", privateDict.getNumber("ExpansionFactor", 0.06)); privDict.put("initialRandomSeed", privateDict.getNumber("initialRandomSeed", 0)); privDict.put("defaultWidthX", privateDict.getNumber("defaultWidthX", 0)); privDict.put("nominalWidthX", privateDict.getNumber("nominalWidthX", 0)); return privDict; }
private Map<String, Object> readPrivateDict(DictData privateDict) { Map<String, Object> privDict = new LinkedHashMap<String, Object>(17); privDict.put("BlueValues", privateDict.getDelta("BlueValues", null)); privDict.put("OtherBlues", privateDict.getDelta("OtherBlues", null)); privDict.put("FamilyBlues", privateDict.getDelta("FamilyBlues", null)); privDict.put("FamilyOtherBlues", privateDict.getDelta("FamilyOtherBlues", null)); privDict.put("BlueScale", privateDict.getNumber("BlueScale", 0.039625)); privDict.put("BlueShift", privateDict.getNumber("BlueShift", 7)); privDict.put("BlueFuzz", privateDict.getNumber("BlueFuzz", 1)); privDict.put("StdHW", privateDict.getNumber("StdHW", null)); privDict.put("StdVW", privateDict.getNumber("StdVW", null)); privDict.put("StemSnapH", privateDict.getDelta("StemSnapH", null)); privDict.put("StemSnapV", privateDict.getDelta("StemSnapV", null)); privDict.put("ForceBold", privateDict.getBoolean("ForceBold", false)); privDict.put("LanguageGroup", privateDict.getNumber("LanguageGroup", 0)); privDict.put("ExpansionFactor", privateDict.getNumber("ExpansionFactor", 0.06)); privDict.put("initialRandomSeed", privateDict.getNumber("initialRandomSeed", 0)); privDict.put("defaultWidthX", privateDict.getNumber("defaultWidthX", 0)); privDict.put("nominalWidthX", privateDict.getNumber("nominalWidthX", 0)); return privDict; }
public Boolean getBoolean(String name, boolean defaultValue) { Entry entry = getEntry(name); return entry != null && entry.getArray().size() > 0 ? entry.getBoolean(0) : defaultValue; }
public Number getNumber(String name, Number defaultValue) { Entry entry = getEntry(name); return entry != null && !entry.getArray().isEmpty() ? entry.getNumber(0) : defaultValue; }
public Boolean getBoolean(String name, boolean defaultValue) { Entry entry = getEntry(name); return entry != null && !entry.getArray().isEmpty() ? entry.getBoolean(0) : defaultValue; }
private String getString(DictData dict, String name) throws IOException { DictData.Entry entry = dict.getEntry(name); return entry != null ? readString(entry.getNumber(0).intValue()) : null; }
private String getString(DictData dict, String name) throws IOException { DictData.Entry entry = dict.getEntry(name); return entry != null ? readString(entry.getNumber(0).intValue()) : null; }
public List<Number> getDelta(String name, List<Number> defaultValue) { Entry entry = getEntry(name); return entry != null && !entry.getArray().isEmpty() ? entry.getDelta() : defaultValue; }
public Number getNumber(String name, Number defaultValue) { Entry entry = getEntry(name); return entry != null && entry.getArray().size() > 0 ? entry.getNumber(0) : defaultValue; }
public List<Number> getArray(String name, List<Number> defaultValue) { Entry entry = getEntry(name); return entry != null && !entry.getArray().isEmpty() ? entry.getArray() : defaultValue; }