VDF常見問題整理(五十):如何在VectorDraw Developer Framework中導(dǎo)出文件?
VectorDraw Developer Framework(VDF)是一個用于應(yīng)用程序可視化的圖形引擎庫。有了VDF提供的功能,您可以輕松地創(chuàng)建、編輯、管理、輸出、輸入和打印2D和3D圖形文件。該庫還支持許多矢量和柵格輸入和輸出格式,包括本地PDF和SVG導(dǎo)出。
點擊立即下載VectorDraw Developer Framework
本文將會介紹如何在VectorDraw Developer Framework中導(dǎo)出文件,將會主要介紹如何導(dǎo)出具有背景色的SVG文件和在txt文件中如何導(dǎo)出xyz坐標(biāo)。
如何導(dǎo)出具有背景色的SVG文件?
問:
是否可以導(dǎo)出背景顏色不同于白色的SVG文件?
答:
這可以通過一些代碼行來指示VDF組件在OnDrawBackground事件中使用調(diào)色板的背景色,例如:
// the form conatins a vdFramedControl and a Button bool isOnSVGSave = false; // use this global boolean in the form and make it true just before saving the SVG and then again to false after save is finished private void button1_Click(object sender, EventArgs e) { vdDocument doc = vdFramedControl.BaseControl.ActiveDocument; doc.Open(@"C:\test\simple1.vdml"); // open a test file doc.Palette.Background = Color.LightYellow; // change the background color doc.Palette.Forground = Color.DarkSlateGray; // and the foreground color ..... ..... isOnSVGSave = true; //set this flag to true before saving SVG doc.OnDrawBackground += new vdDocument.DrawBackgroundEventHandler(doc_OnDrawBackground); // enable the event doc.SaveAs(@"c:\test\svg1.svg"); // save the SVG doc.OnDrawBackground -= new vdDocument.DrawBackgroundEventHandler(doc_OnDrawBackground); // disable the event isOnSVGSave = false;//set this flag back to false after saving SVG } void doc_OnDrawBackground(object sender, vdRender render, ref bool cancel) { if (isOnSVGSave && render!=null && render is RenderFormats.SvgRender) // check that is on "save" and render is SvgRender { cancel = true; // you need to pass this as tru render.Clear(vdFramedControl.BaseControl.ActiveDocument.Palette.Background); // clear the render and use the Palette’s Background color! } }在txt文件中如何導(dǎo)出xyz坐標(biāo)?
問:
如何將圖形中線和折線的x,y,z數(shù)據(jù)導(dǎo)出到txt文件中?
答:
VDF無法自動執(zhí)行此功能,但是從加載到VDF組件中的任何圖形中導(dǎo)出此txt文件非常容易。請參見下面的代碼:
private void button1_Click(object sender, EventArgs e) { vdDocument doc = vdFramedControl.BaseControl.ActiveDocument; doc.New(); doc.Open(@"c:\test\MyModel Layout_1.0.dxf"); using (StreamWriter writer = new StreamWriter(doc.FileName+".txt")) //export c:\test\MyModel Layout_1.0.dxf.txt file containing the points of lines and polylines only { foreach (vdFigure item in doc.Model.Entities) { if (item != null && item is vdLine) { writer.WriteLine("vdLine " + (item as vdLine).StartPoint.ToString() + " " + (item as vdLine).EndPoint.ToString()); } if (item != null && item is vdPolyline) { writer.Write("vdPolyline "); foreach (Vertex item2 in (item as vdPolyline).VertexList) { writer.Write(item2.AsgPoint().ToString() + " "); } writer.WriteLine(" "); } } } }您所需要做的就是循環(huán)文檔中的所有對象(線,折線等),獲取它們的x,y,z值,然后使用StreamWriter將它們寫入txt文件中。
以上問答,如果您有任何的疑惑都可以在評論區(qū)留言,我們會及時回復(fù)。此系列的問答教程我們會持續(xù)更新,如果您感興趣,可以多多關(guān)注本教程。
熱門文章推薦:
=======================================================
如果您對想要購買正版授權(quán)VectorDraw Developer Framework(VDF),可以聯(lián)系在線客服>>咨詢相關(guān)問題。
關(guān)注慧聚IT微信公眾號 ???,了解產(chǎn)品的最新動態(tài)及最新資訊。