Как установить форму, шрифт и передний цвет в Visio

Мне нужно добавить прямоугольник в мой файл Visio и установить шрифт и цвет текста, как я могу это сделать?

visio.Application app = new visio.Application();
visio.Document doc;
doc = app.Documents.Open(processPath);

visio.Page page = doc.Pages[1];
CreateVisio vis = new CreateVisio();
visio.Shape edit = page.DrawRectangle(3.2d, 6.9d, 4.9d, 7.9d);

2 ответа

Решение

Как создать новый документ VISIO

Microsoft.Office.Interop.Visio.Application application = 
        new Microsoft.Office.Interop.Visio.Application();  
application.Visible = false; 
Microsoft.Office.Interop.Visio.Document doc = application.Documents.Add(templatePath);
Microsoft.Office.Interop.Visio.Page page = application.Documents[1].Pages[1];

Как узнать ширину и высоту листа, над которым вы работаете

double xPosition = page.PageSheet.get_CellsU("PageWidth").ResultIU;
double yPosition = page.PageSheet.get_CellsU("PageHeight").ResultIU; 

Мы используем эту информацию о ширине и высоте листа, чтобы знать, где разместить ящики. Мы помещаем корневые блоки в середину листа, разделив ширину листа на количество корней. Также мы вычитаем из yPosition номер уровня, чтобы поля с возрастающим номером уровня занимали более низкую позицию на графике.

Как создать фигуру и разместить ее на графике (бросьте ее)

//creating the type of shape in the organizational chart it could be: "Position", 
//"Executive", "Manager",  "Assistant" and others according 
//to what you have in your stencil. 
Microsoft.Office.Interop.Visio.Master position = doc.Masters.get_ItemU("Position"); 
//placing the shape in the xPosition and yPosition coordinates
Microsoft.Office.Interop.Visio.Shape shape = page.Drop(position, xPosition, yPosition);  

Как установить свойства фигур

//set the text
shape.Text = box.Name;

//set hyperlink
if (!String.IsNullOrEmpty(box.HyperLink.Trim()))
{
     Hyperlink link = shape.Hyperlinks.Add();
     link.Address = box.HyperLink;
}

//set the shape width
shape.get_CellsSRC(
                (short)Microsoft.Office.Interop.Visio.VisSectionIndices.
                visSectionObject,
                (short)Microsoft.Office.Interop.Visio.VisRowIndices.
                visRowXFormIn,
                (short)Microsoft.Office.Interop.Visio.VisCellIndices.
                visXFormWidth).ResultIU = box.Width;

//set the shape height
shape.get_CellsSRC(
               (short)Microsoft.Office.Interop.Visio.VisSectionIndices.
               visSectionObject,
               (short)Microsoft.Office.Interop.Visio.VisRowIndices.
               visRowXFormIn,
               (short)Microsoft.Office.Interop.Visio.VisCellIndices.
               visXFormHeight).ResultIU = box.Height;

//set the shape fore color
shape.Characters.set_CharProps(
                (short)Microsoft.Office.Interop.Visio.
                    VisCellIndices.visCharacterColor,
                (short)Utilities.GetVisioColor(box.ForeColor));

//set the shape back color
shape.get_CellsSRC((short)VisSectionIndices.visSectionObject,
         (short)VisRowIndices.visRowFill, 
    (short)VisCellIndices.visFillForegnd).FormulaU = 
    "RGB(" + box.BackColor.R.ToString() + "," + box.BackColor.G.ToString() + "," 
    + box.BackColor.B.ToString() + ")"; 

Соединение фигур выполняется с помощью метода connectWithDynamicGlueAndConnector(). Этот метод принимает два параметра, родительскую форму и childShape, и создает соединитель между ними. Этот метод является точным в VISIO SDK.

Привет, я нашел этот ответ в этой ссылке

http://www.codeproject.com/Articles/109558/Creating-VISIO-Organigrams-using-C

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