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); | |
} |