วางตำแหน่งตาราง

มีตารางลอยและตารางอินไลน์:

  • ตารางอินไลน์ ถูกวางไว้บนเลเยอร์เดียวกันกับข้อความ และวางไว้ในแนวข้อความที่ล้อมรอบตารางด้านบนและด้านล่างเท่านั้น ตารางแบบอินไลน์จะปรากฏระหว่างย่อหน้าที่คุณวางไว้เสมอ
  • โต๊ะลอยน้ำ จะถูกซ้อนเลเยอร์ไว้เหนือข้อความ และตำแหน่งของตารางที่สัมพันธ์กับย่อหน้าจะถูกกำหนดโดยจุดยึดตาราง ด้วยเหตุนี้ ตำแหน่งของตารางลอยในเอกสารจึงได้รับผลกระทบจากการตั้งค่าการวางตำแหน่งแนวตั้งและแนวนอน

บางครั้งคุณจำเป็นต้องวางตำแหน่งตารางในเอกสารในลักษณะใดลักษณะหนึ่ง ในการดำเนินการนี้ คุณจะต้องใช้เครื่องมือการจัดตำแหน่งและตั้งค่าการเยื้องระหว่างตารางและข้อความโดยรอบ

ในบทความนี้ เราจะพูดถึงตัวเลือกที่ Aspose.Words มีให้สำหรับการวางตำแหน่ง

ระบุตำแหน่งตารางแบบอินไลน์

คุณสามารถตั้งค่าตำแหน่งของตารางอินไลน์ได้โดยใช้คุณสมบัติ 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;

รับการจัดตำแหน่งตารางแบบลอยตัว

หากตั้งค่าการตัดข้อความตารางเป็น 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);
}

รับตำแหน่งตารางลอยตัว

ตำแหน่งของตารางลอยตัวถูกกำหนดโดยใช้คุณสมบัติต่อไปนี้:

  • HorizontalAnchor – วัตถุสำหรับคำนวณการวางตำแหน่งแนวนอนของตารางลอย
  • VerticalAnchor – วัตถุสำหรับคำนวณการวางตำแหน่งแนวตั้งของตารางลอย
  • AbsoluteHorizontalDistance – ตำแหน่งตารางลอยแนวนอนสัมบูรณ์
  • AbsoluteVerticalDistance – ตำแหน่งตารางลอยในแนวตั้งสัมบูรณ์
  • AllowOverlap - ตัวเลือกในการเปิด/ปิดการทับซ้อนกับวัตถุลอยอื่นๆ
  • RelativeHorizontalAlignment - การจัดตำแหน่งแนวนอนแบบสัมพันธ์ของตารางลอย
  • RelativeVerticalAlignment - การจัดตำแหน่งแนวตั้งสัมพัทธ์ของตารางลอย

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการรับตำแหน่งของตารางลอยตัว:

// 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 ยังให้โอกาสในการค้นหาระยะห่างระหว่างตารางและข้อความโดยรอบ:

  • DistanceTop – ค่าระยะห่างจากด้านบน
  • DistanceBottom – ค่าของระยะห่างในการรับรู้
  • DistanceRight – ค่าระยะทางทางด้านขวา
  • DistanceLeft – ค่าระยะทางทางด้านซ้าย

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีรับระยะห่างระหว่างตารางและข้อความโดยรอบ:

// 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);