테이블 배치

플로팅 테이블과 인라인 테이블이 있습니다

  • 인라인 테이블는 텍스트와 동일한 레이어에 배치되며, 위와 아래의 표만 둘러싸는 텍스트 흐름으로 배치됩니다. 인라인 표는 배치한 단락 사이에 항상 표시됩니다.
  • 플로팅 테이블는 텍스트 위에 겹쳐져 있으며 단락을 기준으로 한 표의 위치는 표 앵커에 의해 결정됩니다. 이로 인해 문서에서 부동 표의 위치는 세로 및 가로 위치 지정 설정의 영향을 받습니다.

문서에서 특정 방식으로 표를 배치해야 하는 경우가 있습니다. 이렇게 하려면 정렬 도구를 사용하여 표와 주변 텍스트 사이에 들여쓰기를 설정해야 합니다.

이 기사에서는 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로 설정된 경우 RelativeHorizontalAlignmentRelativeVerticalAlignment 속성을 사용하여 테이블의 가로 및 세로 정렬을 가져올 수 있습니다.

다른 유형의 텍스트 배치를 사용하면 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);