/* * Copyright (C) 2010-2016 JPEXS, All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 3.0 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library. */ package com.jpexs.decompiler.flash.tags.base; import java.awt.Font; import java.util.Map; /** * * @author JPEXS */ public class MissingCharacterHandler { public boolean getIgnoreMissingCharacters() { return false; } public boolean handle(TextTag textTag, FontTag font, char character) { String fontName = font.getFontNameIntag(); if (!FontTag.installedFontsByFamily.containsKey(fontName)) { return false; } Map<String, Font> faces = FontTag.installedFontsByFamily.get(fontName); Font f = null; for (String face : faces.keySet()) { Font ff = faces.get(face); if (ff.isBold() == font.isBold() && ff.isItalic() == font.isItalic()) { f = ff; break; } } if (f == null) { f = faces.get(faces.keySet().iterator().next()); } if (!f.canDisplay(character)) { return false; } font.addCharacter(character, f); return true; } }