Teken naar beneden verplaatsen om titel toe te voegen
Hoe teken naar beneden verplaatsen om titel toe te voegen
Probleem: Hoe teken naar beneden verplaatsen om titel toe te voegen (CADNET-980).
Tips: Om dit te doen, maak een CadText-object aan met parameters, voeg deze blok toe aan de tekening, werk vervolgens de tekening bij met de nieuwe afmetingen met UpdateSize, voeg een polyline toe die een kader rond de tekening vormt, voeg de polyline toe aan BlockEntities["*Model_Space"] en werk opnieuw bij met UpdateSize.
Voorbeeld:
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); | |
} |