Подстрочный строки и добавить в текстовые поля / прямоугольник в Visio

Я надеюсь, что вы можете мне помочь. Я работаю над инструментом, который создает технические чертежи из данных Excel.

некоторые из описательных блоков на этих чертежах имеют под- или надписи.

я обнаружил, что эта статья связана со словом: Как добавить подстрочные знаки в абзацы с помощью Word Automation?

но есть текст, отредактированный непосредственно, я не уверен, возможно ли это, когда текст находится в прямоугольнике / текстовом поле, потому что это другой объект, а не страница.

вот кодексанипет:

"X" + **unsaturated + "unsat** ≤ " + DataServer.GETPROJECTDATA["Motor"]["Unsaturated commutation reactance " + unsaturated].Last.Value + " %";

например, должна быть подписана жирная часть, есть ли возможность реализовать это?

большое спасибо

Mirko


статус: метод отбрасывания:

public void drawer(ShapeItem sI, Visio.Master master)
    {
        //drops the shape at position x,y.
        Visio.Shape shape = vPage.Drop(master, (sI.CoordX / 100000), (sI.CoordY / 100000));
        if (master.Name.Equals("Rectangle") || master.Name.Equals("Rechteck"))
        {
            shape.Text = sI.ShapeText;
            shape = StringFormater.formatText(shape, sI.ShapeName);

            shape.LineStyle = "None";
            shape.Style = "None";
        }
    }

и StringFormater.formatText:

protected static Visio.Shape formatText(Microsoft.Office.Interop.Visio.Shape shape, string p)
    {
        String[] seperateWords = shape.Text.Split(' ');
        //MessageBox.Show(string.Join(",",seperateWords));
        Visio.Characters vChars = shape.Characters;
        int start = 0;
        int end = 0;
        if (p.Equals("head"))
        {
            foreach (String s in seperateWords)
            {
                if (s.Equals("Skmin"))
                {
                    vChars.Begin = start + 1;
                    end = start + s.Length;
                    vChars.End = end - 1;
                    vChars.set_CharProps(4, 2);
                }
                if (s.Equals("Skmax"))
                {
                    vChars.Begin = start + 1;
                    end = start + s.Length;
                    vChars.End = end - 1;
                    vChars.set_CharProps(4, 2);
                }
                start += s.Length;
            }
            MessageBox.Show(shape.Text);
        }

        return vChars.Shape;
    }

0 ответов

Другие вопросы по тегам