Exemplo n.º 1
0
        private void DoDrawCropMarks()
        {
            double     X, y, cx, cy;
            double     sx, sy, dx, ty;
            double     Off, l, Cu;
            long       N;
            ShapeRange sr = new ShapeRange();
            Shape      s, s1;
            ShapeRange AllShapes = new ShapeRange();

            this.StartEvent();
            app.ActiveDocument.Unit = cdrUnit.cdrMillimeter;
            app.ActiveDocument.PreserveSelection = false;
            app.ActiveDocument.Selection().GetBoundingBox(out X, out y, out cx, out cy, false);
            Off = (double)nudOffset.Value;
            l   = (double)nudLen.Value;
            sr.Add(DrawLine(X - Off - l, y, X - Off, y));
            sr.Add(DrawLine(X - Off - l, y + cy, X - Off, y + cy));
            sr.Add(DrawLine(X + cx + Off, y, X + cx + Off + l, y));
            sr.Add(DrawLine(X + cx + Off, y + cy, X + cx + Off + l, y + cy));
            sr.Add(DrawLine(X, y - Off - l, X, y - Off));
            sr.Add(DrawLine(X + cx, y - Off - l, X + cx, y - Off));
            sr.Add(DrawLine(X, y + Off + l + cy, X, y + Off + cy));
            sr.Add(DrawLine(X + cx, y + Off + l + cy, X + cx, y + Off + cy));
            AllShapes.Add(sr.Group());

            if (chkCu.Checked)
            {
                Cu = (double)nudCu.Value;
                sr.RemoveAll();
                sr.Add(DrawLine(X - Off - l, y + Cu, X - Off, y + Cu));
                sr.Add(DrawLine(X - Off - l, y + cy - Cu, X - Off, y + cy - Cu));
                sr.Add(DrawLine(X + cx + Off, y + Cu, X + cx + Off + l, y + Cu));
                sr.Add(DrawLine(X + cx + Off, y + cy - Cu, X + cx + Off + l, y + cy - Cu));
                sr.Add(DrawLine(X + Cu, y - Off - l, X + Cu, y - Off));
                sr.Add(DrawLine(X + cx - Cu, y - Off - l, X + cx - Cu, y - Off));
                sr.Add(DrawLine(X + Cu, y + Off + l + cy, X + Cu, y + Off + cy));
                sr.Add(DrawLine(X + cx - Cu, y + Off + l + cy, X + cx - Cu, y + Off + cy));
                AllShapes.Add(sr.Group());
            }

            if (chkZxsp.Checked)
            {
                sr.RemoveAll();
                sr.RemoveAll();
                sr.Add(DrawLine(X - Off - l, y + cy / 2, X, y + cy / 2));
                sr.Add(DrawLine(X + cx, y + cy / 2, X + cx + Off + l, y + cy / 2));
                Outline ol = new Outline();
                sr.SetOutlinePropertiesEx(-1, new OutlineStyle(), app.CreateCMYKColor(100, 100, 100, 100), null, null, cdrTriState.cdrFalse, cdrTriState.cdrFalse, cdrOutlineLineCaps.cdrOutlineButtLineCaps);
                //sr.SetOutlineProperties(0.2, new OutlineStyle(2));
                AllShapes.Add(sr.Group());
            }
            if (chkZxcz.Checked)
            {
                sr.RemoveAll();
                sr.Add(DrawLine(X + cx / 2, y + cy, X + cx / 2, y + cy + Off + l));
                sr.Add(DrawLine(X + cx / 2, y, X + cx / 2, y - Off - l));
                OutlineStyle ols = new OutlineStyle();
                sr.SetOutlineProperties(0.2, ols);

                AllShapes.Add(sr.Group());
            }
            if (chkJdsp.Checked)
            {
                Cu = (double)nudCu.Value;
                sr.RemoveAll();
                sr.Add(DrawLine(X - Off - l, y + cy / 2 + Cu, X - Off, y + cy / 2 + Cu));
                sr.Add(DrawLine(X - Off - l, y + cy / 2 - Cu, X - Off, y + cy / 2 - Cu));
                sr.Add(DrawLine(X + cx + Off, y + cy / 2 + Cu, X + cx + Off + l, y + cy / 2 + Cu));
                sr.Add(DrawLine(X + cx + Off, y + cy / 2 - Cu, X + cx + Off + l, y + cy / 2 - Cu));

                AllShapes.Add(sr.Group());
            }
            if (chkJdcz.Checked)
            {
                Cu = (double)nudCu.Value;
                sr.RemoveAll();
                sr.Add(DrawLine(X + cx / 2 + Cu, y + cy + Off, X + cx / 2 + Cu, y + cy + Off + l));
                sr.Add(DrawLine(X + cx / 2 - Cu, y + cy + Off, X + cx / 2 - Cu, y + cy + Off + l));
                sr.Add(DrawLine(X + cx / 2 + Cu, y - Off, X + cx / 2 + Cu, y - Off - l));
                sr.Add(DrawLine(X + cx / 2 - Cu, y - Off, X + cx / 2 - Cu, y - Off - l));

                AllShapes.Add(sr.Group());
            }

            AllShapes.Group();
            this.EndEvent();
        }