void Set_into_Stamp(ksDocument2D doc, string text)
        {
            ksTextItemParam itemParam = (ksTextItemParam)_kompas.GetParamStruct((short)StructType2DEnum.ko_TextItemParam);

            if (itemParam != null)
            {
                itemParam.Init();

                ksTextItemFont itemFont = (ksTextItemFont)itemParam.GetItemFont();
                if (itemFont != null)
                {
                    itemFont.SetBitVectorValue(ldefin2d.NEW_LINE, true);
                    itemParam.s = text;
                    doc.ksTextLine(itemParam);
                }
            }
        }
Example #2
0
        public void Doc2D(int n_str, int n_str_dat, string text, string dat, int n_doc, bool ruk = false)
        {
            IKompasDocument doc   = appl.Documents.Open(path[n_doc], true, false);// Получаем интерфейс активного документа 2D в API7
            ksDocument2D    docD  = (ksDocument2D)kompas.ActiveDocument2D();
            ksStamp         stamp = (ksStamp)docD.GetStamp();

            Console.WriteLine("функция Doc2D ");


            stamp.ksOpenStamp();


            //_____________________________________________________________
            LayoutSheets _ls   = doc.LayoutSheets;
            LayoutSheet  LS    = _ls.ItemByNumber[1];
            IStamp       isamp = LS.Stamp;
            IText        qq    = isamp.Text[10];

            Console.WriteLine("Есть ли руководитель -------------  " + qq.Str);
            //_____________________________________________________________



            stamp.ksColumnNumber(n_str);
            ksTextItemParam itemParam = (ksTextItemParam)kompas.GetParamStruct((short)StructType2DEnum.ko_TextItemParam);

            if (itemParam != null)
            {
                itemParam.Init();

                ksTextItemFont itemFont = (ksTextItemFont)itemParam.GetItemFont();
                if (itemFont != null)
                {
                    itemFont.SetBitVectorValue(ldefin2d.NEW_LINE, true);
                    itemParam.s = text;
                    docD.ksTextLine(itemParam);
                }
            }

            stamp.ksColumnNumber(n_str_dat);

            if (itemParam != null)
            {
                itemParam.Init();

                ksTextItemFont itemFont = (ksTextItemFont)itemParam.GetItemFont();
                if (itemFont != null)
                {
                    itemFont.SetBitVectorValue(ldefin2d.NEW_LINE, true);
                    itemParam.s = dat;
                    docD.ksTextLine(itemParam);
                }
            }


            if (ruk == true)
            {
                stamp.ksColumnNumber(123);

                if (itemParam != null)
                {
                    itemParam.Init();

                    ksTextItemFont itemFont = (ksTextItemFont)itemParam.GetItemFont();
                    if (itemFont != null)
                    {
                        itemFont.SetBitVectorValue(ldefin2d.NEW_LINE, true);
                        itemParam.s = textBox2.Text;
                        docD.ksTextLine(itemParam);
                    }
                }


                stamp.ksColumnNumber(133);

                if (itemParam != null)
                {
                    itemParam.Init();

                    ksTextItemFont itemFont = (ksTextItemFont)itemParam.GetItemFont();
                    if (itemFont != null)
                    {
                        itemFont.SetBitVectorValue(ldefin2d.NEW_LINE, true);
                        itemParam.s = dat;
                        docD.ksTextLine(itemParam);
                    }
                }
            }

            stamp.ksCloseStamp();



            //doc.Close(0); //Закрыть документ
        }
Example #3
0
        // Создать текст
        private void DrawText()
        {
            ksParagraphParam par  = (ksParagraphParam)kompas.GetParamStruct((short)StructType2DEnum.ko_ParagraphParam);
            ksTextParam      par1 = (ksTextParam)kompas.GetParamStruct((short)StructType2DEnum.ko_TextParam);
            ksTextLineParam  par2 = (ksTextLineParam)kompas.GetParamStruct((short)StructType2DEnum.ko_TextLineParam);
            ksTextItemParam  par3 = (ksTextItemParam)kompas.GetParamStruct((short)StructType2DEnum.ko_TextItemParam);

            if ((par != null) && (par1 != null) && (par2 != null) && (par3 != null))
            {
                par1.Init();
                par2.Init();
                par3.Init();
                par.Init();
                par.x      = 30;
                par.y      = 30;
                par.height = 25;
                par.width  = 20;

                doc.ksParagraph(par);

                // 4 пример задания дроби и нижнего и верхнего отклонений
                ksTextItemParam itemParam = (ksTextItemParam)kompas.GetParamStruct((short)StructType2DEnum.ko_TextItemParam);
                if (itemParam != null)
                {
                    itemParam.Init();

                    ksTextItemFont itemFont = (ksTextItemFont)itemParam.GetItemFont();
                    if (itemFont != null)
                    {
                        itemFont.Init();
                        itemFont.SetBitVectorValue(ldefin2d.NEW_LINE, true);
                        itemParam.s = "111";
                        doc.ksTextLine(itemParam);

                        itemFont.Init();
                        itemFont.SetBitVectorValue(ldefin2d.NUMERATOR, true);
                        itemFont.SetBitVectorValue(ldefin2d.ITALIC_ON, true);
                        itemParam.s = "55";
                        doc.ksTextLine(itemParam);

                        itemFont.Init();
                        itemFont.SetBitVectorValue(ldefin2d.DENOMINATOR, true);
                        itemParam.s = "77";
                        doc.ksTextLine(itemParam);

                        itemFont.Init();
                        itemFont.SetBitVectorValue(ldefin2d.END_FRACTION, true);
                        itemFont.SetBitVectorValue(ldefin2d.BOLD_OFF, true);
                        itemFont.SetBitVectorValue(ldefin2d.ITALIC_OFF, true);
                        itemParam.s = "4444";
                        doc.ksTextLine(itemParam);
                    }
                }

                reference p = doc.ksEndObj();

                // в параметрах текста задействованы два массива неопределенной длины :
                ksDynamicArray arr1 = (ksDynamicArray)par1.GetTextLineArr();                   // массив по строкам
                ksDynamicArray arr2 = (ksDynamicArray)par2.GetTextItemArr();                   // массив по компонентам строки
                if ((arr1 != null) && (arr2 != null))
                {
                    // возьмем параметры 1 -ой строки ( индекс 0 )
                    doc.ksGetObjParam(p, par2, 0);

                    PrintPar1(par2, par3, arr2);
                    kompas.ksMessageBoxResult();

                    if (kompas.ksYesNo("Изменять параметры текста ?") == 1)
                    {
                        // у первой строки отключаем ITALIC и BOLD и меняем цвет
                        arr2.ksGetArrayItem(0, par3);
                        ksTextItemFont font = (ksTextItemFont)par3.GetItemFont();
                        if (font != null)
                        {
                            font.SetBitVectorValue(ldefin2d.BOLD_OFF, true);
                            font.SetBitVectorValue(ldefin2d.ITALIC_OFF, true);
                            int clr = Color.FromArgb(0, 0, 255, 0).ToArgb();
                            font.color = clr;
                            arr2.ksSetArrayItem(0, par3);
                            // заменим у текста первую строку
                            doc.ksSetObjParam(p, par2, 0);
                            // возьмем параметры 1 -ой строки ( индекс 0 )  для проверки
                            doc.ksGetObjParam(p, par2, 0);
                            PrintPar1(par2, par3, arr2);
                        }
                    }
                }
            }
        }