static public int DrawSquareAnnotation(Form1 Parent) { if (Parent.m_CurDoc == null) { Document.CreateNewDoc(Parent); } IPXC_Pages pages = Parent.m_CurDoc.Pages; IPXC_Page page = pages[0]; PXC_Rect rcPage = page.get_Box(PXC_BoxType.PBox_PageBox); IPXS_Inst pxsInst = Parent.m_pxcInst.GetExtension("PXS"); IAUX_Inst auxInst = Parent.m_pxcInst.GetExtension("AUX"); //Getting Square annotation atom for the InsertNewAnnot method uint nSquare = pxsInst.StrToAtom("Square"); //Placing it in the center of page double nCX = (rcPage.right - rcPage.left) / 2.0; double nCY = (rcPage.top - rcPage.bottom) / 2.0; PXC_Rect rcOut = new PXC_Rect(); rcOut.left = nCX - 200; rcOut.bottom = nCY - 100; rcOut.right = nCX + 200; rcOut.top = nCY + 100; IPXC_Annotation annot = page.InsertNewAnnot(nSquare, ref rcOut); IPXC_AnnotData_SquareCircle aData = annot.Data as IPXC_AnnotData_SquareCircle; aData.Opacity = 0.7; var color = auxInst.CreateColor(ColorType.ColorType_RGB); color.SetRGB(0.0f, 1.0f, 1.0f); aData.Color = color; //Setting dashed border pattern var border = new PXC_AnnotBorder(); border.nStyle = PXC_AnnotBorderStyle.ABS_Dashed; border.nWidth = 4.0f; border.DashArray = new float[10]; border.DashArray[0] = border.DashArray[1] = 16.0f; //Width of dashes border.nDashCount = 2; //Number of dashes aData.set_Border(border); annot.Data = aData; Marshal.ReleaseComObject(page); Marshal.ReleaseComObject(pages); return((int)Form1.eFormUpdateFlags.efuf_Annotations); }
static public int AddSquareAndCircleAnnotation(Form1 Parent) { if (Parent.m_CurDoc == null) { Document.CreateNewDoc(Parent); } IPXC_UndoRedoData urData = null; IPXC_Pages pages = Parent.m_CurDoc.Pages; IPXC_Page firstPage = pages[0]; PXC_Rect rcPage = firstPage.get_Box(PXC_BoxType.PBox_PageBox); Marshal.ReleaseComObject(firstPage); IPXC_Page page = pages.InsertPage(0, ref rcPage, out urData); IPXS_Inst pxsInst = Parent.m_pxcInst.GetExtension("PXS"); IAUX_Inst auxInst = Parent.m_pxcInst.GetExtension("AUX"); //Getting Square and Circle annotations atom for the InsertNewAnnot method uint nSquare = pxsInst.StrToAtom("Square"); uint nCircle = pxsInst.StrToAtom("Circle"); double nCX = (rcPage.right - rcPage.left) / 2.0; double nCY = (rcPage.top - rcPage.bottom) / 2.0; PXC_Rect rcOut = new PXC_Rect(); rcOut.left = nCX - 200; rcOut.bottom = nCY + 200; rcOut.right = nCX + 200; rcOut.top = nCY + 300; IPXC_Annotation annot = unchecked (page.InsertNewAnnot(nSquare, ref rcOut)); IPXC_AnnotData_SquareCircle aData = annot.Data as IPXC_AnnotData_SquareCircle; aData.Title = "Square annotation 1."; annot.Data = aData; rcOut.bottom -= 150; rcOut.top -= 150; annot = unchecked (page.InsertNewAnnot(nSquare, ref rcOut)); aData = annot.Data as IPXC_AnnotData_SquareCircle; aData.Title = "Square annotation 2."; IColor color = auxInst.CreateColor(ColorType.ColorType_RGB); color.SetRGB(0.0f, 0.0f, 0.0f); aData.SColor = color; color.SetRGB(0.15f, 0.5f, 0.12f); aData.FColor = color; annot.Data = aData; rcOut.bottom -= 150; rcOut.top -= 150; annot = unchecked (page.InsertNewAnnot(nCircle, ref rcOut)); aData = annot.Data as IPXC_AnnotData_SquareCircle; aData.Title = "Circle annotation 3."; color.SetRGB(0.0f, 0.0f, 0.0f); aData.SColor = color; color.SetRGB(0.5f, 0.5f, 0.5f); aData.FColor = color; //Setting dashed border pattern PXC_AnnotBorder border = new PXC_AnnotBorder(); border.nStyle = PXC_AnnotBorderStyle.ABS_Dashed; border.nWidth = 4.0f; border.DashArray = new float[] { 10f, 8f, 6f, 4f, 2f, 2f, 4f, 6f, 8f, 10f }; //Width of dashes border.nDashCount = 4; //Number of dashes aData.set_Border(border); annot.Data = aData; rcOut.bottom -= 150; rcOut.top -= 150; annot = unchecked (page.InsertNewAnnot(nCircle, ref rcOut)); aData = annot.Data as IPXC_AnnotData_SquareCircle; aData.Title = "Circle annotation 4."; color.SetRGB(0.0f, 0.0f, 0.0f); aData.SColor = color; color.SetRGB(0.5f, 0.5f, 0.5f); aData.FColor = color; //Setting dashed border pattern border = new PXC_AnnotBorder(); border.nStyle = PXC_AnnotBorderStyle.ABS_Solid; border.nWidth = 5.0f; aData.set_Border(border); annot.Data = aData; Marshal.ReleaseComObject(page); Marshal.ReleaseComObject(pages); return((int)Form1.eFormUpdateFlags.efuf_Annotations); }