ทำงานกับข้อความ
ทำงานกับข้อความ
เกือบทุกการวาดภาพมีวัตถุข้อความและตัวอย่างเหล่านี้จะแสดงวิธีการดำเนินการกับพวกเขา มีประเภทต่างๆ ของเอนทิตีสำหรับ DWG/DXF ที่สามารถจัดเก็บข้อความได้ ได้แก่ CadText, CadMText, CadAttDef, CadAttrib สองประเภทสุดท้ายมักเกี่ยวข้อง กับ CadInsertObject และจัดเก็บภายในหรือในบล็อกที่สอดคล้องกัน
นี่คือตัวอย่างบางส่วนที่บรรยายถึงการดำเนินการกับข้อความ
ค้นหาข้อความ
ตัวอย่างนี้แสดงวิธีการค้นหาค่าข้อความในไฟล์ DWG/DXF และอาจถูกใช้สำหรับการแทนที่ค่าข้อความด้วย
using (CadImage cadImage = (CadImage)Image.Load(fileName)) | |
{ | |
foreach (CadBaseEntity entity in cadImage.Entities) | |
{ | |
if (entity.GetType() == typeof(CadText)) | |
{ | |
CadText text = (CadText)entity; | |
System.Console.WriteLine(text.DefaultValue); | |
} | |
if (entity.GetType() == typeof(CadMText)) | |
{ | |
CadMText mtext = (CadMText)entity; | |
System.Console.WriteLine(mtext.FullClearText); | |
} | |
if (entity.GetType() == typeof(CadAttrib)) | |
{ | |
CadAttrib attrib = (CadAttrib)entity; | |
System.Console.WriteLine(attrib.DefaultText); | |
} | |
if (entity.GetType() == typeof(CadAttDef)) | |
{ | |
CadAttDef attdef = (CadAttDef)entity; | |
System.Console.WriteLine(attdef.DefinitionTagString); | |
} | |
if (entity.TypeName == CadEntityTypeName.INSERT) | |
{ | |
CadInsertObject insert = (CadInsertObject)entity; | |
CadBlockEntity block = cadImage.BlockEntities[insert.Name]; | |
foreach (CadBaseEntity blockEntity in block.Entities) | |
{ | |
if (blockEntity.GetType() == typeof(CadAttDef)) | |
{ | |
CadAttDef attdef = (CadAttDef)blockEntity; | |
System.Console.WriteLine(attdef.PromptString); | |
} | |
} | |
foreach (CadBaseEntity e in insert.ChildObjects) | |
{ | |
if (e.TypeName == CadEntityTypeName.ATTRIB) | |
{ | |
CadAttrib attrib = (CadAttrib)e; | |
System.Console.WriteLine(attrib.DefinitionTagString); | |
} | |
} | |
} | |
} | |
} |
เพิ่มรายการ Text และ MText ใหม่
นี่คือตัวอย่างวิธีการเพิ่มวัตถุ Text/Mtext ใหม่ไปยังการวาดภาพ การเพิ่มเอนทิตีใหม่อาจเปลี่ยนขนาดของการวาดภาพ ดังนั้นจึงแนะนำ ให้เรียก UpdateSize() หลังจากการดำเนินการเหล่านี้
// adding of Text | |
CadText text = new CadText(); | |
text.DefaultValue = "Watermark text"; | |
text.TextHeight = 40; | |
text.FirstAlignment = new Cad3DPoint(300, 40); | |
text.LayerName = "0"; | |
cadImage.BlockEntities["*Model_Space"].AddEntity(text); | |
cadImage.UpdateSize(); | |
// adding of Mtext | |
CadMText watermark = new CadMText(); | |
watermark.Text = "Watermark message"; | |
watermark.InitialTextHeight = 40; | |
watermark.InsertionPoint = new Cad3DPoint(300, 40); | |
watermark.LayerName = "0"; | |
cadImage.BlockEntities["*Model_Space"].AddEntity(watermark); | |
cadImage.UpdateSize(); |