Example #1
0
 /**
  * Gets a special kind of Phrase that changes some characters into corresponding symbols.
  *
  * @param leading
  * @param string
  * @param font
  * @return a newly constructed Phrase
  */
 public static final Phrase getInstance(int leading, String string, Font font) {
   Phrase p = new Phrase(true);
   p.setLeading(leading);
   p.font = font;
   if (font.getFamily() != Font.SYMBOL
       && font.getFamily() != Font.ZAPFDINGBATS
       && font.getBaseFont() == null) {
     int index;
     while ((index = SpecialSymbol.index(string)) > -1) {
       if (index > 0) {
         String firstPart = string.substring(0, index);
         ((ArrayList) p).add(new Chunk(firstPart, font));
         string = string.substring(index);
       }
       Font symbol = new Font(Font.SYMBOL, font.getSize(), font.getStyle(), font.getColor());
       StringBuffer buf = new StringBuffer();
       buf.append(SpecialSymbol.getCorrespondingSymbol(string.charAt(0)));
       string = string.substring(1);
       while (SpecialSymbol.index(string) == 0) {
         buf.append(SpecialSymbol.getCorrespondingSymbol(string.charAt(0)));
         string = string.substring(1);
       }
       ((ArrayList) p).add(new Chunk(buf.toString(), symbol));
     }
   }
   if (string != null && string.length() != 0) {
     ((ArrayList) p).add(new Chunk(string, font));
   }
   return p;
 }
Example #2
0
 /**
  * Gets a chunk with a symbol character.
  *
  * @param c a character that has to be changed into a symbol
  * @param font Font if there is no SYMBOL character corresponding with c
  * @return a SYMBOL version of a character
  */
 public static Chunk get(char c, Font font) {
   char greek = SpecialSymbol.getCorrespondingSymbol(c);
   if (greek == ' ') {
     return new Chunk(String.valueOf(c), font);
   }
   Font symbol = new Font(FontFamily.SYMBOL, font.getSize(), font.getStyle(), font.getColor());
   String s = String.valueOf(greek);
   return new Chunk(s, symbol);
 }