Ejemplo n.º 1
0
  protected static StyledTextParagraph createParagraphFromParent(StyledTextParagraph parent) {
    StyledTextParagraph p = new StyledTextParagraph();
    p.setValign(parent.getValign());
    p.setBold(parent.isBold());
    p.setFont(parent.getFont());
    p.setItalic(parent.isItalic());
    p.setUnderline(parent.isUnderline());
    p.setOverline(parent.isOverline());
    p.setWidth(parent.getWidth());
    p.setFontHeight(parent.getFontHeight());
    p.setInsertPoint(parent.getInsertPoint());
    p.setColor(parent.getColor());

    return p;
  }
Ejemplo n.º 2
0
  public static void parseStyledTextParagraphSettings(
      char key, String value, StyledTextParagraph para) {
    if (value.length() > 0) {

      switch (key) {
        case 'A':
          para.setValign(Integer.parseInt(value));

          break;

        case 'H':
          if (value.endsWith("x")) {
            para.setFontHeight(
                para.getFontHeight() * Double.parseDouble(value.substring(0, value.length() - 1)));
          } else {
            para.setFontHeight(Double.parseDouble(value));
          }

          break;

        case 'Q':
          para.setObliquiAngle(Double.parseDouble(value));

          break;

        case 'W':
          if (value.endsWith("x")) {
            double widthFactor = Double.parseDouble(value.substring(0, value.length() - 1));
            para.setWidth(para.getWidth() * widthFactor);
          } else {
            para.setWidth(Double.parseDouble(value));
          }

          break;

        case 'T':
          para.setCharacterspace(Double.parseDouble(value));

          break;

        case 'f':
          parseFontSettings(value.trim(), para);

          break;

        case 'F':
          para.setFontFile(value.trim());

          break;

        case 'S':

          // TODO handle
          break;

        case 'C':
          Integer colorCode = Integer.valueOf(value);
          String rgbString = Color.getRGBString(colorCode);
          para.setColor(rgbString);

          break;
      }
    }
  }
Ejemplo n.º 3
0
  public static TextDocument parseText(Text text) {
    TextDocument doc = new TextDocument();

    // boolean asciicontrol = false;
    StringBuffer buf = new StringBuffer();

    StyledTextParagraph p = new StyledTextParagraph();
    p.setFontHeight(text.getHeight());
    p.setInsertPoint(text.getAlignmentPoint());

    switch (text.getValign()) {
      case Text.VALIGN_BASELINE:
        if (text.getAlign() == Text.ALIGN_MIDDLE) {
          // described in the DXF specs
          p.setValign(StyledTextParagraph.VERTICAL_ALIGNMENT_CENTER);
        } else {
          p.setValign(StyledTextParagraph.VERTICAL_ALIGNMENT_BASELINE);
        }

        break;

      case Text.VALIGN_BOTTOM:
        p.setValign(StyledTextParagraph.VERTICAL_ALIGNMENT_BASELINE);

        break;

      case Text.VALIGN_CENTER:
        p.setValign(StyledTextParagraph.VERTICAL_ALIGNMENT_CENTER);

        break;

      case Text.VALIGN_TOP:
        p.setValign(StyledTextParagraph.VERTICAL_ALIGNMENT_TOP);

        break;
    }

    if ((text.getAlign() == 3) || (text.getAlign() == 5)) {
      double length = Utils.distance(text.getInsertPoint(), text.getAlignmentPoint());
      p.setWidth(length);
    }

    // parse the symbols
    String str = parseSymbols(text.getText());

    // parse the style
    int marker = 0;
    char c;

    // initialize
    boolean overline = false;
    boolean underline = false;

    for (int i = 0; i < str.length(); i++) {
      c = str.charAt(i);

      if (c == '%') {
        marker++;
      } else {
        if (marker == 0) {
          buf.append(c);
        } else if (marker == 2) {
          switch (c) {
            case 'o':
              p.setText(buf.toString());
              p.setUnderline(underline);
              p.setOverline(overline);
              doc.addStyledParagraph(p);
              p = createParagraphFromParent(p);
              buf.delete(0, buf.length());
              overline = !overline;
              p.setOverline(overline);

              break;

            case 'u':
              p.setText(buf.toString());
              p.setUnderline(underline);
              p.setOverline(overline);
              doc.addStyledParagraph(p);
              p = createParagraphFromParent(p);

              buf.delete(0, buf.length());
              underline = !underline;

              p.setUnderline(underline);

              break;
          }

          marker = 0;
        }
      }
    }

    if ((marker == 1) || (marker == 3)) {
      buf.append('%');
    }

    // something left over?
    if (buf.length() > 0) {
      p.setText(buf.toString());
      doc.addStyledParagraph(p);
    }

    return doc;
  }
Ejemplo n.º 4
0
 private static StyledTextParagraph createParagraphFromMText(MText text) {
   StyledTextParagraph p = new StyledTextParagraph();
   p.setFontHeight(text.getHeight());
   p.setInsertPoint(text.getInsertPoint());
   return p;
 }