aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2021-01-23 15:35:10 +0000
committerMichael Williamson <mike@zwobble.org>2021-01-23 15:35:10 +0000
commit9900b88419abc1bf8f29c856f620fbbfda358d1c (patch)
tree4bba2af78a9e064f0a52303cdba6a8a92f579358 /src/main
parent18d8561d42b28061b12b350a236de08b70b0c67f (diff)
Convert symbols in supported fonts to corresponding Unicode characters
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/org/zwobble/mammoth/internal/docx/Dingbats.java1081
-rw-r--r--src/main/java/org/zwobble/mammoth/internal/docx/StatefulBodyXmlReader.java34
2 files changed, 1113 insertions, 2 deletions
diff --git a/src/main/java/org/zwobble/mammoth/internal/docx/Dingbats.java b/src/main/java/org/zwobble/mammoth/internal/docx/Dingbats.java
new file mode 100644
index 0000000..abb14ee
--- /dev/null
+++ b/src/main/java/org/zwobble/mammoth/internal/docx/Dingbats.java
@@ -0,0 +1,1081 @@
+package org.zwobble.mammoth.internal.docx;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Optional;
+
+import static org.zwobble.mammoth.internal.util.Maps.lookup;
+
+public class Dingbats {
+ public static Optional<Integer> findDingbat(String font, int codePoint) {
+ return lookup(dingbats, font + "_" + codePoint);
+ }
+
+ // Generated by https://github.com/mwilliamson/dingbat-to-unicode
+
+ private static final Map<String, Integer> dingbats = new HashMap<>();
+
+ static {
+ dingbats.put("Symbol_32", 32);
+ dingbats.put("Symbol_33", 33);
+ dingbats.put("Symbol_34", 8704);
+ dingbats.put("Symbol_35", 35);
+ dingbats.put("Symbol_36", 8707);
+ dingbats.put("Symbol_37", 37);
+ dingbats.put("Symbol_38", 38);
+ dingbats.put("Symbol_39", 8717);
+ dingbats.put("Symbol_40", 40);
+ dingbats.put("Symbol_41", 41);
+ dingbats.put("Symbol_42", 42);
+ dingbats.put("Symbol_43", 43);
+ dingbats.put("Symbol_44", 44);
+ dingbats.put("Symbol_45", 8722);
+ dingbats.put("Symbol_46", 46);
+ dingbats.put("Symbol_47", 47);
+ dingbats.put("Symbol_48", 48);
+ dingbats.put("Symbol_49", 49);
+ dingbats.put("Symbol_50", 50);
+ dingbats.put("Symbol_51", 51);
+ dingbats.put("Symbol_52", 52);
+ dingbats.put("Symbol_53", 53);
+ dingbats.put("Symbol_54", 54);
+ dingbats.put("Symbol_55", 55);
+ dingbats.put("Symbol_56", 56);
+ dingbats.put("Symbol_57", 57);
+ dingbats.put("Symbol_58", 58);
+ dingbats.put("Symbol_59", 59);
+ dingbats.put("Symbol_60", 60);
+ dingbats.put("Symbol_61", 61);
+ dingbats.put("Symbol_62", 62);
+ dingbats.put("Symbol_63", 63);
+ dingbats.put("Symbol_64", 8773);
+ dingbats.put("Symbol_65", 913);
+ dingbats.put("Symbol_66", 914);
+ dingbats.put("Symbol_67", 935);
+ dingbats.put("Symbol_68", 916);
+ dingbats.put("Symbol_69", 917);
+ dingbats.put("Symbol_70", 934);
+ dingbats.put("Symbol_71", 915);
+ dingbats.put("Symbol_72", 919);
+ dingbats.put("Symbol_73", 921);
+ dingbats.put("Symbol_74", 977);
+ dingbats.put("Symbol_75", 922);
+ dingbats.put("Symbol_76", 923);
+ dingbats.put("Symbol_77", 924);
+ dingbats.put("Symbol_78", 925);
+ dingbats.put("Symbol_79", 927);
+ dingbats.put("Symbol_80", 928);
+ dingbats.put("Symbol_81", 920);
+ dingbats.put("Symbol_82", 929);
+ dingbats.put("Symbol_83", 931);
+ dingbats.put("Symbol_84", 932);
+ dingbats.put("Symbol_85", 933);
+ dingbats.put("Symbol_86", 962);
+ dingbats.put("Symbol_87", 937);
+ dingbats.put("Symbol_88", 926);
+ dingbats.put("Symbol_89", 936);
+ dingbats.put("Symbol_90", 918);
+ dingbats.put("Symbol_91", 91);
+ dingbats.put("Symbol_92", 8756);
+ dingbats.put("Symbol_93", 93);
+ dingbats.put("Symbol_94", 8869);
+ dingbats.put("Symbol_95", 95);
+ dingbats.put("Symbol_96", 8254);
+ dingbats.put("Symbol_97", 945);
+ dingbats.put("Symbol_98", 946);
+ dingbats.put("Symbol_99", 967);
+ dingbats.put("Symbol_100", 948);
+ dingbats.put("Symbol_101", 949);
+ dingbats.put("Symbol_102", 966);
+ dingbats.put("Symbol_103", 947);
+ dingbats.put("Symbol_104", 951);
+ dingbats.put("Symbol_105", 953);
+ dingbats.put("Symbol_106", 981);
+ dingbats.put("Symbol_107", 954);
+ dingbats.put("Symbol_108", 955);
+ dingbats.put("Symbol_109", 956);
+ dingbats.put("Symbol_110", 957);
+ dingbats.put("Symbol_111", 959);
+ dingbats.put("Symbol_112", 960);
+ dingbats.put("Symbol_113", 952);
+ dingbats.put("Symbol_114", 961);
+ dingbats.put("Symbol_115", 963);
+ dingbats.put("Symbol_116", 964);
+ dingbats.put("Symbol_117", 965);
+ dingbats.put("Symbol_118", 982);
+ dingbats.put("Symbol_119", 969);
+ dingbats.put("Symbol_120", 958);
+ dingbats.put("Symbol_121", 968);
+ dingbats.put("Symbol_122", 950);
+ dingbats.put("Symbol_123", 123);
+ dingbats.put("Symbol_124", 124);
+ dingbats.put("Symbol_125", 125);
+ dingbats.put("Symbol_126", 126);
+ dingbats.put("Symbol_160", 8364);
+ dingbats.put("Symbol_161", 978);
+ dingbats.put("Symbol_162", 8242);
+ dingbats.put("Symbol_163", 8804);
+ dingbats.put("Symbol_164", 8260);
+ dingbats.put("Symbol_165", 8734);
+ dingbats.put("Symbol_166", 402);
+ dingbats.put("Symbol_167", 9827);
+ dingbats.put("Symbol_168", 9830);
+ dingbats.put("Symbol_169", 9829);
+ dingbats.put("Symbol_170", 9824);
+ dingbats.put("Symbol_171", 8596);
+ dingbats.put("Symbol_172", 8592);
+ dingbats.put("Symbol_173", 8593);
+ dingbats.put("Symbol_174", 8594);
+ dingbats.put("Symbol_175", 8595);
+ dingbats.put("Symbol_176", 176);
+ dingbats.put("Symbol_177", 177);
+ dingbats.put("Symbol_178", 8243);
+ dingbats.put("Symbol_179", 8805);
+ dingbats.put("Symbol_180", 215);
+ dingbats.put("Symbol_181", 8733);
+ dingbats.put("Symbol_182", 8706);
+ dingbats.put("Symbol_183", 8226);
+ dingbats.put("Symbol_184", 247);
+ dingbats.put("Symbol_185", 8800);
+ dingbats.put("Symbol_186", 8801);
+ dingbats.put("Symbol_187", 8776);
+ dingbats.put("Symbol_188", 8230);
+ dingbats.put("Symbol_189", 9168);
+ dingbats.put("Symbol_190", 9135);
+ dingbats.put("Symbol_191", 8629);
+ dingbats.put("Symbol_192", 8501);
+ dingbats.put("Symbol_193", 8465);
+ dingbats.put("Symbol_194", 8476);
+ dingbats.put("Symbol_195", 8472);
+ dingbats.put("Symbol_196", 8855);
+ dingbats.put("Symbol_197", 8853);
+ dingbats.put("Symbol_198", 8709);
+ dingbats.put("Symbol_199", 8745);
+ dingbats.put("Symbol_200", 8746);
+ dingbats.put("Symbol_201", 8835);
+ dingbats.put("Symbol_202", 8839);
+ dingbats.put("Symbol_203", 8836);
+ dingbats.put("Symbol_204", 8834);
+ dingbats.put("Symbol_205", 8838);
+ dingbats.put("Symbol_206", 8712);
+ dingbats.put("Symbol_207", 8713);
+ dingbats.put("Symbol_208", 8736);
+ dingbats.put("Symbol_209", 8711);
+ dingbats.put("Symbol_210", 174);
+ dingbats.put("Symbol_211", 169);
+ dingbats.put("Symbol_212", 8482);
+ dingbats.put("Symbol_213", 8719);
+ dingbats.put("Symbol_214", 8730);
+ dingbats.put("Symbol_215", 8901);
+ dingbats.put("Symbol_216", 172);
+ dingbats.put("Symbol_217", 8743);
+ dingbats.put("Symbol_218", 8744);
+ dingbats.put("Symbol_219", 8660);
+ dingbats.put("Symbol_220", 8656);
+ dingbats.put("Symbol_221", 8657);
+ dingbats.put("Symbol_222", 8658);
+ dingbats.put("Symbol_223", 8659);
+ dingbats.put("Symbol_224", 9674);
+ dingbats.put("Symbol_225", 12296);
+ dingbats.put("Symbol_226", 174);
+ dingbats.put("Symbol_227", 169);
+ dingbats.put("Symbol_228", 8482);
+ dingbats.put("Symbol_229", 8721);
+ dingbats.put("Symbol_230", 9115);
+ dingbats.put("Symbol_231", 9116);
+ dingbats.put("Symbol_232", 9117);
+ dingbats.put("Symbol_233", 9121);
+ dingbats.put("Symbol_234", 9122);
+ dingbats.put("Symbol_235", 9123);
+ dingbats.put("Symbol_236", 9127);
+ dingbats.put("Symbol_237", 9128);
+ dingbats.put("Symbol_238", 9129);
+ dingbats.put("Symbol_239", 9130);
+ dingbats.put("Symbol_240", 63743);
+ dingbats.put("Symbol_241", 12297);
+ dingbats.put("Symbol_242", 8747);
+ dingbats.put("Symbol_243", 8992);
+ dingbats.put("Symbol_244", 9134);
+ dingbats.put("Symbol_245", 8993);
+ dingbats.put("Symbol_246", 9118);
+ dingbats.put("Symbol_247", 9119);
+ dingbats.put("Symbol_248", 9120);
+ dingbats.put("Symbol_249", 9124);
+ dingbats.put("Symbol_250", 9125);
+ dingbats.put("Symbol_251", 9126);
+ dingbats.put("Symbol_252", 9131);
+ dingbats.put("Symbol_253", 9132);
+ dingbats.put("Symbol_254", 9133);
+ dingbats.put("Webdings_32", 32);
+ dingbats.put("Webdings_33", 128375);
+ dingbats.put("Webdings_34", 128376);
+ dingbats.put("Webdings_35", 128370);
+ dingbats.put("Webdings_36", 128374);
+ dingbats.put("Webdings_37", 127942);
+ dingbats.put("Webdings_38", 127894);
+ dingbats.put("Webdings_39", 128391);
+ dingbats.put("Webdings_40", 128488);
+ dingbats.put("Webdings_41", 128489);
+ dingbats.put("Webdings_42", 128496);
+ dingbats.put("Webdings_43", 128497);
+ dingbats.put("Webdings_44", 127798);
+ dingbats.put("Webdings_45", 127895);
+ dingbats.put("Webdings_46", 128638);
+ dingbats.put("Webdings_47", 128636);
+ dingbats.put("Webdings_48", 128469);
+ dingbats.put("Webdings_49", 128470);
+ dingbats.put("Webdings_50", 128471);
+ dingbats.put("Webdings_51", 9204);
+ dingbats.put("Webdings_52", 9205);
+ dingbats.put("Webdings_53", 9206);
+ dingbats.put("Webdings_54", 9207);
+ dingbats.put("Webdings_55", 9194);
+ dingbats.put("Webdings_56", 9193);
+ dingbats.put("Webdings_57", 9198);
+ dingbats.put("Webdings_58", 9197);
+ dingbats.put("Webdings_59", 9208);
+ dingbats.put("Webdings_60", 9209);
+ dingbats.put("Webdings_61", 9210);
+ dingbats.put("Webdings_62", 128474);
+ dingbats.put("Webdings_63", 128499);
+ dingbats.put("Webdings_64", 128736);
+ dingbats.put("Webdings_65", 127959);
+ dingbats.put("Webdings_66", 127960);
+ dingbats.put("Webdings_67", 127961);
+ dingbats.put("Webdings_68", 127962);
+ dingbats.put("Webdings_69", 127964);
+ dingbats.put("Webdings_70", 127981);
+ dingbats.put("Webdings_71", 127963);
+ dingbats.put("Webdings_72", 127968);
+ dingbats.put("Webdings_73", 127958);
+ dingbats.put("Webdings_74", 127965);
+ dingbats.put("Webdings_75", 128739);
+ dingbats.put("Webdings_76", 128269);
+ dingbats.put("Webdings_77", 127956);
+ dingbats.put("Webdings_78", 128065);
+ dingbats.put("Webdings_79", 128066);
+ dingbats.put("Webdings_80", 127966);
+ dingbats.put("Webdings_81", 127957);
+ dingbats.put("Webdings_82", 128740);
+ dingbats.put("Webdings_83", 127967);
+ dingbats.put("Webdings_84", 128755);
+ dingbats.put("Webdings_85", 128364);
+ dingbats.put("Webdings_86", 128363);
+ dingbats.put("Webdings_87", 128360);
+ dingbats.put("Webdings_88", 128264);
+ dingbats.put("Webdings_89", 127892);
+ dingbats.put("Webdings_90", 127893);
+ dingbats.put("Webdings_91", 128492);
+ dingbats.put("Webdings_92", 128637);
+ dingbats.put("Webdings_93", 128493);
+ dingbats.put("Webdings_94", 128490);
+ dingbats.put("Webdings_95", 128491);
+ dingbats.put("Webdings_96", 11156);
+ dingbats.put("Webdings_97", 10004);
+ dingbats.put("Webdings_98", 128690);
+ dingbats.put("Webdings_99", 11036);
+ dingbats.put("Webdings_100", 128737);
+ dingbats.put("Webdings_101", 128230);
+ dingbats.put("Webdings_102", 128753);
+ dingbats.put("Webdings_103", 11035);
+ dingbats.put("Webdings_104", 128657);
+ dingbats.put("Webdings_105", 128712);
+ dingbats.put("Webdings_106", 128745);
+ dingbats.put("Webdings_107", 128752);
+ dingbats.put("Webdings_108", 128968);
+ dingbats.put("Webdings_109", 128372);
+ dingbats.put("Webdings_110", 11044);
+ dingbats.put("Webdings_111", 128741);
+ dingbats.put("Webdings_112", 128660);
+ dingbats.put("Webdings_113", 128472);
+ dingbats.put("Webdings_114", 128473);
+ dingbats.put("Webdings_115", 10067);
+ dingbats.put("Webdings_116", 128754);
+ dingbats.put("Webdings_117", 128647);
+ dingbats.put("Webdings_118", 128653);
+ dingbats.put("Webdings_119", 9971);
+ dingbats.put("Webdings_120", 10680);
+ dingbats.put("Webdings_121", 8854);
+ dingbats.put("Webdings_122", 128685);
+ dingbats.put("Webdings_123", 128494);
+ dingbats.put("Webdings_124", 9168);
+ dingbats.put("Webdings_125", 128495);
+ dingbats.put("Webdings_126", 128498);
+ dingbats.put("Webdings_128", 128697);
+ dingbats.put("Webdings_129", 128698);
+ dingbats.put("Webdings_130", 128713);
+ dingbats.put("Webdings_131", 128714);
+ dingbats.put("Webdings_132", 128700);
+ dingbats.put("Webdings_133", 128125);
+ dingbats.put("Webdings_134", 127947);
+ dingbats.put("Webdings_135", 9975);
+ dingbats.put("Webdings_136", 127938);
+ dingbats.put("Webdings_137", 127948);
+ dingbats.put("Webdings_138", 127946);
+ dingbats.put("Webdings_139", 127940);
+ dingbats.put("Webdings_140", 127949);
+ dingbats.put("Webdings_141", 127950);
+ dingbats.put("Webdings_142", 128664);
+ dingbats.put("Webdings_143", 128480);
+ dingbats.put("Webdings_144", 128738);
+ dingbats.put("Webdings_145", 128176);
+ dingbats.put("Webdings_146", 127991);
+ dingbats.put("Webdings_147", 128179);
+ dingbats.put("Webdings_148", 128106);
+ dingbats.put("Webdings_149", 128481);
+ dingbats.put("Webdings_150", 128482);
+ dingbats.put("Webdings_151", 128483);
+ dingbats.put("Webdings_152", 10031);
+ dingbats.put("Webdings_153", 128388);
+ dingbats.put("Webdings_154", 128389);
+ dingbats.put("Webdings_155", 128387);
+ dingbats.put("Webdings_156", 128390);
+ dingbats.put("Webdings_157", 128441);
+ dingbats.put("Webdings_158", 128442);
+ dingbats.put("Webdings_159", 128443);
+ dingbats.put("Webdings_160", 128373);
+ dingbats.put("Webdings_161", 128368);
+ dingbats.put("Webdings_162", 128445);
+ dingbats.put("Webdings_163", 128446);
+ dingbats.put("Webdings_164", 128203);
+ dingbats.put("Webdings_165", 128466);
+ dingbats.put("Webdings_166", 128467);
+ dingbats.put("Webdings_167", 128366);
+ dingbats.put("Webdings_168", 128218);
+ dingbats.put("Webdings_169", 128478);
+ dingbats.put("Webdings_170", 128479);
+ dingbats.put("Webdings_171", 128451);
+ dingbats.put("Webdings_172", 128450);
+ dingbats.put("Webdings_173", 128444);
+ dingbats.put("Webdings_174", 127917);
+ dingbats.put("Webdings_175", 127900);
+ dingbats.put("Webdings_176", 127896);
+ dingbats.put("Webdings_177", 127897);
+ dingbats.put("Webdings_178", 127911);
+ dingbats.put("Webdings_179", 128191);
+ dingbats.put("Webdings_180", 127902);
+ dingbats.put("Webdings_181", 128247);
+ dingbats.put("Webdings_182", 127903);
+ dingbats.put("Webdings_183", 127916);
+ dingbats.put("Webdings_184", 128253);
+ dingbats.put("Webdings_185", 128249);
+ dingbats.put("Webdings_186", 128254);
+ dingbats.put("Webdings_187", 128251);
+ dingbats.put("Webdings_188", 127898);
+ dingbats.put("Webdings_189", 127899);
+ dingbats.put("Webdings_190", 128250);
+ dingbats.put("Webdings_191", 128187);
+ dingbats.put("Webdings_192", 128421);
+ dingbats.put("Webdings_193", 128422);
+ dingbats.put("Webdings_194", 128423);
+ dingbats.put("Webdings_195", 128377);
+ dingbats.put("Webdings_196", 127918);
+ dingbats.put("Webdings_197", 128379);
+ dingbats.put("Webdings_198", 128380);
+ dingbats.put("Webdings_199", 128223);
+ dingbats.put("Webdings_200", 128385);
+ dingbats.put("Webdings_201", 128384);
+ dingbats.put("Webdings_202", 128424);
+ dingbats.put("Webdings_203", 128425);
+ dingbats.put("Webdings_204", 128447);
+ dingbats.put("Webdings_205", 128426);
+ dingbats.put("Webdings_206", 128476);
+ dingbats.put("Webdings_207", 128274);
+ dingbats.put("Webdings_208", 128275);
+ dingbats.put("Webdings_209", 128477);
+ dingbats.put("Webdings_210", 128229);
+ dingbats.put("Webdings_211", 128228);
+ dingbats.put("Webdings_212", 128371);
+ dingbats.put("Webdings_213", 127779);
+ dingbats.put("Webdings_214", 127780);
+ dingbats.put("Webdings_215", 127781);
+ dingbats.put("Webdings_216", 127782);
+ dingbats.put("Webdings_217", 9729);
+ dingbats.put("Webdings_218", 127784);
+ dingbats.put("Webdings_219", 127783);
+ dingbats.put("Webdings_220", 127785);
+ dingbats.put("Webdings_221", 127786);
+ dingbats.put("Webdings_222", 127788);
+ dingbats.put("Webdings_223", 127787);
+ dingbats.put("Webdings_224", 127772);
+ dingbats.put("Webdings_225", 127777);
+ dingbats.put("Webdings_226", 128715);
+ dingbats.put("Webdings_227", 128719);
+ dingbats.put("Webdings_228", 127869);
+ dingbats.put("Webdings_229", 127864);
+ dingbats.put("Webdings_230", 128718);
+ dingbats.put("Webdings_231", 128717);
+ dingbats.put("Webdings_232", 9413);
+ dingbats.put("Webdings_233", 9855);
+ dingbats.put("Webdings_234", 128710);
+ dingbats.put("Webdings_235", 128392);
+ dingbats.put("Webdings_236", 127891);
+ dingbats.put("Webdings_237", 128484);
+ dingbats.put("Webdings_238", 128485);
+ dingbats.put("Webdings_239", 128486);
+ dingbats.put("Webdings_240", 128487);
+ dingbats.put("Webdings_241", 128746);
+ dingbats.put("Webdings_242", 128063);
+ dingbats.put("Webdings_243", 128038);
+ dingbats.put("Webdings_244", 128031);
+ dingbats.put("Webdings_245", 128021);
+ dingbats.put("Webdings_246", 128008);
+ dingbats.put("Webdings_247", 128620);
+ dingbats.put("Webdings_248", 128622);
+ dingbats.put("Webdings_249", 128621);
+ dingbats.put("Webdings_250", 128623);
+ dingbats.put("Webdings_251", 128506);
+ dingbats.put("Webdings_252", 127757);
+ dingbats.put("Webdings_253", 127759);
+ dingbats.put("Webdings_254", 127758);
+ dingbats.put("Webdings_255", 128330);
+ dingbats.put("Wingdings_32", 32);
+ dingbats.put("Wingdings_33", 128393);
+ dingbats.put("Wingdings_34", 9986);
+ dingbats.put("Wingdings_35", 9985);
+ dingbats.put("Wingdings_36", 128083);
+ dingbats.put("Wingdings_37", 128365);
+ dingbats.put("Wingdings_38", 128366);
+ dingbats.put("Wingdings_39", 128367);
+ dingbats.put("Wingdings_40", 128383);
+ dingbats.put("Wingdings_41", 9990);
+ dingbats.put("Wingdings_42", 128386);
+ dingbats.put("Wingdings_43", 128387);
+ dingbats.put("Wingdings_44", 128234);
+ dingbats.put("Wingdings_45", 128235);
+ dingbats.put("Wingdings_46", 128236);
+ dingbats.put("Wingdings_47", 128237);
+ dingbats.put("Wingdings_48", 128448);
+ dingbats.put("Wingdings_49", 128449);
+ dingbats.put("Wingdings_50", 128462);
+ dingbats.put("Wingdings_51", 128463);
+ dingbats.put("Wingdings_52", 128464);
+ dingbats.put("Wingdings_53", 128452);
+ dingbats.put("Wingdings_54", 8987);
+ dingbats.put("Wingdings_55", 128430);
+ dingbats.put("Wingdings_56", 128432);
+ dingbats.put("Wingdings_57", 128434);
+ dingbats.put("Wingdings_58", 128435);
+ dingbats.put("Wingdings_59", 128436);
+ dingbats.put("Wingdings_60", 128427);
+ dingbats.put("Wingdings_61", 128428);
+ dingbats.put("Wingdings_62", 9991);
+ dingbats.put("Wingdings_63", 9997);
+ dingbats.put("Wingdings_64", 128398);
+ dingbats.put("Wingdings_65", 9996);
+ dingbats.put("Wingdings_66", 128399);
+ dingbats.put("Wingdings_67", 128077);
+ dingbats.put("Wingdings_68", 128078);
+ dingbats.put("Wingdings_69", 9756);
+ dingbats.put("Wingdings_70", 9758);
+ dingbats.put("Wingdings_71", 9757);
+ dingbats.put("Wingdings_72", 9759);
+ dingbats.put("Wingdings_73", 128400);
+ dingbats.put("Wingdings_74", 9786);
+ dingbats.put("Wingdings_75", 128528);
+ dingbats.put("Wingdings_76", 9785);
+ dingbats.put("Wingdings_77", 128163);
+ dingbats.put("Wingdings_78", 128369);
+ dingbats.put("Wingdings_79", 127987);
+ dingbats.put("Wingdings_80", 127985);
+ dingbats.put("Wingdings_81", 9992);
+ dingbats.put("Wingdings_82", 9788);
+ dingbats.put("Wingdings_83", 127778);
+ dingbats.put("Wingdings_84", 10052);
+ dingbats.put("Wingdings_85", 128326);
+ dingbats.put("Wingdings_86", 10014);
+ dingbats.put("Wingdings_87", 128328);
+ dingbats.put("Wingdings_88", 10016);
+ dingbats.put("Wingdings_89", 10017);
+ dingbats.put("Wingdings_90", 9770);
+ dingbats.put("Wingdings_91", 9775);
+ dingbats.put("Wingdings_92", 128329);
+ dingbats.put("Wingdings_93", 9784);
+ dingbats.put("Wingdings_94", 9800);
+ dingbats.put("Wingdings_95", 9801);
+ dingbats.put("Wingdings_96", 9802);
+ dingbats.put("Wingdings_97", 9803);
+ dingbats.put("Wingdings_98", 9804);
+ dingbats.put("Wingdings_99", 9805);
+ dingbats.put("Wingdings_100", 9806);
+ dingbats.put("Wingdings_101", 9807);
+ dingbats.put("Wingdings_102", 9808);
+ dingbats.put("Wingdings_103", 9809);
+ dingbats.put("Wingdings_104", 9810);
+ dingbats.put("Wingdings_105", 9811);
+ dingbats.put("Wingdings_106", 128624);
+ dingbats.put("Wingdings_107", 128629);
+ dingbats.put("Wingdings_108", 9899);
+ dingbats.put("Wingdings_109", 128318);
+ dingbats.put("Wingdings_110", 9724);
+ dingbats.put("Wingdings_111", 128911);
+ dingbats.put("Wingdings_112", 128912);
+ dingbats.put("Wingdings_113", 10065);
+ dingbats.put("Wingdings_114", 10066);
+ dingbats.put("Wingdings_115", 128927);
+ dingbats.put("Wingdings_116", 10731);
+ dingbats.put("Wingdings_117", 9670);
+ dingbats.put("Wingdings_118", 10070);
+ dingbats.put("Wingdings_119", 11049);
+ dingbats.put("Wingdings_120", 8999);
+ dingbats.put("Wingdings_121", 11193);
+ dingbats.put("Wingdings_122", 8984);
+ dingbats.put("Wingdings_123", 127989);
+ dingbats.put("Wingdings_124", 127990);
+ dingbats.put("Wingdings_125", 128630);
+ dingbats.put("Wingdings_126", 128631);
+ dingbats.put("Wingdings_127", 9647);
+ dingbats.put("Wingdings_128", 127243);
+ dingbats.put("Wingdings_129", 10112);
+ dingbats.put("Wingdings_130", 10113);
+ dingbats.put("Wingdings_131", 10114);
+ dingbats.put("Wingdings_132", 10115);
+ dingbats.put("Wingdings_133", 10116);
+ dingbats.put("Wingdings_134", 10117);
+ dingbats.put("Wingdings_135", 10118);
+ dingbats.put("Wingdings_136", 10119);
+ dingbats.put("Wingdings_137", 10120);
+ dingbats.put("Wingdings_138", 10121);
+ dingbats.put("Wingdings_139", 127244);
+ dingbats.put("Wingdings_140", 10122);
+ dingbats.put("Wingdings_141", 10123);
+ dingbats.put("Wingdings_142", 10124);
+ dingbats.put("Wingdings_143", 10125);
+ dingbats.put("Wingdings_144", 10126);
+ dingbats.put("Wingdings_145", 10127);
+ dingbats.put("Wingdings_146", 10128);
+ dingbats.put("Wingdings_147", 10129);
+ dingbats.put("Wingdings_148", 10130);
+ dingbats.put("Wingdings_149", 10131);
+ dingbats.put("Wingdings_150", 128610);
+ dingbats.put("Wingdings_151", 128608);
+ dingbats.put("Wingdings_152", 128609);
+ dingbats.put("Wingdings_153", 128611);
+ dingbats.put("Wingdings_154", 128606);
+ dingbats.put("Wingdings_155", 128604);
+ dingbats.put("Wingdings_156", 128605);
+ dingbats.put("Wingdings_157", 128607);
+ dingbats.put("Wingdings_158", 8729);
+ dingbats.put("Wingdings_159", 8226);
+ dingbats.put("Wingdings_160", 11037);
+ dingbats.put("Wingdings_161", 11096);
+ dingbats.put("Wingdings_162", 128902);
+ dingbats.put("Wingdings_163", 128904);
+ dingbats.put("Wingdings_164", 128906);
+ dingbats.put("Wingdings_165", 128907);
+ dingbats.put("Wingdings_166", 128319);
+ dingbats.put("Wingdings_167", 9642);
+ dingbats.put("Wingdings_168", 128910);
+ dingbats.put("Wingdings_169", 128961);
+ dingbats.put("Wingdings_170", 128965);
+ dingbats.put("Wingdings_171", 9733);
+ dingbats.put("Wingdings_172", 128971);
+ dingbats.put("Wingdings_173", 128975);
+ dingbats.put("Wingdings_174", 128979);
+ dingbats.put("Wingdings_175", 128977);
+ dingbats.put("Wingdings_176", 11216);
+ dingbats.put("Wingdings_177", 8982);
+ dingbats.put("Wingdings_178", 11214);
+ dingbats.put("Wingdings_179", 11215);
+ dingbats.put("Wingdings_180", 11217);
+ dingbats.put("Wingdings_181", 10026);
+ dingbats.put("Wingdings_182", 10032);
+ dingbats.put("Wingdings_183", 128336);
+ dingbats.put("Wingdings_184", 128337);
+ dingbats.put("Wingdings_185", 128338);
+ dingbats.put("Wingdings_186", 128339);
+ dingbats.put("Wingdings_187", 128340);
+ dingbats.put("Wingdings_188", 128341);
+ dingbats.put("Wingdings_189", 128342);
+ dingbats.put("Wingdings_190", 128343);
+ dingbats.put("Wingdings_191", 128344);
+ dingbats.put("Wingdings_192", 128345);
+ dingbats.put("Wingdings_193", 128346);
+ dingbats.put("Wingdings_194", 128347);
+ dingbats.put("Wingdings_195", 11184);
+ dingbats.put("Wingdings_196", 11185);
+ dingbats.put("Wingdings_197", 11186);
+ dingbats.put("Wingdings_198", 11187);
+ dingbats.put("Wingdings_199", 11188);
+ dingbats.put("Wingdings_200", 11189);
+ dingbats.put("Wingdings_201", 11190);
+ dingbats.put("Wingdings_202", 11191);
+ dingbats.put("Wingdings_203", 128618);
+ dingbats.put("Wingdings_204", 128619);
+ dingbats.put("Wingdings_205", 128597);
+ dingbats.put("Wingdings_206", 128596);
+ dingbats.put("Wingdings_207", 128599);
+ dingbats.put("Wingdings_208", 128598);
+ dingbats.put("Wingdings_209", 128592);
+ dingbats.put("Wingdings_210", 128593);
+ dingbats.put("Wingdings_211", 128594);
+ dingbats.put("Wingdings_212", 128595);
+ dingbats.put("Wingdings_213", 9003);
+ dingbats.put("Wingdings_214", 8998);
+ dingbats.put("Wingdings_215", 11160);
+ dingbats.put("Wingdings_216", 11162);
+ dingbats.put("Wingdings_217", 11161);
+ dingbats.put("Wingdings_218", 11163);
+ dingbats.put("Wingdings_219", 11144);
+ dingbats.put("Wingdings_220", 11146);
+ dingbats.put("Wingdings_221", 11145);
+ dingbats.put("Wingdings_222", 11147);
+ dingbats.put("Wingdings_223", 129128);
+ dingbats.put("Wingdings_224", 129130);
+ dingbats.put("Wingdings_225", 129129);
+ dingbats.put("Wingdings_226", 129131);
+ dingbats.put("Wingdings_227", 129132);
+ dingbats.put("Wingdings_228", 129133);
+ dingbats.put("Wingdings_229", 129135);
+ dingbats.put("Wingdings_230", 129134);
+ dingbats.put("Wingdings_231", 129144);
+ dingbats.put("Wingdings_232", 129146);
+ dingbats.put("Wingdings_233", 129145);
+ dingbats.put("Wingdings_234", 129147);
+ dingbats.put("Wingdings_235", 129148);
+ dingbats.put("Wingdings_236", 129149);
+ dingbats.put("Wingdings_237", 129151);
+ dingbats.put("Wingdings_238", 129150);
+ dingbats.put("Wingdings_239", 8678);
+ dingbats.put("Wingdings_240", 8680);
+ dingbats.put("Wingdings_241", 8679);
+ dingbats.put("Wingdings_242", 8681);
+ dingbats.put("Wingdings_243", 11012);
+ dingbats.put("Wingdings_244", 8691);
+ dingbats.put("Wingdings_245", 11009);
+ dingbats.put("Wingdings_246", 11008);
+ dingbats.put("Wingdings_247", 11011);
+ dingbats.put("Wingdings_248", 11010);
+ dingbats.put("Wingdings_249", 129196);
+ dingbats.put("Wingdings_250", 129197);
+ dingbats.put("Wingdings_251", 128502);
+ dingbats.put("Wingdings_252", 10003);
+ dingbats.put("Wingdings_253", 128503);
+ dingbats.put("Wingdings_254", 128505);
+ dingbats.put("Wingdings 2_32", 32);
+ dingbats.put("Wingdings 2_33", 128394);
+ dingbats.put("Wingdings 2_34", 128395);
+ dingbats.put("Wingdings 2_35", 128396);
+ dingbats.put("Wingdings 2_36", 128397);
+ dingbats.put("Wingdings 2_37", 9988);
+ dingbats.put("Wingdings 2_38", 9984);
+ dingbats.put("Wingdings 2_39", 128382);
+ dingbats.put("Wingdings 2_40", 128381);
+ dingbats.put("Wingdings 2_41", 128453);
+ dingbats.put("Wingdings 2_42", 128454);
+ dingbats.put("Wingdings 2_43", 128455);
+ dingbats.put("Wingdings 2_44", 128456);
+ dingbats.put("Wingdings 2_45", 128457);
+ dingbats.put("Wingdings 2_46", 128458);
+ dingbats.put("Wingdings 2_47", 128459);
+ dingbats.put("Wingdings 2_48", 128460);
+ dingbats.put("Wingdings 2_49", 128461);
+ dingbats.put("Wingdings 2_50", 128203);
+ dingbats.put("Wingdings 2_51", 128465);
+ dingbats.put("Wingdings 2_52", 128468);
+ dingbats.put("Wingdings 2_53", 128437);
+ dingbats.put("Wingdings 2_54", 128438);
+ dingbats.put("Wingdings 2_55", 128439);
+ dingbats.put("Wingdings 2_56", 128440);
+ dingbats.put("Wingdings 2_57", 128429);
+ dingbats.put("Wingdings 2_58", 128431);
+ dingbats.put("Wingdings 2_59", 128433);
+ dingbats.put("Wingdings 2_60", 128402);
+ dingbats.put("Wingdings 2_61", 128403);
+ dingbats.put("Wingdings 2_62", 128408);
+ dingbats.put("Wingdings 2_63", 128409);
+ dingbats.put("Wingdings 2_64", 128410);
+ dingbats.put("Wingdings 2_65", 128411);
+ dingbats.put("Wingdings 2_66", 128072);
+ dingbats.put("Wingdings 2_67", 128073);
+ dingbats.put("Wingdings 2_68", 128412);
+ dingbats.put("Wingdings 2_69", 128413);
+ dingbats.put("Wingdings 2_70", 128414);
+ dingbats.put("Wingdings 2_71", 128415);
+ dingbats.put("Wingdings 2_72", 128416);
+ dingbats.put("Wingdings 2_73", 128417);
+ dingbats.put("Wingdings 2_74", 128070);
+ dingbats.put("Wingdings 2_75", 128071);
+ dingbats.put("Wingdings 2_76", 128418);
+ dingbats.put("Wingdings 2_77", 128419);
+ dingbats.put("Wingdings 2_78", 128401);
+ dingbats.put("Wingdings 2_79", 128500);
+ dingbats.put("Wingdings 2_80", 128504);
+ dingbats.put("Wingdings 2_81", 128501);
+ dingbats.put("Wingdings 2_82", 9745);
+ dingbats.put("Wingdings 2_83", 11197);
+ dingbats.put("Wingdings 2_84", 9746);
+ dingbats.put("Wingdings 2_85", 11198);
+ dingbats.put("Wingdings 2_86", 11199);
+ dingbats.put("Wingdings 2_87", 128711);
+ dingbats.put("Wingdings 2_88", 10680);
+ dingbats.put("Wingdings 2_89", 128625);
+ dingbats.put("Wingdings 2_90", 128628);
+ dingbats.put("Wingdings 2_91", 128626);
+ dingbats.put("Wingdings 2_92", 128627);
+ dingbats.put("Wingdings 2_93", 8253);
+ dingbats.put("Wingdings 2_94", 128633);
+ dingbats.put("Wingdings 2_95", 128634);
+ dingbats.put("Wingdings 2_96", 128635);
+ dingbats.put("Wingdings 2_97", 128614);
+ dingbats.put("Wingdings 2_98", 128612);
+ dingbats.put("Wingdings 2_99", 128613);
+ dingbats.put("Wingdings 2_100", 128615);
+ dingbats.put("Wingdings 2_101", 128602);
+ dingbats.put("Wingdings 2_102", 128600);
+ dingbats.put("Wingdings 2_103", 128601);
+ dingbats.put("Wingdings 2_104", 128603);
+ dingbats.put("Wingdings 2_105", 9450);
+ dingbats.put("Wingdings 2_106", 9312);
+ dingbats.put("Wingdings 2_107", 9313);
+ dingbats.put("Wingdings 2_108", 9314);
+ dingbats.put("Wingdings 2_109", 9315);
+ dingbats.put("Wingdings 2_110", 9316);
+ dingbats.put("Wingdings 2_111", 9317);
+ dingbats.put("Wingdings 2_112", 9318);
+ dingbats.put("Wingdings 2_113", 9319);
+ dingbats.put("Wingdings 2_114", 9320);
+ dingbats.put("Wingdings 2_115", 9321);
+ dingbats.put("Wingdings 2_116", 9471);
+ dingbats.put("Wingdings 2_117", 10102);
+ dingbats.put("Wingdings 2_118", 10103);
+ dingbats.put("Wingdings 2_119", 10104);
+ dingbats.put("Wingdings 2_120", 10105);
+ dingbats.put("Wingdings 2_121", 10106);
+ dingbats.put("Wingdings 2_122", 10107);
+ dingbats.put("Wingdings 2_123", 10108);
+ dingbats.put("Wingdings 2_124", 10109);
+ dingbats.put("Wingdings 2_125", 10110);
+ dingbats.put("Wingdings 2_126", 10111);
+ dingbats.put("Wingdings 2_128", 9737);
+ dingbats.put("Wingdings 2_129", 127765);
+ dingbats.put("Wingdings 2_130", 9789);
+ dingbats.put("Wingdings 2_131", 9790);
+ dingbats.put("Wingdings 2_132", 11839);
+ dingbats.put("Wingdings 2_133", 10013);
+ dingbats.put("Wingdings 2_134", 128327);
+ dingbats.put("Wingdings 2_135", 128348);
+ dingbats.put("Wingdings 2_136", 128349);
+ dingbats.put("Wingdings 2_137", 128350);
+ dingbats.put("Wingdings 2_138", 128351);
+ dingbats.put("Wingdings 2_139", 128352);
+ dingbats.put("Wingdings 2_140", 128353);
+ dingbats.put("Wingdings 2_141", 128354);
+ dingbats.put("Wingdings 2_142", 128355);
+ dingbats.put("Wingdings 2_143", 128356);
+ dingbats.put("Wingdings 2_144", 128357);
+ dingbats.put("Wingdings 2_145", 128358);
+ dingbats.put("Wingdings 2_146", 128359);
+ dingbats.put("Wingdings 2_147", 128616);
+ dingbats.put("Wingdings 2_148", 128617);
+ dingbats.put("Wingdings 2_149", 8901);
+ dingbats.put("Wingdings 2_150", 128900);
+ dingbats.put("Wingdings 2_151", 10625);
+ dingbats.put("Wingdings 2_152", 9679);
+ dingbats.put("Wingdings 2_153", 9675);
+ dingbats.put("Wingdings 2_154", 128901);
+ dingbats.put("Wingdings 2_155", 128903);
+ dingbats.put("Wingdings 2_156", 128905);
+ dingbats.put("Wingdings 2_157", 8857);
+ dingbats.put("Wingdings 2_158", 10687);
+ dingbats.put("Wingdings 2_159", 128908);
+ dingbats.put("Wingdings 2_160", 128909);
+ dingbats.put("Wingdings 2_161", 9726);
+ dingbats.put("Wingdings 2_162", 9632);
+ dingbats.put("Wingdings 2_163", 9633);
+ dingbats.put("Wingdings 2_164", 128913);
+ dingbats.put("Wingdings 2_165", 128914);
+ dingbats.put("Wingdings 2_166", 128915);
+ dingbats.put("Wingdings 2_167", 128916);
+ dingbats.put("Wingdings 2_168", 9635);
+ dingbats.put("Wingdings 2_169", 128917);
+ dingbats.put("Wingdings 2_170", 128918);
+ dingbats.put("Wingdings 2_171", 128919);
+ dingbats.put("Wingdings 2_172", 128920);
+ dingbats.put("Wingdings 2_173", 11049);
+ dingbats.put("Wingdings 2_174", 11045);
+ dingbats.put("Wingdings 2_175", 9671);
+ dingbats.put("Wingdings 2_176", 128922);
+ dingbats.put("Wingdings 2_177", 9672);
+ dingbats.put("Wingdings 2_178", 128923);
+ dingbats.put("Wingdings 2_179", 128924);
+ dingbats.put("Wingdings 2_180", 128925);
+ dingbats.put("Wingdings 2_181", 128926);
+ dingbats.put("Wingdings 2_182", 11050);
+ dingbats.put("Wingdings 2_183", 11047);
+ dingbats.put("Wingdings 2_184", 9674);
+ dingbats.put("Wingdings 2_185", 128928);
+ dingbats.put("Wingdings 2_186", 9686);
+ dingbats.put("Wingdings 2_187", 9687);
+ dingbats.put("Wingdings 2_188", 11210);
+ dingbats.put("Wingdings 2_189", 11211);
+ dingbats.put("Wingdings 2_190", 11200);
+ dingbats.put("Wingdings 2_191", 11201);
+ dingbats.put("Wingdings 2_192", 11039);
+ dingbats.put("Wingdings 2_193", 11202);
+ dingbats.put("Wingdings 2_194", 11043);
+ dingbats.put("Wingdings 2_195", 11042);
+ dingbats.put("Wingdings 2_196", 11203);
+ dingbats.put("Wingdings 2_197", 11204);
+ dingbats.put("Wingdings 2_198", 128929);
+ dingbats.put("Wingdings 2_199", 128930);
+ dingbats.put("Wingdings 2_200", 128931);
+ dingbats.put("Wingdings 2_201", 128932);
+ dingbats.put("Wingdings 2_202", 128933);
+ dingbats.put("Wingdings 2_203", 128934);
+ dingbats.put("Wingdings 2_204", 128935);
+ dingbats.put("Wingdings 2_205", 128936);
+ dingbats.put("Wingdings 2_206", 128937);
+ dingbats.put("Wingdings 2_207", 128938);
+ dingbats.put("Wingdings 2_208", 128939);
+ dingbats.put("Wingdings 2_209", 128940);
+ dingbats.put("Wingdings 2_210", 128941);
+ dingbats.put("Wingdings 2_211", 128942);
+ dingbats.put("Wingdings 2_212", 128943);
+ dingbats.put("Wingdings 2_213", 128944);
+ dingbats.put("Wingdings 2_214", 128945);
+ dingbats.put("Wingdings 2_215", 128946);
+ dingbats.put("Wingdings 2_216", 128947);
+ dingbats.put("Wingdings 2_217", 128948);
+ dingbats.put("Wingdings 2_218", 128949);
+ dingbats.put("Wingdings 2_219", 128950);
+ dingbats.put("Wingdings 2_220", 128951);
+ dingbats.put("Wingdings 2_221", 128952);
+ dingbats.put("Wingdings 2_222", 128953);
+ dingbats.put("Wingdings 2_223", 128954);
+ dingbats.put("Wingdings 2_224", 128955);
+ dingbats.put("Wingdings 2_225", 128956);
+ dingbats.put("Wingdings 2_226", 128957);
+ dingbats.put("Wingdings 2_227", 128958);
+ dingbats.put("Wingdings 2_228", 128959);
+ dingbats.put("Wingdings 2_229", 128960);
+ dingbats.put("Wingdings 2_230", 128962);
+ dingbats.put("Wingdings 2_231", 128964);
+ dingbats.put("Wingdings 2_232", 128966);
+ dingbats.put("Wingdings 2_233", 128969);
+ dingbats.put("Wingdings 2_234", 128970);
+ dingbats.put("Wingdings 2_235", 10038);
+ dingbats.put("Wingdings 2_236", 128972);
+ dingbats.put("Wingdings 2_237", 128974);
+ dingbats.put("Wingdings 2_238", 128976);
+ dingbats.put("Wingdings 2_239", 128978);
+ dingbats.put("Wingdings 2_240", 10041);
+ dingbats.put("Wingdings 2_241", 128963);
+ dingbats.put("Wingdings 2_242", 128967);
+ dingbats.put("Wingdings 2_243", 10031);
+ dingbats.put("Wingdings 2_244", 128973);
+ dingbats.put("Wingdings 2_245", 128980);
+ dingbats.put("Wingdings 2_246", 11212);
+ dingbats.put("Wingdings 2_247", 11213);
+ dingbats.put("Wingdings 2_248", 8251);
+ dingbats.put("Wingdings 2_249", 8258);
+ dingbats.put("Wingdings 3_32", 32);
+ dingbats.put("Wingdings 3_33", 11104);
+ dingbats.put("Wingdings 3_34", 11106);
+ dingbats.put("Wingdings 3_35", 11105);
+ dingbats.put("Wingdings 3_36", 11107);
+ dingbats.put("Wingdings 3_37", 11110);
+ dingbats.put("Wingdings 3_38", 11111);
+ dingbats.put("Wingdings 3_39", 11113);
+ dingbats.put("Wingdings 3_40", 11112);
+ dingbats.put("Wingdings 3_41", 11120);
+ dingbats.put("Wingdings 3_42", 11122);
+ dingbats.put("Wingdings 3_43", 11121);
+ dingbats.put("Wingdings 3_44", 11123);
+ dingbats.put("Wingdings 3_45", 11126);
+ dingbats.put("Wingdings 3_46", 11128);
+ dingbats.put("Wingdings 3_47", 11131);
+ dingbats.put("Wingdings 3_48", 11133);
+ dingbats.put("Wingdings 3_49", 11108);
+ dingbats.put("Wingdings 3_50", 11109);
+ dingbats.put("Wingdings 3_51", 11114);
+ dingbats.put("Wingdings 3_52", 11116);
+ dingbats.put("Wingdings 3_53", 11115);
+ dingbats.put("Wingdings 3_54", 11117);
+ dingbats.put("Wingdings 3_55", 11085);
+ dingbats.put("Wingdings 3_56", 11168);
+ dingbats.put("Wingdings 3_57", 11169);
+ dingbats.put("Wingdings 3_58", 11170);
+ dingbats.put("Wingdings 3_59", 11171);
+ dingbats.put("Wingdings 3_60", 11172);
+ dingbats.put("Wingdings 3_61", 11173);
+ dingbats.put("Wingdings 3_62", 11174);
+ dingbats.put("Wingdings 3_63", 11175);
+ dingbats.put("Wingdings 3_64", 11152);
+ dingbats.put("Wingdings 3_65", 11153);
+ dingbats.put("Wingdings 3_66", 11154);
+ dingbats.put("Wingdings 3_67", 11155);
+ dingbats.put("Wingdings 3_68", 11136);
+ dingbats.put("Wingdings 3_69", 11139);
+ dingbats.put("Wingdings 3_70", 11134);
+ dingbats.put("Wingdings 3_71", 11135);
+ dingbats.put("Wingdings 3_72", 11140);
+ dingbats.put("Wingdings 3_73", 11142);
+ dingbats.put("Wingdings 3_74", 11141);
+ dingbats.put("Wingdings 3_75", 11143);
+ dingbats.put("Wingdings 3_76", 11151);
+ dingbats.put("Wingdings 3_77", 11149);
+ dingbats.put("Wingdings 3_78", 11150);
+ dingbats.put("Wingdings 3_79", 11148);
+ dingbats.put("Wingdings 3_80", 11118);
+ dingbats.put("Wingdings 3_81", 11119);
+ dingbats.put("Wingdings 3_82", 9099);
+ dingbats.put("Wingdings 3_83", 8996);
+ dingbats.put("Wingdings 3_84", 8963);
+ dingbats.put("Wingdings 3_85", 8997);
+ dingbats.put("Wingdings 3_86", 9251);
+ dingbats.put("Wingdings 3_87", 9085);
+ dingbats.put("Wingdings 3_88", 8682);
+ dingbats.put("Wingdings 3_89", 11192);
+ dingbats.put("Wingdings 3_90", 129184);
+ dingbats.put("Wingdings 3_91", 129185);
+ dingbats.put("Wingdings 3_92", 129186);
+ dingbats.put("Wingdings 3_93", 129187);
+ dingbats.put("Wingdings 3_94", 129188);
+ dingbats.put("Wingdings 3_95", 129189);
+ dingbats.put("Wingdings 3_96", 129190);
+ dingbats.put("Wingdings 3_97", 129191);
+ dingbats.put("Wingdings 3_98", 129192);
+ dingbats.put("Wingdings 3_99", 129193);
+ dingbats.put("Wingdings 3_100", 129194);
+ dingbats.put("Wingdings 3_101", 129195);
+ dingbats.put("Wingdings 3_102", 129104);
+ dingbats.put("Wingdings 3_103", 129106);
+ dingbats.put("Wingdings 3_104", 129105);
+ dingbats.put("Wingdings 3_105", 129107);
+ dingbats.put("Wingdings 3_106", 129108);
+ dingbats.put("Wingdings 3_107", 129109);
+ dingbats.put("Wingdings 3_108", 129111);
+ dingbats.put("Wingdings 3_109", 129110);
+ dingbats.put("Wingdings 3_110", 129112);
+ dingbats.put("Wingdings 3_111", 129113);
+ dingbats.put("Wingdings 3_112", 9650);
+ dingbats.put("Wingdings 3_113", 9660);
+ dingbats.put("Wingdings 3_114", 9651);
+ dingbats.put("Wingdings 3_115", 9661);
+ dingbats.put("Wingdings 3_116", 9664);
+ dingbats.put("Wingdings 3_117", 9654);
+ dingbats.put("Wingdings 3_118", 9665);
+ dingbats.put("Wingdings 3_119", 9655);
+ dingbats.put("Wingdings 3_120", 9699);
+ dingbats.put("Wingdings 3_121", 9698);
+ dingbats.put("Wingdings 3_122", 9700);
+ dingbats.put("Wingdings 3_123", 9701);
+ dingbats.put("Wingdings 3_124", 128896);
+ dingbats.put("Wingdings 3_125", 128898);
+ dingbats.put("Wingdings 3_126", 128897);
+ dingbats.put("Wingdings 3_128", 128899);
+ dingbats.put("Wingdings 3_129", 11205);
+ dingbats.put("Wingdings 3_130", 11206);
+ dingbats.put("Wingdings 3_131", 11207);
+ dingbats.put("Wingdings 3_132", 11208);
+ dingbats.put("Wingdings 3_133", 11164);
+ dingbats.put("Wingdings 3_134", 11166);
+ dingbats.put("Wingdings 3_135", 11165);
+ dingbats.put("Wingdings 3_136", 11167);
+ dingbats.put("Wingdings 3_137", 129040);
+ dingbats.put("Wingdings 3_138", 129042);
+ dingbats.put("Wingdings 3_139", 129041);
+ dingbats.put("Wingdings 3_140", 129043);
+ dingbats.put("Wingdings 3_141", 129044);
+ dingbats.put("Wingdings 3_142", 129046);
+ dingbats.put("Wingdings 3_143", 129045);
+ dingbats.put("Wingdings 3_144", 129047);
+ dingbats.put("Wingdings 3_145", 129048);
+ dingbats.put("Wingdings 3_146", 129050);
+ dingbats.put("Wingdings 3_147", 129049);
+ dingbats.put("Wingdings 3_148", 129051);
+ dingbats.put("Wingdings 3_149", 129052);
+ dingbats.put("Wingdings 3_150", 129054);
+ dingbats.put("Wingdings 3_151", 129053);
+ dingbats.put("Wingdings 3_152", 129055);
+ dingbats.put("Wingdings 3_153", 129024);
+ dingbats.put("Wingdings 3_154", 129026);
+ dingbats.put("Wingdings 3_155", 129025);
+ dingbats.put("Wingdings 3_156", 129027);
+ dingbats.put("Wingdings 3_157", 129028);
+ dingbats.put("Wingdings 3_158", 129030);
+ dingbats.put("Wingdings 3_159", 129029);
+ dingbats.put("Wingdings 3_160", 129031);
+ dingbats.put("Wingdings 3_161", 129032);
+ dingbats.put("Wingdings 3_162", 129034);
+ dingbats.put("Wingdings 3_163", 129033);
+ dingbats.put("Wingdings 3_164", 129035);
+ dingbats.put("Wingdings 3_165", 129056);
+ dingbats.put("Wingdings 3_166", 129058);
+ dingbats.put("Wingdings 3_167", 129060);
+ dingbats.put("Wingdings 3_168", 129062);
+ dingbats.put("Wingdings 3_169", 129064);
+ dingbats.put("Wingdings 3_170", 129066);
+ dingbats.put("Wingdings 3_171", 129068);
+ dingbats.put("Wingdings 3_172", 129180);
+ dingbats.put("Wingdings 3_173", 129181);
+ dingbats.put("Wingdings 3_174", 129182);
+ dingbats.put("Wingdings 3_175", 129183);
+ dingbats.put("Wingdings 3_176", 129070);
+ dingbats.put("Wingdings 3_177", 129072);
+ dingbats.put("Wingdings 3_178", 129074);
+ dingbats.put("Wingdings 3_179", 129076);
+ dingbats.put("Wingdings 3_180", 129078);
+ dingbats.put("Wingdings 3_181", 129080);
+ dingbats.put("Wingdings 3_182", 129082);
+ dingbats.put("Wingdings 3_183", 129081);
+ dingbats.put("Wingdings 3_184", 129083);
+ dingbats.put("Wingdings 3_185", 129176);
+ dingbats.put("Wingdings 3_186", 129178);
+ dingbats.put("Wingdings 3_187", 129177);
+ dingbats.put("Wingdings 3_188", 129179);
+ dingbats.put("Wingdings 3_189", 129084);
+ dingbats.put("Wingdings 3_190", 129086);
+ dingbats.put("Wingdings 3_191", 129085);
+ dingbats.put("Wingdings 3_192", 129087);
+ dingbats.put("Wingdings 3_193", 129088);
+ dingbats.put("Wingdings 3_194", 129090);
+ dingbats.put("Wingdings 3_195", 129089);
+ dingbats.put("Wingdings 3_196", 129091);
+ dingbats.put("Wingdings 3_197", 129092);
+ dingbats.put("Wingdings 3_198", 129094);
+ dingbats.put("Wingdings 3_199", 129093);
+ dingbats.put("Wingdings 3_200", 129095);
+ dingbats.put("Wingdings 3_201", 11176);
+ dingbats.put("Wingdings 3_202", 11177);
+ dingbats.put("Wingdings 3_203", 11178);
+ dingbats.put("Wingdings 3_204", 11179);
+ dingbats.put("Wingdings 3_205", 11180);
+ dingbats.put("Wingdings 3_206", 11181);
+ dingbats.put("Wingdings 3_207", 11182);
+ dingbats.put("Wingdings 3_208", 11183);
+ dingbats.put("Wingdings 3_209", 129120);
+ dingbats.put("Wingdings 3_210", 129122);
+ dingbats.put("Wingdings 3_211", 129121);
+ dingbats.put("Wingdings 3_212", 129123);
+ dingbats.put("Wingdings 3_213", 129124);
+ dingbats.put("Wingdings 3_214", 129125);
+ dingbats.put("Wingdings 3_215", 129127);
+ dingbats.put("Wingdings 3_216", 129126);
+ dingbats.put("Wingdings 3_217", 129136);
+ dingbats.put("Wingdings 3_218", 129138);
+ dingbats.put("Wingdings 3_219", 129137);
+ dingbats.put("Wingdings 3_220", 129139);
+ dingbats.put("Wingdings 3_221", 129140);
+ dingbats.put("Wingdings 3_222", 129141);
+ dingbats.put("Wingdings 3_223", 129143);
+ dingbats.put("Wingdings 3_224", 129142);
+ dingbats.put("Wingdings 3_225", 129152);
+ dingbats.put("Wingdings 3_226", 129154);
+ dingbats.put("Wingdings 3_227", 129153);
+ dingbats.put("Wingdings 3_228", 129155);
+ dingbats.put("Wingdings 3_229", 129156);
+ dingbats.put("Wingdings 3_230", 129157);
+ dingbats.put("Wingdings 3_231", 129159);
+ dingbats.put("Wingdings 3_232", 129158);
+ dingbats.put("Wingdings 3_233", 129168);
+ dingbats.put("Wingdings 3_234", 129170);
+ dingbats.put("Wingdings 3_235", 129169);
+ dingbats.put("Wingdings 3_236", 129171);
+ dingbats.put("Wingdings 3_237", 129172);
+ dingbats.put("Wingdings 3_238", 129174);
+ dingbats.put("Wingdings 3_239", 129173);
+ dingbats.put("Wingdings 3_240", 129175);
+ }
+}
diff --git a/src/main/java/org/zwobble/mammoth/internal/docx/StatefulBodyXmlReader.java b/src/main/java/org/zwobble/mammoth/internal/docx/StatefulBodyXmlReader.java
index 0cf141e..366cf16 100644
--- a/src/main/java/org/zwobble/mammoth/internal/docx/StatefulBodyXmlReader.java
+++ b/src/main/java/org/zwobble/mammoth/internal/docx/StatefulBodyXmlReader.java
@@ -15,8 +15,7 @@ import java.util.function.Function;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
-import static org.zwobble.mammoth.internal.docx.ReadResult.EMPTY_SUCCESS;
-import static org.zwobble.mammoth.internal.docx.ReadResult.success;
+import static org.zwobble.mammoth.internal.docx.ReadResult.*;
import static org.zwobble.mammoth.internal.docx.Uris.uriToZipEntryName;
import static org.zwobble.mammoth.internal.util.Iterables.lazyFilter;
import static org.zwobble.mammoth.internal.util.Iterables.tryGetLast;
@@ -93,6 +92,8 @@ class StatefulBodyXmlReader {
return success(new Text("\u2011"));
case "w:softHyphen":
return success(new Text("\u00ad"));
+ case "w:sym":
+ return readSymbol(element);
case "w:br":
return readBreak(element);
@@ -359,6 +360,35 @@ class StatefulBodyXmlReader {
);
}
+ private ReadResult readSymbol(XmlElement element) {
+ Optional<String> font = element.getAttributeOrNone("w:font");
+ Optional<String> charValue = element.getAttributeOrNone("w:char");
+ if (font.isPresent() && charValue.isPresent()) {
+ Optional<Integer> dingbat = Dingbats.findDingbat(font.get(), Integer.parseInt(charValue.get(), 16));
+
+ if (!dingbat.isPresent() && Pattern.matches("F0..", charValue.get())) {
+ dingbat = Dingbats.findDingbat(font.get(), Integer.parseInt(charValue.get().substring(2), 16));
+ }
+
+ if (dingbat.isPresent()) {
+ return ReadResult.success(new Text(codepointToString(dingbat.get())));
+ }
+ }
+ return emptyWithWarning(
+ "A w:sym element with an unsupported character was ignored: char " +
+ charValue.orElse("null") + " in font " + font.orElse("null")
+ );
+ }
+
+ public String codepointToString(int codePoint) {
+ if (Character.isBmpCodePoint(codePoint)) {
+ return String.valueOf((char) codePoint);
+ } else {
+ return String.valueOf(Character.highSurrogate(codePoint)) +
+ Character.lowSurrogate(codePoint);
+ }
+ }
+
private ReadResult readBreak(XmlElement element) {
String breakType = element.getAttributeOrNone("w:type").orElse("textWrapping");
switch (breakType) {