Move drawing down to add title
How to move drawing down to add title
Issue: How to move drawing down to add title (CADNET-980).
Tips: To do this, create a CadText object with parameters, add this block to the drawing, then update the drawing with the new dimensions with UpdateSize, add a polyline that is a frame around the drawing, add the polyline to BlockEntities["*Model_Space"] and update again with UpdateSize.
Example:
| using (CadImage cadImage = (CadImage)Image.Load(GetPath(fileName))) | |
| { | |
| CadText text = new CadText(); | |
| text.DefaultValue = "CAD Drawing"; | |
| text.TextHeight = 5; | |
| // second alignment point is required in case text is aligned (first alignment point is ignored) | |
| text.SecondAlignmentPoint = new Cad3DPoint(cadImage.Width / 2, cadImage.Height - text.TextHeight); | |
| text.HorizontalJustification = 1; | |
| text.ObjectHandle = "bebebebe";//Guid.NewGuid().ToString(); | |
| text.LayerName = "0"; | |
| text.SoftOwner = cadImage.Layouts["Model"].BlockTableRecordHandle; | |
| cadImage.BlockEntities["*Model_Space"].AddEntity(text); | |
| // should be called because we need to add one more entity using new size of image | |
| cadImage.UpdateSize(); | |
| // add polyline that is a border around the drawing | |
| CadLwPolyline lwPolyline = new CadLwPolyline(); | |
| lwPolyline.Coordinates = new List<Cad2DPoint>(); | |
| lwPolyline.Coordinates.Add(new Cad2DPoint(cadImage.MinPoint.X - 20, cadImage.MinPoint.Y - 20)); | |
| lwPolyline.Coordinates.Add(new Cad2DPoint(cadImage.MinPoint.X - 20, cadImage.MaxPoint.Y + 20)); | |
| lwPolyline.Coordinates.Add(new Cad2DPoint(cadImage.MaxPoint.X + 20, cadImage.MaxPoint.Y + 20)); | |
| lwPolyline.Coordinates.Add(new Cad2DPoint(cadImage.MaxPoint.X + 20, cadImage.MinPoint.Y - 20)); | |
| cadImage.BlockEntities["*Model_Space"].AddEntity(lwPolyline); | |
| // should be called because adding of new entity may change size of drawing | |
| cadImage.UpdateSize(); | |
| // remove border polyline after drawing is updated | |
| cadImage.RemoveEntity(lwPolyline); | |
| CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions(); | |
| PdfOptions pdfOptions = new PdfOptions(); | |
| pdfOptions.VectorRasterizationOptions = rasterizationOptions; | |
| cadImage.Save(outPath, pdfOptions); | |
| } |