MathObjectType
OfficeMath.MathObjectType property
يحصل على النوعMathObjectType
من كائن Office Math هذا.
public MathObjectType MathObjectType { get; }
أمثلة
يوضح كيفية طباعة بنية العقدة لكل عقدة رياضية للمكتب في مستند.
public void OfficeMathToText()
{
Document doc = new Document(MyDir + "DocumentVisitor-compatible features.docx");
OfficeMathStructurePrinter visitor = new OfficeMathStructurePrinter();
// عندما نحصل على عقدة مركبة لقبول زائر المستند ، يزور الزائر عقدة القبول ،
// ثم يعبر جميع أبناء العقدة بطريقة العمق أولاً.
// يمكن للزائر قراءة كل عقدة تمت زيارتها وتعديلها.
doc.Accept(visitor);
Console.WriteLine(visitor.GetText());
}
/// <summary>
/// يتجاوز الشجرة غير الثنائية للعقد الفرعية للعقد.
/// ينشئ خريطة في شكل سلسلة لجميع عقد OfficeMath التي تمت مواجهتها وأطفالها.
/// </summary>
public class OfficeMathStructurePrinter : DocumentVisitor
{
public OfficeMathStructurePrinter()
{
mBuilder = new StringBuilder();
mVisitorIsInsideOfficeMath = false;
}
/// <summary>
/// يحصل على النص العادي للمستند الذي قام الزائر بتجميعه.
/// </summary>
public string GetText()
{
return mBuilder.ToString();
}
/// <summary>
/// يتم الاستدعاء عند مواجهة عقدة تشغيل في المستند.
/// </summary>
public override VisitorAction VisitRun(Run run)
{
if (mVisitorIsInsideOfficeMath) IndentAndAppendLine("[Run] \"" + run.GetText() + "\"");
return VisitorAction.Continue;
}
/// <summary>
/// يتم الاستدعاء عند مصادفة عقدة OfficeMath في المستند.
/// </summary>
public override VisitorAction VisitOfficeMathStart(OfficeMath officeMath)
{
IndentAndAppendLine("[OfficeMath start] Math object type: " + officeMath.MathObjectType);
mDocTraversalDepth++;
mVisitorIsInsideOfficeMath = true;
return VisitorAction.Continue;
}
/// <summary>
/// يتم استدعاؤها بعد زيارة جميع العقد الفرعية لعقدة OfficeMath.
/// </summary>
public override VisitorAction VisitOfficeMathEnd(OfficeMath officeMath)
{
mDocTraversalDepth--;
IndentAndAppendLine("[OfficeMath end]");
mVisitorIsInsideOfficeMath = false;
return VisitorAction.Continue;
}
/// <summary>
/// قم بإلحاق سطر بـ StringBuilder وقم بعمل مسافة بادئة له اعتمادًا على مدى عمق الزائر في شجرة المستند.
/// </summary>
/// < param name = "text" > < / param >
private void IndentAndAppendLine(string text)
{
for (int i = 0; i < mDocTraversalDepth; i++) mBuilder.Append("| ");
mBuilder.AppendLine(text);
}
private bool mVisitorIsInsideOfficeMath;
private int mDocTraversalDepth;
private readonly StringBuilder mBuilder;
}
أنظر أيضا
- enum MathObjectType
- class OfficeMath
- مساحة الاسم Aspose.Words.Math
- المجسم Aspose.Words