מיקום שולחן

יש שולחנות צפים וטבלאות Inline:

  • שולחנות Inline ממוקמים באותה שכבה כמו הטקסט והם ממוקמים זרימה של טקסט כי רק מקיף את השולחן מעל ומתחת. שולחנות Inline יופיעו תמיד בין פסקאות שבו הנחת אותם.
  • שולחנות Floating הם מעוכבים על הטקסט, ואת המיקום של השולחן ביחס לפסקה נקבע על ידי עוגן השולחן. בגלל זה, המיקום של השולחן הצף במסמך מושפע הגדרות מיקום אנכי ואופקי.

לפעמים צריך למקם שולחן במסמך באופן מסוים. כדי לעשות זאת, אתה צריך להשתמש בכלים היישור ולהגדיר את התרעות בין השולחן לבין הטקסט שמסביב.

במאמר זה נדבר על אילו אפשרויות Aspose.Words מספק למקם.

מיקום Inline Table

אתה יכול להגדיר את המיקום של שולחן Inline באמצעות Aspose.Words API וה Alignment רכוש. לכן, אתה יכול להתאים את ההיערכות של השולחן ביחס לדף המסמך.

הדוגמה הבאה של הקוד מראה כיצד להגדיר את המיקום של שולחן פנימי:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET.git.
Document doc = new Document(MyDir + "Tables.docx");
Table table = (Table) doc.GetChild(NodeType.Table, 0, true);
// Align the table to the center of the page.
table.Alignment = TableAlignment.Center;

Get Floating Table Alignment

אם הטבלה טקסט עטיפה מוגדר Around, אתה יכול לקבל את ההיערכות האופקית והארכינית של השולחן באמצעות ההיערכות RelativeHorizontalAlignment ו RelativeVerticalAlignment תכונות.

עם סוגים אחרים של טקסט עטיפה, אתה יכול לקבל היערכות שולחן באמצעות Alignment רכוש.

הדוגמה הבאה של הקוד מראה כיצד להשיג את ההיערכות של השולחן:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET.git.
Document doc = new Document(MyDir + "Tables.docx");
Table table = (Table) doc.GetChild(NodeType.Table, 0, true);
if (table.TextWrapping == TextWrapping.Around)
{
Console.WriteLine(table.RelativeHorizontalAlignment);
Console.WriteLine(table.RelativeVerticalAlignment);
}
else
{
Console.WriteLine(table.Alignment);
}

קבל מיקום שולחן

המיקום של שולחן צף נקבע באמצעות התכונות הבאות:

הדוגמה הבאה של הקוד מראה כיצד לקבל את המיקום של שולחן צף:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET.git.
Document doc = new Document(MyDir + "Table wrapped by text.docx");
foreach (Table table in doc.FirstSection.Body.Tables)
{
// If the table is floating type, then print its positioning properties.
if (table.TextWrapping == TextWrapping.Around)
{
Console.WriteLine(table.HorizontalAnchor);
Console.WriteLine(table.VerticalAnchor);
Console.WriteLine(table.AbsoluteHorizontalDistance);
Console.WriteLine(table.AbsoluteVerticalDistance);
Console.WriteLine(table.AllowOverlap);
Console.WriteLine(table.AbsoluteHorizontalDistance);
Console.WriteLine(table.RelativeVerticalAlignment);
Console.WriteLine("..............................");
}
}

הגדרת מיקום שולחן

בדיוק כמו להגיע, אתה יכול להגדיר את המיקום של שולחן צף באמצעות אותו הדבר. Aspose.Words API.

חשוב לדעת כי היערכות ומרחק אופקי אנכי משולבים תכונות ואחד יכול לאפס את השני. לדוגמה, הגדרת RelativeHorizontalAlignment לאפס את AbsoluteHorizontalDistance לערך ברירת המחדל ולהיפך. אותו הדבר true למען הסדר האנכי.

דוגמא הקוד הבא מראה כיצד להגדיר את המיקום של שולחן צף:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET.git.
Document doc = new Document(MyDir + "Table wrapped by text.docx");
Table table = doc.FirstSection.Body.Tables[0];
table.AbsoluteHorizontalDistance = 10;
table.RelativeVerticalAlignment = VerticalAlignment.Center;
doc.Save(ArtifactsDir + "WorkingWithTables.FloatingTablePosition.docx");

מרחק בין שולחן לבין טקסט מקיף

Aspose.Words מספק גם הזדמנות לגלות את המרחקים בין טבלאות וטקסטים הסובבים:

לדוגמה הקוד הבא מראה כיצד להגיע למרחק בין שולחן לטקסט המקיף שלו:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET.git.
Document doc = new Document(MyDir + "Tables.docx");
Console.WriteLine("\nGet distance between table left, right, bottom, top and the surrounding text.");
Table table = (Table) doc.GetChild(NodeType.Table, 0, true);
Console.WriteLine(table.DistanceTop);
Console.WriteLine(table.DistanceBottom);
Console.WriteLine(table.DistanceRight);
Console.WriteLine(table.DistanceLeft);