/* NOTICE: This file has been changed by Plutext Pty Ltd for use in docx4j. * The package name has been changed; there may also be other changes. * * This notice is included to meet the condition in clause 4(b) of the License. */ package org.docx4j.fonts.fop.fonts.base14; import java.util.Set; import org.docx4j.fonts.fop.fonts.Base14Font; import org.docx4j.fonts.fop.fonts.CodePointMapping; import org.docx4j.fonts.fop.fonts.FontType; import org.docx4j.fonts.fop.fonts.Typeface; public class ZapfDingbats extends Base14Font { private final static String fontName = "ZapfDingbats"; private final static String fullName = "ITC Zapf Dingbats"; private final static Set familyNames; private final static String encoding = "ZapfDingbatsEncoding"; private final static int capHeight = 820; private final static int xHeight = 426; private final static int ascender = 820; private final static int descender = -143; private final static int firstChar = 32; private final static int lastChar = 255; private final static int[] width; private final CodePointMapping mapping = CodePointMapping.getMapping("ZapfDingbatsEncoding"); private boolean enableKerning = false; static { width = new int[256]; width[0x20] = 278; width[0x21] = 974; width[0x22] = 961; width[0x23] = 974; width[0x24] = 980; width[0x25] = 719; width[0x26] = 789; width[0x27] = 790; width[0x28] = 791; width[0x29] = 690; width[0x2A] = 960; width[0x2B] = 939; width[0x2C] = 549; width[0x2D] = 855; width[0x2E] = 911; width[0x2F] = 933; width[0x30] = 911; width[0x31] = 945; width[0x32] = 974; width[0x33] = 755; width[0x34] = 846; width[0x35] = 762; width[0x36] = 761; width[0x37] = 571; width[0x38] = 677; width[0x39] = 763; width[0x3A] = 760; width[0x3B] = 759; width[0x3C] = 754; width[0x3D] = 494; width[0x3E] = 552; width[0x3F] = 537; width[0x40] = 577; width[0x41] = 692; width[0x42] = 786; width[0x43] = 788; width[0x44] = 788; width[0x45] = 790; width[0x46] = 793; width[0x47] = 794; width[0x48] = 816; width[0x49] = 823; width[0x4A] = 789; width[0x4B] = 841; width[0x4C] = 823; width[0x4D] = 833; width[0x4E] = 816; width[0x4F] = 831; width[0x50] = 923; width[0x51] = 744; width[0x52] = 723; width[0x53] = 749; width[0x54] = 790; width[0x55] = 792; width[0x56] = 695; width[0x57] = 776; width[0x58] = 768; width[0x59] = 792; width[0x5A] = 759; width[0x5B] = 707; width[0x5C] = 708; width[0x5D] = 682; width[0x5E] = 701; width[0x5F] = 826; width[0x60] = 815; width[0x61] = 789; width[0x62] = 789; width[0x63] = 707; width[0x64] = 687; width[0x65] = 696; width[0x66] = 689; width[0x67] = 786; width[0x68] = 787; width[0x69] = 713; width[0x6A] = 791; width[0x6B] = 785; width[0x6C] = 791; width[0x6D] = 873; width[0x6E] = 761; width[0x6F] = 762; width[0x70] = 762; width[0x71] = 759; width[0x72] = 759; width[0x73] = 892; width[0x74] = 892; width[0x75] = 788; width[0x76] = 784; width[0x77] = 438; width[0x78] = 138; width[0x79] = 277; width[0x7A] = 415; width[0x7B] = 392; width[0x7C] = 392; width[0x7D] = 668; width[0x7E] = 668; width[0xA1] = 732; width[0xA2] = 544; width[0xA3] = 544; width[0xA4] = 910; width[0xA5] = 667; width[0xA6] = 760; width[0xA7] = 760; width[0xA8] = 776; width[0xA9] = 595; width[0xAA] = 694; width[0xAB] = 626; width[0xAC] = 788; width[0xAD] = 788; width[0xAE] = 788; width[0xAF] = 788; width[0xB0] = 788; width[0xB1] = 788; width[0xB2] = 788; width[0xB3] = 788; width[0xB4] = 788; width[0xB5] = 788; width[0xB6] = 788; width[0xB7] = 788; width[0xB8] = 788; width[0xB9] = 788; width[0xBA] = 788; width[0xBB] = 788; width[0xBC] = 788; width[0xBD] = 788; width[0xBE] = 788; width[0xBF] = 788; width[0xC0] = 788; width[0xC1] = 788; width[0xC2] = 788; width[0xC3] = 788; width[0xC4] = 788; width[0xC5] = 788; width[0xC6] = 788; width[0xC7] = 788; width[0xC8] = 788; width[0xC9] = 788; width[0xCA] = 788; width[0xCB] = 788; width[0xCC] = 788; width[0xCD] = 788; width[0xCE] = 788; width[0xCF] = 788; width[0xD0] = 788; width[0xD1] = 788; width[0xD2] = 788; width[0xD3] = 788; width[0xD4] = 894; width[0xD5] = 838; width[0xD6] = 1016; width[0xD7] = 458; width[0xD8] = 748; width[0xD9] = 924; width[0xDA] = 748; width[0xDB] = 918; width[0xDC] = 927; width[0xDD] = 928; width[0xDE] = 928; width[0xDF] = 834; width[0xE0] = 873; width[0xE1] = 828; width[0xE2] = 924; width[0xE3] = 924; width[0xE4] = 917; width[0xE5] = 930; width[0xE6] = 931; width[0xE7] = 463; width[0xE8] = 883; width[0xE9] = 836; width[0xEA] = 836; width[0xEB] = 867; width[0xEC] = 867; width[0xED] = 696; width[0xEE] = 696; width[0xEF] = 874; width[0xF1] = 874; width[0xF2] = 760; width[0xF3] = 946; width[0xF4] = 771; width[0xF5] = 865; width[0xF6] = 771; width[0xF7] = 888; width[0xF8] = 967; width[0xF9] = 888; width[0xFA] = 831; width[0xFB] = 873; width[0xFC] = 927; width[0xFD] = 970; width[0xFE] = 918; width[0x89] = 410; width[0x87] = 509; width[0x8C] = 334; width[0x86] = 509; width[0x80] = 390; width[0x8A] = 234; width[0x84] = 276; width[0x81] = 390; width[0x88] = 410; width[0x83] = 317; width[0x82] = 317; width[0x85] = 276; width[0x8D] = 334; width[0x8B] = 234; familyNames = new java.util.HashSet(); familyNames.add("ZapfDingbats"); } public ZapfDingbats() { this(false); } public ZapfDingbats(boolean enableKerning) { this.enableKerning = enableKerning; } public String getEncodingName() { return encoding; } public String getFontName() { return fontName; } public String getEmbedFontName() { return getFontName(); } public String getFullName() { return fullName; } public Set getFamilyNames() { return familyNames; } public FontType getFontType() { return FontType.TYPE1; } public int getAscender(int size) { return size * ascender; } public int getCapHeight(int size) { return size * capHeight; } public int getDescender(int size) { return size * descender; } public int getXHeight(int size) { return size * xHeight; } public int getFirstChar() { return firstChar; } public int getLastChar() { return lastChar; } public int getWidth(int i,int size) { return size * width[i]; } public int[] getWidths() { int[] arr = new int[getLastChar() - getFirstChar() + 1]; System.arraycopy(width, getFirstChar(), arr, 0, getLastChar() - getFirstChar() + 1); return arr; } public boolean hasKerningInfo() { return false; } public java.util.Map getKerningInfo() { return java.util.Collections.EMPTY_MAP; } public char mapChar(char c) { notifyMapOperation(); char d = mapping.mapChar(c); if (d != 0) { return d; } else { this.warnMissingGlyph(c); return Typeface.NOT_FOUND; } } public boolean hasChar(char c) { return (mapping.mapChar(c) > 0); } }