Подстрочный строки и добавить в текстовые поля / прямоугольник в 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;
}