태그가 있는 PDF에서 테이블 작업하기
태그가 있는 PDF에서 테이블 생성
Aspose.PDF for .NET은 태그가 있는 PDF 문서에서 테이블을 생성할 수 있게 합니다. 테이블 작업을 위해 API는 TableElement 클래스를 제공합니다. 테이블을 생성하려면 ITaggedContent 인터페이스의 CreateTableElement() 메서드를 사용할 수 있습니다. 또한, TableElement 클래스의 CreateTHead() , CreateTBody() 및 CreateTFoot() 메서드를 사용하여 각각 테이블 헤드, 테이블 본문 및 테이블 바닥글을 생성할 수 있습니다. 테이블 행을 생성하려면 TableRowCollectionElement 클래스의 CreateTR() 메서드를 사용할 수 있습니다. 생성된 PDF 문서가 PDF/UA 준수인지 확인하려면 Document 클래스의 Validate() 메서드를 사용할 수 있습니다.
다음 코드 스니펫은 Aspose.PDF.Drawing 라이브러리와 함께 작업합니다.
다음 코드 스니펫은 태그가 있는 PDF 문서에서 테이블을 생성하는 방법을 보여줍니다:
.NET Core 3.1
Copy
private static void CreateTable ( )
{
var dataDir = RunExamples . GetDataDir_AsposePdf_WorkingDocuments ();
using ( var document = new Aspose . Pdf . Document ())
{
Aspose . Pdf . Tagged . ITaggedContent taggedContent = document . TaggedContent ;
taggedContent . SetTitle ( "Example table" );
taggedContent . SetLanguage ( "en-US" );
Aspose . Pdf . LogicalStructure . StructureElement rootElement = taggedContent . RootElement ;
Aspose . Pdf . LogicalStructure . TableElement tableElement = taggedContent . CreateTableElement ();
rootElement . AppendChild ( tableElement );
tableElement . Border = new Aspose . Pdf . BorderInfo ( Aspose . Pdf . BorderSide . All , 1.2F , Aspose . Pdf . Color . DarkBlue );
Aspose . Pdf . LogicalStructure . TableTHeadElement tableTHeadElement = tableElement . CreateTHead ();
Aspose . Pdf . LogicalStructure . TableTBodyElement tableTBodyElement = tableElement . CreateTBody ();
Aspose . Pdf . LogicalStructure . TableTFootElement tableTFootElement = tableElement . CreateTFoot ();
int rowCount = 50 ;
int colCount = 4 ;
int rowIndex ;
int colIndex ;
Aspose . Pdf . LogicalStructure . TableTRElement headTrElement = tableTHeadElement . CreateTR ();
headTrElement . AlternativeText = "Head Row" ;
headTrElement . BackgroundColor = Aspose . Pdf . Color . LightGray ;
for ( colIndex = 0 ; colIndex < colCount ; colIndex ++)
{
Aspose . Pdf . LogicalStructure . TableTHElement thElement = headTrElement . CreateTH ();
thElement . SetText ( String . Format ( "Head {0}" , colIndex ));
thElement . BackgroundColor = Aspose . Pdf . Color . GreenYellow ;
thElement . Border = new Aspose . Pdf . BorderInfo ( Aspose . Pdf . BorderSide . All , 4.0F , Aspose . Pdf . Color . Gray );
thElement . IsNoBorder = true ;
thElement . Margin = new Aspose . Pdf . MarginInfo ( 16.0 , 2.0 , 8.0 , 2.0 );
thElement . Alignment = Aspose . Pdf . HorizontalAlignment . Right ;
}
for ( rowIndex = 0 ; rowIndex < rowCount ; rowIndex ++)
{
Aspose . Pdf . LogicalStructure . TableTRElement trElement = tableTBodyElement . CreateTR ();
trElement . AlternativeText = string . Format ( "Row {0}" , rowIndex );
for ( colIndex = 0 ; colIndex < colCount ; colIndex ++)
{
int colSpan = 1 ;
int rowSpan = 1 ;
if ( colIndex == 1 && rowIndex == 1 )
{
colSpan = 2 ;
rowSpan = 2 ;
}
else if ( colIndex == 2 && ( rowIndex == 1 || rowIndex == 2 ))
{
continue ;
}
else if ( rowIndex == 2 && ( colIndex == 1 || colIndex == 2 ))
{
continue ;
}
Aspose . Pdf . LogicalStructure . TableTDElement tdElement = trElement . CreateTD ();
tdElement . SetText ( String . Format ( "Cell [{0}, {1}]" , rowIndex , colIndex ));
tdElement . BackgroundColor = Aspose . Pdf . Color . Yellow ;
tdElement . Border = new Aspose . Pdf . BorderInfo ( Aspose . Pdf . BorderSide . All , 4.0F , Aspose . Pdf . Color . Gray );
tdElement . IsNoBorder = false ;
tdElement . Margin = new Aspose . Pdf . MarginInfo ( 8.0 , 2.0 , 8.0 , 2.0 );
tdElement . Alignment = Aspose . Pdf . HorizontalAlignment . Center ;
var cellTextState = new Aspose . Pdf . Text . TextState ();
cellTextState . ForegroundColor = Aspose . Pdf . Color . DarkBlue ;
cellTextState . FontSize = 7.5F ;
cellTextState . FontStyle = Aspose . Pdf . Text . FontStyles . Bold ;
cellTextState . Font = Aspose . Pdf . Text . FontRepository . FindFont ( "Arial" );
tdElement . DefaultCellTextState = cellTextState ;
tdElement . IsWordWrapped = true ;
tdElement . VerticalAlignment = Aspose . Pdf . VerticalAlignment . Center ;
tdElement . ColSpan = colSpan ;
tdElement . RowSpan = rowSpan ;
}
}
Aspose . Pdf . LogicalStructure . TableTRElement footTrElement = tableTFootElement . CreateTR ();
footTrElement . AlternativeText = "Foot Row" ;
footTrElement . BackgroundColor = Aspose . Pdf . Color . LightSeaGreen ;
for ( colIndex = 0 ; colIndex < colCount ; colIndex ++)
{
Aspose . Pdf . LogicalStructure . TableTDElement tdElement = footTrElement . CreateTD ();
tdElement . SetText ( String . Format ( "Foot {0}" , colIndex ));
tdElement . Alignment = Aspose . Pdf . HorizontalAlignment . Center ;
tdElement . StructureTextState . FontSize = 7F ;
tdElement . StructureTextState . FontStyle = Aspose . Pdf . Text . FontStyles . Bold ;
}
Aspose . Pdf . LogicalStructure . StructureAttributes tableAttributes = tableElement . Attributes . GetAttributes ( Aspose . Pdf . LogicalStructure . AttributeOwnerStandard . Table );
var summaryAttribute = new Aspose . Pdf . LogicalStructure . StructureAttribute ( Aspose . Pdf . LogicalStructure . AttributeKey . Summary );
summaryAttribute . SetStringValue ( "The summary text for table" );
tableAttributes . SetAttribute ( summaryAttribute );
document . Save ( dataDir + "CreateTableElement_out.pdf" );
}
using ( var document = new Aspose . Pdf . Document ( dataDir + "CreateTableElement_out.pdf" ))
{
bool isPdfUaCompliance = document . Validate ( dataDir + "CreateTableElement_log.xml" , Aspose . Pdf . PdfFormat . PDF_UA_1 );
Console . WriteLine ( String . Format ( "PDF/UA compliance: {0}" , isPdfUaCompliance ));
}
}
.NET 8
Copy
private static void CreateTable ( )
{
var dataDir = RunExamples . GetDataDir_AsposePdf_WorkingDocuments ();
using var document1 = new Aspose . Pdf . Document ();
Aspose . Pdf . Tagged . ITaggedContent taggedContent = document1 . TaggedContent ;
taggedContent . SetTitle ( "Example table" );
taggedContent . SetLanguage ( "en-US" );
Aspose . Pdf . LogicalStructure . StructureElement rootElement = taggedContent . RootElement ;
Aspose . Pdf . LogicalStructure . TableElement tableElement = taggedContent . CreateTableElement ();
rootElement . AppendChild ( tableElement );
tableElement . Border = new Aspose . Pdf . BorderInfo ( Aspose . Pdf . BorderSide . All , 1.2F , Aspose . Pdf . Color . DarkBlue );
Aspose . Pdf . LogicalStructure . TableTHeadElement tableTHeadElement = tableElement . CreateTHead ();
Aspose . Pdf . LogicalStructure . TableTBodyElement tableTBodyElement = tableElement . CreateTBody ();
Aspose . Pdf . LogicalStructure . TableTFootElement tableTFootElement = tableElement . CreateTFoot ();
int rowCount = 50 ;
int colCount = 4 ;
int rowIndex ;
int colIndex ;
Aspose . Pdf . LogicalStructure . TableTRElement headTrElement = tableTHeadElement . CreateTR ();
headTrElement . AlternativeText = "Head Row" ;
headTrElement . BackgroundColor = Aspose . Pdf . Color . LightGray ;
for ( colIndex = 0 ; colIndex < colCount ; colIndex ++)
{
Aspose . Pdf . LogicalStructure . TableTHElement thElement = headTrElement . CreateTH ();
thElement . SetText ( String . Format ( "Head {0}" , colIndex ));
thElement . BackgroundColor = Aspose . Pdf . Color . GreenYellow ;
thElement . Border = new Aspose . Pdf . BorderInfo ( Aspose . Pdf . BorderSide . All , 4.0F , Aspose . Pdf . Color . Gray );
thElement . IsNoBorder = true ;
thElement . Margin = new Aspose . Pdf . MarginInfo ( 16.0 , 2.0 , 8.0 , 2.0 );
thElement . Alignment = Aspose . Pdf . HorizontalAlignment . Right ;
}
for ( rowIndex = 0 ; rowIndex < rowCount ; rowIndex ++)
{
Aspose . Pdf . LogicalStructure . TableTRElement trElement = tableTBodyElement . CreateTR ();
trElement . AlternativeText = string . Format ( "Row {0}" , rowIndex );
for ( colIndex = 0 ; colIndex < colCount ; colIndex ++)
{
int colSpan = 1 ;
int rowSpan = 1 ;
if ( colIndex == 1 && rowIndex == 1 )
{
colSpan = 2 ;
rowSpan = 2 ;
}
else if ( colIndex == 2 && ( rowIndex == 1 || rowIndex == 2 ))
{
continue ;
}
else if ( rowIndex == 2 && ( colIndex == 1 || colIndex == 2 ))
{
continue ;
}
Aspose . Pdf . LogicalStructure . TableTDElement tdElement = trElement . CreateTD ();
tdElement . SetText ( String . Format ( "Cell [{0}, {1}]" , rowIndex , colIndex ));
tdElement . BackgroundColor = Aspose . Pdf . Color . Yellow ;
tdElement . Border = new Aspose . Pdf . BorderInfo ( Aspose . Pdf . BorderSide . All , 4.0F , Aspose . Pdf . Color . Gray );
tdElement . IsNoBorder = false ;
tdElement . Margin = new Aspose . Pdf . MarginInfo ( 8.0 , 2.0 , 8.0 , 2.0 );
tdElement . Alignment = Aspose . Pdf . HorizontalAlignment . Center ;
var cellTextState = new Aspose . Pdf . Text . TextState ();
cellTextState . ForegroundColor = Aspose . Pdf . Color . DarkBlue ;
cellTextState . FontSize = 7.5F ;
cellTextState . FontStyle = Aspose . Pdf . Text . FontStyles . Bold ;
cellTextState . Font = Aspose . Pdf . Text . FontRepository . FindFont ( "Arial" );
tdElement . DefaultCellTextState = cellTextState ;
tdElement . IsWordWrapped = true ;
tdElement . VerticalAlignment = Aspose . Pdf . VerticalAlignment . Center ;
tdElement . ColSpan = colSpan ;
tdElement . RowSpan = rowSpan ;
}
}
Aspose . Pdf . LogicalStructure . TableTRElement footTrElement = tableTFootElement . CreateTR ();
footTrElement . AlternativeText = "Foot Row" ;
footTrElement . BackgroundColor = Aspose . Pdf . Color . LightSeaGreen ;
for ( colIndex = 0 ; colIndex < colCount ; colIndex ++)
{
Aspose . Pdf . LogicalStructure . TableTDElement tdElement = footTrElement . CreateTD ();
tdElement . SetText ( String . Format ( "Foot {0}" , colIndex ));
tdElement . Alignment = Aspose . Pdf . HorizontalAlignment . Center ;
tdElement . StructureTextState . FontSize = 7F ;
tdElement . StructureTextState . FontStyle = Aspose . Pdf . Text . FontStyles . Bold ;
}
Aspose . Pdf . LogicalStructure . StructureAttributes tableAttributes = tableElement . Attributes . GetAttributes ( Aspose . Pdf . LogicalStructure . AttributeOwnerStandard . Table );
var summaryAttribute = new Aspose . Pdf . LogicalStructure . StructureAttribute ( Aspose . Pdf . LogicalStructure . AttributeKey . Summary );
summaryAttribute . SetStringValue ( "The summary text for table" );
tableAttributes . SetAttribute ( summaryAttribute );
document1 . Save ( dataDir + "CreateTableElement_out.pdf" );
using var document2 = new Aspose . Pdf . Document ( dataDir + "CreateTableElement_out.pdf" );
bool isPdfUaCompliance = document2 . Validate ( dataDir + "CreateTableElement_log.xml" , Aspose . Pdf . PdfFormat . PDF_UA_1 );
Console . WriteLine ( String . Format ( "PDF/UA compliance: {0}" , isPdfUaCompliance ));
}
테이블 요소 스타일 지정
Aspose.PDF for .NET은 태그가 있는 PDF 문서에서 테이블을 스타일링할 수 있게 합니다. 테이블을 스타일링하려면 ITaggedContent 인터페이스의 CreateTableElement() 메서드를 사용하여 테이블을 생성하고 TableElement 클래스의 속성을 사용하여 테이블 스타일을 설정할 수 있습니다. 다음은 테이블 스타일을 지정하는 데 사용할 수 있는 속성 목록입니다:
다음 코드 스니펫은 태그가 있는 PDF 문서에서 테이블을 스타일링하는 방법을 보여줍니다:
.NET Core 3.1
Copy
private static void StyleTable ( )
{
var dataDir = RunExamples . GetDataDir_AsposePdf_WorkingDocuments ();
using ( var document = new Aspose . Pdf . Document ())
{
Aspose . Pdf . Tagged . ITaggedContent taggedContent = document . TaggedContent ;
taggedContent . SetTitle ( "Example table style" );
taggedContent . SetLanguage ( "en-US" );
Aspose . Pdf . LogicalStructure . StructureElement rootElement = taggedContent . RootElement ;
Aspose . Pdf . LogicalStructure . TableElement tableElement = taggedContent . CreateTableElement ();
rootElement . AppendChild ( tableElement );
tableElement . BackgroundColor = Aspose . Pdf . Color . Beige ;
tableElement . Border = new Aspose . Pdf . BorderInfo ( Aspose . Pdf . BorderSide . All , 0.80F , Aspose . Pdf . Color . Gray );
tableElement . Alignment = Aspose . Pdf . HorizontalAlignment . Center ;
tableElement . Broken = Aspose . Pdf . TableBroken . Vertical ;
tableElement . ColumnAdjustment = Aspose . Pdf . ColumnAdjustment . AutoFitToWindow ;
tableElement . ColumnWidths = "80 80 80 80 80" ;
tableElement . DefaultCellBorder = new Aspose . Pdf . BorderInfo ( Aspose . Pdf . BorderSide . All , 0.50F , Aspose . Pdf . Color . DarkBlue );
tableElement . DefaultCellPadding = new Aspose . Pdf . MarginInfo ( 16.0 , 2.0 , 8.0 , 2.0 );
tableElement . DefaultCellTextState . ForegroundColor = Aspose . Pdf . Color . DarkCyan ;
tableElement . DefaultCellTextState . FontSize = 8F ;
tableElement . DefaultColumnWidth = "70" ;
tableElement . IsBroken = false ;
tableElement . IsBordersIncluded = true ;
tableElement . Left = 0F ;
tableElement . Top = 40F ;
tableElement . RepeatingColumnsCount = 2 ;
tableElement . RepeatingRowsCount = 3 ;
var rowStyle = new Aspose . Pdf . Text . TextState ();
rowStyle . BackgroundColor = Aspose . Pdf . Color . LightCoral ;
tableElement . RepeatingRowsStyle = rowStyle ;
Aspose . Pdf . LogicalStructure . TableTHeadElement tableTHeadElement = tableElement . CreateTHead ();
Aspose . Pdf . LogicalStructure . TableTBodyElement tableTBodyElement = tableElement . CreateTBody ();
Aspose . Pdf . LogicalStructure . TableTFootElement tableTFootElement = tableElement . CreateTFoot ();
int rowCount = 10 ;
int colCount = 5 ;
int rowIndex ;
int colIndex ;
Aspose . Pdf . LogicalStructure . TableTRElement headTrElement = tableTHeadElement . CreateTR ();
headTrElement . AlternativeText = "Head Row" ;
for ( colIndex = 0 ; colIndex < colCount ; colIndex ++)
{
Aspose . Pdf . LogicalStructure . TableTHElement thElement = headTrElement . CreateTH ();
thElement . SetText ( String . Format ( "Head {0}" , colIndex ));
}
for ( rowIndex = 0 ; rowIndex < rowCount ; rowIndex ++)
{
Aspose . Pdf . LogicalStructure . TableTRElement trElement = tableTBodyElement . CreateTR ();
trElement . AlternativeText = String . Format ( "Row {0}" , rowIndex );
for ( colIndex = 0 ; colIndex < colCount ; colIndex ++)
{
Aspose . Pdf . LogicalStructure . TableTDElement tdElement = trElement . CreateTD ();
tdElement . SetText ( String . Format ( "Cell [{0}, {1}]" , rowIndex , colIndex ));
}
}
Aspose . Pdf . LogicalStructure . TableTRElement footTrElement = tableTFootElement . CreateTR ();
footTrElement . AlternativeText = "Foot Row" ;
for ( colIndex = 0 ; colIndex < colCount ; colIndex ++)
{
Aspose . Pdf . LogicalStructure . TableTDElement tdElement = footTrElement . CreateTD ();
tdElement . SetText ( String . Format ( "Foot {0}" , colIndex ));
}
document . Save ( dataDir + "StyleTableElement_out.pdf" );
}
using ( var document = new Aspose . Pdf . Document ( dataDir + "StyleTableElement_out.pdf" ))
{
bool isPdfUaCompliance = document . Validate ( dataDir + "StyleTableElement_log.xml" , Aspose . Pdf . PdfFormat . PDF_UA_1 );
Console . WriteLine ( String . Format ( "PDF/UA compliance: {0}" , isPdfUaCompliance ));
}
}
.NET 8
Copy
private static void StyleTable ( )
{
var dataDir = RunExamples . GetDataDir_AsposePdf_WorkingDocuments ();
using var document1 = new Aspose . Pdf . Document ();
Aspose . Pdf . Tagged . ITaggedContent taggedContent = document1 . TaggedContent ;
taggedContent . SetTitle ( "Example table style" );
taggedContent . SetLanguage ( "en-US" );
Aspose . Pdf . LogicalStructure . StructureElement rootElement = taggedContent . RootElement ;
Aspose . Pdf . LogicalStructure . TableElement tableElement = taggedContent . CreateTableElement ();
rootElement . AppendChild ( tableElement );
tableElement . BackgroundColor = Aspose . Pdf . Color . Beige ;
tableElement . Border = new Aspose . Pdf . BorderInfo ( Aspose . Pdf . BorderSide . All , 0.80F , Aspose . Pdf . Color . Gray );
tableElement . Alignment = Aspose . Pdf . HorizontalAlignment . Center ;
tableElement . Broken = Aspose . Pdf . TableBroken . Vertical ;
tableElement . ColumnAdjustment = Aspose . Pdf . ColumnAdjustment . AutoFitToWindow ;
tableElement . ColumnWidths = "80 80 80 80 80" ;
tableElement . DefaultCellBorder = new Aspose . Pdf . BorderInfo ( Aspose . Pdf . BorderSide . All , 0.50F , Aspose . Pdf . Color . DarkBlue );
tableElement . DefaultCellPadding = new Aspose . Pdf . MarginInfo ( 16.0 , 2.0 , 8.0 , 2.0 );
tableElement . DefaultCellTextState . ForegroundColor = Aspose . Pdf . Color . DarkCyan ;
tableElement . DefaultCellTextState . FontSize = 8F ;
tableElement . DefaultColumnWidth = "70" ;
tableElement . IsBroken = false ;
tableElement . IsBordersIncluded = true ;
tableElement . Left = 0F ;
tableElement . Top = 40F ;
tableElement . RepeatingColumnsCount = 2 ;
tableElement . RepeatingRowsCount = 3 ;
var rowStyle = new Aspose . Pdf . Text . TextState ();
rowStyle . BackgroundColor = Aspose . Pdf . Color . LightCoral ;
tableElement . RepeatingRowsStyle = rowStyle ;
Aspose . Pdf . LogicalStructure . TableTHeadElement tableTHeadElement = tableElement . CreateTHead ();
Aspose . Pdf . LogicalStructure . TableTBodyElement tableTBodyElement = tableElement . CreateTBody ();
Aspose . Pdf . LogicalStructure . TableTFootElement tableTFootElement = tableElement . CreateTFoot ();
int rowCount = 10 ;
int colCount = 5 ;
int rowIndex ;
int colIndex ;
Aspose . Pdf . LogicalStructure . TableTRElement headTrElement = tableTHeadElement . CreateTR ();
headTrElement . AlternativeText = "Head Row" ;
for ( colIndex = 0 ; colIndex < colCount ; colIndex ++)
{
Aspose . Pdf . LogicalStructure . TableTHElement thElement = headTrElement . CreateTH ();
thElement . SetText ( String . Format ( "Head {0}" , colIndex ));
}
for ( rowIndex = 0 ; rowIndex < rowCount ; rowIndex ++)
{
Aspose . Pdf . LogicalStructure . TableTRElement trElement = tableTBodyElement . CreateTR ();
trElement . AlternativeText = String . Format ( "Row {0}" , rowIndex );
for ( colIndex = 0 ; colIndex < colCount ; colIndex ++)
{
Aspose . Pdf . LogicalStructure . TableTDElement tdElement = trElement . CreateTD ();
tdElement . SetText ( String . Format ( "Cell [{0}, {1}]" , rowIndex , colIndex ));
}
}
Aspose . Pdf . LogicalStructure . TableTRElement footTrElement = tableTFootElement . CreateTR ();
footTrElement . AlternativeText = "Foot Row" ;
for ( colIndex = 0 ; colIndex < colCount ; colIndex ++)
{
Aspose . Pdf . LogicalStructure . TableTDElement tdElement = footTrElement . CreateTD ();
tdElement . SetText ( String . Format ( "Foot {0}" , colIndex ));
}
document1 . Save ( dataDir + "StyleTableElement_out.pdf" );
using var document2 = new Aspose . Pdf . Document ( dataDir + "StyleTableElement_out.pdf" );
bool isPdfUaCompliance = document2 . Validate ( dataDir + "StyleTableElement_log.xml" , Aspose . Pdf . PdfFormat . PDF_UA_1 );
Console . WriteLine ( String . Format ( "PDF/UA compliance: {0}" , isPdfUaCompliance ));
}
테이블 행 스타일 지정
Aspose.PDF for .NET은 태그가 있는 PDF 문서에서 테이블 행을 스타일링할 수 있게 합니다. 테이블 행을 스타일링하려면 TableTRElement 클래스의 속성을 사용할 수 있습니다. 다음은 테이블 행을 스타일링하는 데 사용할 수 있는 속성 목록입니다:
BackgroundColor.
Border.
DefaultCellBorder.
MinRowHeight.
FixedRowHeight.
IsInNewPage.
IsRowBroken.
DefaultCellTextState.
DefaultCellPadding.
VerticalAlignment.
다음 코드 스니펫은 태그가 있는 PDF 문서에서 테이블 행을 스타일링하는 방법을 보여줍니다:
.NET Core 3.1
Copy
private static void StyleTableRow ( )
{
var dataDir = RunExamples . GetDataDir_AsposePdf_WorkingDocuments ();
using ( var document = new Aspose . Pdf . Document ())
{
Aspose . Pdf . Tagged . ITaggedContent taggedContent = document . TaggedContent ;
taggedContent . SetTitle ( "Example table row style" );
taggedContent . SetLanguage ( "en-US" );
Aspose . Pdf . LogicalStructure . StructureElement rootElement = taggedContent . RootElement ;
Aspose . Pdf . LogicalStructure . TableElement tableElement = taggedContent . CreateTableElement ();
rootElement . AppendChild ( tableElement );
Aspose . Pdf . LogicalStructure . TableTHeadElement tableTHeadElement = tableElement . CreateTHead ();
Aspose . Pdf . LogicalStructure . TableTBodyElement tableTBodyElement = tableElement . CreateTBody ();
Aspose . Pdf . LogicalStructure . TableTFootElement tableTFootElement = tableElement . CreateTFoot ();
int rowCount = 7 ;
int colCount = 3 ;
int rowIndex ;
int colIndex ;
Aspose . Pdf . LogicalStructure . TableTRElement headTrElement = tableTHeadElement . CreateTR ();
headTrElement . AlternativeText = "Head Row" ;
for ( colIndex = 0 ; colIndex < colCount ; colIndex ++)
{
Aspose . Pdf . LogicalStructure . TableTHElement thElement = headTrElement . CreateTH ();
thElement . SetText ( string . Format ( "Head {0}" , colIndex ));
}
for ( rowIndex = 0 ; rowIndex < rowCount ; rowIndex ++)
{
Aspose . Pdf . LogicalStructure . TableTRElement trElement = tableTBodyElement . CreateTR ();
trElement . AlternativeText = string . Format ( "Row {0}" , rowIndex );
trElement . BackgroundColor = Aspose . Pdf . Color . LightGoldenrodYellow ;
trElement . Border = new Aspose . Pdf . BorderInfo ( Aspose . Pdf . BorderSide . All , 0.75F , Aspose . Pdf . Color . DarkGray );
trElement . DefaultCellBorder = new Aspose . Pdf . BorderInfo ( Aspose . Pdf . BorderSide . All , 0.50F , Aspose . Pdf . Color . Blue );
trElement . MinRowHeight = 100.0 ;
trElement . FixedRowHeight = 120.0 ;
trElement . IsInNewPage = ( rowIndex % 3 == 1 );
trElement . IsRowBroken = true ;
var cellTextState = new Aspose . Pdf . Text . TextState ();
cellTextState . ForegroundColor = Aspose . Pdf . Color . Red ;
trElement . DefaultCellTextState = cellTextState ;
trElement . DefaultCellPadding = new Aspose . Pdf . MarginInfo ( 16.0 , 2.0 , 8.0 , 2.0 );
trElement . VerticalAlignment = Aspose . Pdf . VerticalAlignment . Bottom ;
for ( colIndex = 0 ; colIndex < colCount ; colIndex ++)
{
Aspose . Pdf . LogicalStructure . TableTDElement tdElement = trElement . CreateTD ();
tdElement . SetText ( string . Format ( "Cell [{0}, {1}]" , rowIndex , colIndex ));
}
}
Aspose . Pdf . LogicalStructure . TableTRElement footTrElement = tableTFootElement . CreateTR ();
footTrElement . AlternativeText = "Foot Row" ;
for ( colIndex = 0 ; colIndex < colCount ; colIndex ++)
{
Aspose . Pdf . LogicalStructure . TableTDElement tdElement = footTrElement . CreateTD ();
tdElement . SetText ( string . Format ( "Foot {0}" , colIndex ));
}
document . Save ( dataDir + "StyleTableRow_out.pdf" );
}
using ( var document = new Aspose . Pdf . Document ( dataDir + "StyleTableRow_out.pdf" ))
{
bool isPdfUaCompliance = document . Validate ( dataDir + "StyleTableRow_log.xml" , Aspose . Pdf . PdfFormat . PDF_UA_1 );
Console . WriteLine ( string . Format ( "PDF/UA compliance: {0}" , isPdfUaCompliance ));
}
}
.NET 8
Copy
private static void StyleTableRow ( )
{
var dataDir = RunExamples . GetDataDir_AsposePdf_WorkingDocuments ();
using var document1 = new Aspose . Pdf . Document ();
Aspose . Pdf . Tagged . ITaggedContent taggedContent = document1 . TaggedContent ;
taggedContent . SetTitle ( "Example table row style" );
taggedContent . SetLanguage ( "en-US" );
Aspose . Pdf . LogicalStructure . StructureElement rootElement = taggedContent . RootElement ;
Aspose . Pdf . LogicalStructure . TableElement tableElement = taggedContent . CreateTableElement ();
rootElement . AppendChild ( tableElement );
Aspose . Pdf . LogicalStructure . TableTHeadElement tableTHeadElement = tableElement . CreateTHead ();
Aspose . Pdf . LogicalStructure . TableTBodyElement tableTBodyElement = tableElement . CreateTBody ();
Aspose . Pdf . LogicalStructure . TableTFootElement tableTFootElement = tableElement . CreateTFoot ();
int rowCount = 7 ;
int colCount = 3 ;
int rowIndex ;
int colIndex ;
Aspose . Pdf . LogicalStructure . TableTRElement headTrElement = tableTHeadElement . CreateTR ();
headTrElement . AlternativeText = "Head Row" ;
for ( colIndex = 0 ; colIndex < colCount ; colIndex ++)
{
Aspose . Pdf . LogicalStructure . TableTHElement thElement = headTrElement . CreateTH ();
thElement . SetText ( string . Format ( "Head {0}" , colIndex ));
}
for ( rowIndex = 0 ; rowIndex < rowCount ; rowIndex ++)
{
Aspose . Pdf . LogicalStructure . TableTRElement trElement = tableTBodyElement . CreateTR ();
trElement . AlternativeText = string . Format ( "Row {0}" , rowIndex );
trElement . BackgroundColor = Aspose . Pdf . Color . LightGoldenrodYellow ;
trElement . Border = new Aspose . Pdf . BorderInfo ( Aspose . Pdf . BorderSide . All , 0.75F , Aspose . Pdf . Color . DarkGray );
trElement . DefaultCellBorder = new Aspose . Pdf . BorderInfo ( Aspose . Pdf . BorderSide . All , 0.50F , Aspose . Pdf . Color . Blue );
trElement . MinRowHeight = 100.0 ;
trElement . FixedRowHeight = 120.0 ;
trElement . IsInNewPage = ( rowIndex % 3 == 1 );
trElement . IsRowBroken = true ;
var cellTextState = new Aspose . Pdf . Text . TextState ();
cellTextState . ForegroundColor = Aspose . Pdf . Color . Red ;
trElement . DefaultCellTextState = cellTextState ;
trElement . DefaultCellPadding = new Aspose . Pdf . MarginInfo ( 16.0 , 2.0 , 8.0 , 2.0 );
trElement . VerticalAlignment = Aspose . Pdf . VerticalAlignment . Bottom ;
for ( colIndex = 0 ; colIndex < colCount ; colIndex ++)
{
Aspose . Pdf . LogicalStructure . TableTDElement tdElement = trElement . CreateTD ();
tdElement . SetText ( string . Format ( "Cell [{0}, {1}]" , rowIndex , colIndex ));
}
}
Aspose . Pdf . LogicalStructure . TableTRElement footTrElement = tableTFootElement . CreateTR ();
footTrElement . AlternativeText = "Foot Row" ;
for ( colIndex = 0 ; colIndex < colCount ; colIndex ++)
{
Aspose . Pdf . LogicalStructure . TableTDElement tdElement = footTrElement . CreateTD ();
tdElement . SetText ( string . Format ( "Foot {0}" , colIndex ));
}
document1 . Save ( dataDir + "StyleTableRow_out.pdf" );
using var document2 = new Aspose . Pdf . Document ( dataDir + "StyleTableRow_out.pdf" );
bool isPdfUaCompliance = document2 . Validate ( dataDir + "StyleTableRow_log.xml" , Aspose . Pdf . PdfFormat . PDF_UA_1 );
Console . WriteLine ( string . Format ( "PDF/UA compliance: {0}" , isPdfUaCompliance ));
}
테이블 셀 스타일 지정
Aspose.PDF for .NET은 태그가 있는 PDF 문서에서 테이블 셀을 스타일링할 수 있게 합니다. 테이블 셀을 스타일링하려면 TableCellElement 클래스의 속성을 사용할 수 있습니다. 다음은 테이블 셀을 스타일링하는 데 사용할 수 있는 속성 목록입니다:
다음 코드 스니펫은 태그가 있는 PDF 문서에서 테이블 셀을 스타일링하는 방법을 보여줍니다:
.NET Core 3.1
Copy
private static void StyleTableCell ( )
{
var dataDir = RunExamples . GetDataDir_AsposePdf_WorkingDocuments ();
using ( var document = new Aspose . Pdf . Document ())
{
Aspose . Pdf . Tagged . ITaggedContent taggedContent = document . TaggedContent ;
taggedContent . SetTitle ( "Example table cell style" );
taggedContent . SetLanguage ( "en-US" );
Aspose . Pdf . LogicalStructure . StructureElement rootElement = taggedContent . RootElement ;
Aspose . Pdf . LogicalStructure . TableElement tableElement = taggedContent . CreateTableElement ();
rootElement . AppendChild ( tableElement );
Aspose . Pdf . LogicalStructure . TableTHeadElement tableTHeadElement = tableElement . CreateTHead ();
Aspose . Pdf . LogicalStructure . TableTBodyElement tableTBodyElement = tableElement . CreateTBody ();
Aspose . Pdf . LogicalStructure . TableTFootElement tableTFootElement = tableElement . CreateTFoot ();
int rowCount = 4 ;
int colCount = 4 ;
int rowIndex ;
int colIndex ;
Aspose . Pdf . LogicalStructure . TableTRElement headTrElement = tableTHeadElement . CreateTR ();
headTrElement . AlternativeText = "Head Row" ;
for ( colIndex = 0 ; colIndex < colCount ; colIndex ++)
{
Aspose . Pdf . LogicalStructure . TableTHElement thElement = headTrElement . CreateTH ();
thElement . SetText ( string . Format ( "Head {0}" , colIndex ));
thElement . BackgroundColor = Aspose . Pdf . Color . GreenYellow ;
thElement . Border = new Aspose . Pdf . BorderInfo ( Aspose . Pdf . BorderSide . All , 4.0F , Aspose . Pdf . Color . Gray );
thElement . IsNoBorder = true ;
thElement . Margin = new Aspose . Pdf . MarginInfo ( 16.0 , 2.0 , 8.0 , 2.0 );
thElement . Alignment = Aspose . Pdf . HorizontalAlignment . Right ;
}
for ( rowIndex = 0 ; rowIndex < rowCount ; rowIndex ++)
{
Aspose . Pdf . LogicalStructure . TableTRElement trElement = tableTBodyElement . CreateTR ();
trElement . AlternativeText = string . Format ( "Row {0}" , rowIndex );
for ( colIndex = 0 ; colIndex < colCount ; colIndex ++)
{
int colSpan = 1 ;
int rowSpan = 1 ;
if ( colIndex == 1 && rowIndex == 1 )
{
colSpan = 2 ;
rowSpan = 2 ;
}
else if ( colIndex == 2 && ( rowIndex == 1 || rowIndex == 2 ))
{
continue ;
}
else if ( rowIndex == 2 && ( colIndex == 1 || colIndex == 2 ))
{
continue ;
}
Aspose . Pdf . LogicalStructure . TableTDElement tdElement = trElement . CreateTD ();
tdElement . SetText ( string . Format ( "Cell [{0}, {1}]" , rowIndex , colIndex ));
tdElement . BackgroundColor = Aspose . Pdf . Color . Yellow ;
tdElement . Border = new Aspose . Pdf . BorderInfo ( Aspose . Pdf . BorderSide . All , 4.0F , Aspose . Pdf . Color . Gray );
tdElement . IsNoBorder = false ;
tdElement . Margin = new Aspose . Pdf . MarginInfo ( 8.0 , 2.0 , 8.0 , 2.0 );
tdElement . Alignment = Aspose . Pdf . HorizontalAlignment . Center ;
var cellTextState = new Aspose . Pdf . Text . TextState ();
cellTextState . ForegroundColor = Aspose . Pdf . Color . DarkBlue ;
cellTextState . FontSize = 7.5F ;
cellTextState . FontStyle = Aspose . Pdf . Text . FontStyles . Bold ;
cellTextState . Font = Aspose . Pdf . Text . FontRepository . FindFont ( "Arial" );
tdElement . DefaultCellTextState = cellTextState ;
tdElement . IsWordWrapped = true ;
tdElement . VerticalAlignment = Aspose . Pdf . VerticalAlignment . Center ;
tdElement . ColSpan = colSpan ;
tdElement . RowSpan = rowSpan ;
}
}
Aspose . Pdf . LogicalStructure . TableTRElement footTrElement = tableTFootElement . CreateTR ();
footTrElement . AlternativeText = "Foot Row" ;
for ( colIndex = 0 ; colIndex < colCount ; colIndex ++)
{
Aspose . Pdf . LogicalStructure . TableTDElement tdElement = footTrElement . CreateTD ();
tdElement . SetText ( string . Format ( "Foot {0}" , colIndex ));
}
document . Save ( dataDir + "StyleTableCell_out.pdf" );
}
using ( var document = new Aspose . Pdf . Document ( dataDir + "StyleTableCell_out.pdf" ))
{
bool isPdfUaCompliance = document . Validate ( dataDir + "StyleTableCell_log.xml" , Aspose . Pdf . PdfFormat . PDF_UA_1 );
Console . WriteLine ( string . Format ( "PDF/UA compliance: {0}" , isPdfUaCompliance ));
}
}
.NET 8
Copy
private static void StyleTableCell ( )
{
var dataDir = RunExamples . GetDataDir_AsposePdf_WorkingDocuments ();
using var document1 = new Aspose . Pdf . Document ();
Aspose . Pdf . Tagged . ITaggedContent taggedContent = document1 . TaggedContent ;
taggedContent . SetTitle ( "Example table cell style" );
taggedContent . SetLanguage ( "en-US" );
Aspose . Pdf . LogicalStructure . StructureElement rootElement = taggedContent . RootElement ;
Aspose . Pdf . LogicalStructure . TableElement tableElement = taggedContent . CreateTableElement ();
rootElement . AppendChild ( tableElement );
Aspose . Pdf . LogicalStructure . TableTHeadElement tableTHeadElement = tableElement . CreateTHead ();
Aspose . Pdf . LogicalStructure . TableTBodyElement tableTBodyElement = tableElement . CreateTBody ();
Aspose . Pdf . LogicalStructure . TableTFootElement tableTFootElement = tableElement . CreateTFoot ();
int rowCount = 4 ;
int colCount = 4 ;
int rowIndex ;
int colIndex ;
Aspose . Pdf . LogicalStructure . TableTRElement headTrElement = tableTHeadElement . CreateTR ();
headTrElement . AlternativeText = "Head Row" ;
for ( colIndex = 0 ; colIndex < colCount ; colIndex ++)
{
Aspose . Pdf . LogicalStructure . TableTHElement thElement = headTrElement . CreateTH ();
thElement . SetText ( string . Format ( "Head {0}" , colIndex ));
thElement . BackgroundColor = Aspose . Pdf . Color . GreenYellow ;
thElement . Border = new Aspose . Pdf . BorderInfo ( Aspose . Pdf . BorderSide . All , 4.0F , Aspose . Pdf . Color . Gray );
thElement . IsNoBorder = true ;
thElement . Margin = new Aspose . Pdf . MarginInfo ( 16.0 , 2.0 , 8.0 , 2.0 );
thElement . Alignment = Aspose . Pdf . HorizontalAlignment . Right ;
}
for ( rowIndex = 0 ; rowIndex < rowCount ; rowIndex ++)
{
Aspose . Pdf . LogicalStructure . TableTRElement trElement = tableTBodyElement . CreateTR ();
trElement . AlternativeText = string . Format ( "Row {0}" , rowIndex );
for ( colIndex = 0 ; colIndex < colCount ; colIndex ++)
{
int colSpan = 1 ;
int rowSpan = 1 ;
if ( colIndex == 1 && rowIndex == 1 )
{
colSpan = 2 ;
rowSpan = 2 ;
}
else if ( colIndex == 2 && ( rowIndex == 1 || rowIndex == 2 ))
{
continue ;
}
else if ( rowIndex == 2 && ( colIndex == 1 || colIndex == 2 ))
{
continue ;
}
Aspose . Pdf . LogicalStructure . TableTDElement tdElement = trElement . CreateTD ();
tdElement . SetText ( string . Format ( "Cell [{0}, {1}]" , rowIndex , colIndex ));
tdElement . BackgroundColor = Aspose . Pdf . Color . Yellow ;
tdElement . Border = new Aspose . Pdf . BorderInfo ( Aspose . Pdf . BorderSide . All , 4.0F , Aspose . Pdf . Color . Gray );
tdElement . IsNoBorder = false ;
tdElement . Margin = new Aspose . Pdf . MarginInfo ( 8.0 , 2.0 , 8.0 , 2.0 );
tdElement . Alignment = Aspose . Pdf . HorizontalAlignment . Center ;
var cellTextState = new Aspose . Pdf . Text . TextState ();
cellTextState . ForegroundColor = Aspose . Pdf . Color . DarkBlue ;
cellTextState . FontSize = 7.5F ;
cellTextState . FontStyle = Aspose . Pdf . Text . FontStyles . Bold ;
cellTextState . Font = Aspose . Pdf . Text . FontRepository . FindFont ( "Arial" );
tdElement . DefaultCellTextState = cellTextState ;
tdElement . IsWordWrapped = true ;
tdElement . VerticalAlignment = Aspose . Pdf . VerticalAlignment . Center ;
tdElement . ColSpan = colSpan ;
tdElement . RowSpan = rowSpan ;
}
}
Aspose . Pdf . LogicalStructure . TableTRElement footTrElement = tableTFootElement . CreateTR ();
footTrElement . AlternativeText = "Foot Row" ;
for ( colIndex = 0 ; colIndex < colCount ; colIndex ++)
{
Aspose . Pdf . LogicalStructure . TableTDElement tdElement = footTrElement . CreateTD ();
tdElement . SetText ( string . Format ( "Foot {0}" , colIndex ));
}
document1 . Save ( dataDir + "StyleTableCell_out.pdf" );
using var document2 = new Aspose . Pdf . Document ( dataDir + "StyleTableCell_out.pdf" );
bool isPdfUaCompliance = document2 . Validate ( dataDir + "StyleTableCell_log.xml" , Aspose . Pdf . PdfFormat . PDF_UA_1 );
Console . WriteLine ( string . Format ( "PDF/UA compliance: {0}" , isPdfUaCompliance ));
}
테이블 위치 조정
다음 코드 스니펫은 태그가 있는 PDF 문서에서 테이블 위치를 조정하는 방법을 보여줍니다:
.NET Core 3.1
Copy
private static void AdjustTablePosition ( )
{
var dataDir = RunExamples . GetDataDir_AsposePdf_WorkingDocuments ();
using ( var document = new Aspose . Pdf . Document ())
{
var taggedContent = document . TaggedContent ;
taggedContent . SetTitle ( "Example table cell style" );
taggedContent . SetLanguage ( "en-US" );
var rootElement = taggedContent . RootElement ;
var tableElement = taggedContent . CreateTableElement ();
rootElement . AppendChild ( tableElement );
var positionSettings = new Aspose . Pdf . Tagged . PositionSettings
{
HorizontalAlignment = Aspose . Pdf . HorizontalAlignment . None ,
Margin = new Aspose . Pdf . MarginInfo
{
Left = 20 ,
Right = 0 ,
Top = 0 ,
Bottom = 0
},
VerticalAlignment = Aspose . Pdf . VerticalAlignment . None ,
IsFirstParagraphInColumn = false ,
IsKeptWithNext = false ,
IsInNewPage = false ,
IsInLineParagraph = false
};
tableElement . AdjustPosition ( positionSettings );
var tableTHeadElement = tableElement . CreateTHead ();
var tableTBodyElement = tableElement . CreateTBody ();
var tableTFootElement = tableElement . CreateTFoot ();
var rowCount = 4 ;
var colCount = 4 ;
int rowIndex ;
int colIndex ;
var headTrElement = tableTHeadElement . CreateTR ();
headTrElement . AlternativeText = "Head Row" ;
for ( colIndex = 0 ; colIndex < colCount ; colIndex ++)
{
var thElement = headTrElement . CreateTH ();
thElement . SetText ( string . Format ( "Head {0}" , colIndex ));
thElement . BackgroundColor = Aspose . Pdf . Color . GreenYellow ;
thElement . Border = new Aspose . Pdf . BorderInfo ( Aspose . Pdf . BorderSide . All , 4.0F , Aspose . Pdf . Color . Gray );
thElement . IsNoBorder = true ;
thElement . Margin = new Aspose . Pdf . MarginInfo ( 16.0 , 2.0 , 8.0 , 2.0 );
thElement . Alignment = Aspose . Pdf . HorizontalAlignment . Right ;
}
for ( rowIndex = 0 ; rowIndex < rowCount ; rowIndex ++)
{
var trElement = tableTBodyElement . CreateTR ();
trElement . AlternativeText = string . Format ( "Row {0}" , rowIndex );
for ( colIndex = 0 ; colIndex < colCount ; colIndex ++)
{
var colSpan = 1 ;
var rowSpan = 1 ;
if ( colIndex == 1 && rowIndex == 1 )
{
colSpan = 2 ;
rowSpan = 2 ;
}
else if ( colIndex == 2 && ( rowIndex == 1 || rowIndex == 2 ))
{
continue ;
}
else if ( rowIndex == 2 && ( colIndex == 1 || colIndex == 2 ))
{
continue ;
}
var tdElement = trElement . CreateTD ();
tdElement . SetText ( string . Format ( "Cell [{0}, {1}]" , rowIndex , colIndex ));
tdElement . BackgroundColor = Aspose . Pdf . Color . Yellow ;
tdElement . Border = new Aspose . Pdf . BorderInfo ( Aspose . Pdf . BorderSide . All , 4.0F , Aspose . Pdf . Color . Gray );
tdElement . IsNoBorder = false ;
tdElement . Margin = new Aspose . Pdf . MarginInfo ( 8.0 , 2.0 , 8.0 , 2.0 );
tdElement . Alignment = Aspose . Pdf . HorizontalAlignment . Center ;
var cellTextState = new Aspose . Pdf . Text . TextState ();
cellTextState . ForegroundColor = Aspose . Pdf . Color . DarkBlue ;
cellTextState . FontSize = 7.5F ;
cellTextState . FontStyle = Aspose . Pdf . Text . FontStyles . Bold ;
cellTextState . Font = Aspose . Pdf . Text . FontRepository . FindFont ( "Arial" );
tdElement . DefaultCellTextState = cellTextState ;
tdElement . IsWordWrapped = true ;
tdElement . VerticalAlignment = Aspose . Pdf . VerticalAlignment . Center ;
tdElement . ColSpan = colSpan ;
tdElement . RowSpan = rowSpan ;
}
}
var footTrElement = tableTFootElement . CreateTR ();
footTrElement . AlternativeText = "Foot Row" ;
for ( colIndex = 0 ; colIndex < colCount ; colIndex ++)
{
var tdElement = footTrElement . CreateTD ();
tdElement . SetText ( string . Format ( "Foot {0}" , colIndex ));
}
document . Save ( dataDir + "AdjustTablePosition_out.pdf" );
}
using ( var document = new Aspose . Pdf . Document ( dataDir + "AdjustTablePosition_out.pdf" ))
{
var isPdfUaCompliance = document . Validate ( dataDir + "AdjustTablePosition_log.xml" , Aspose . Pdf . PdfFormat . PDF_UA_1 );
Console . WriteLine ( string . Format ( "PDF/UA compliance: {0}" , isPdfUaCompliance ));
}
}
.NET 8
Copy
private static void AdjustTablePosition ( )
{
var dataDir = RunExamples . GetDataDir_AsposePdf_WorkingDocuments ();
using var document = new Aspose . Pdf . Document ();
var taggedContent = document . TaggedContent ;
taggedContent . SetTitle ( "Example table cell style" );
taggedContent . SetLanguage ( "en-US" );
var rootElement = taggedContent . RootElement ;
var tableElement = taggedContent . CreateTableElement ();
rootElement . AppendChild ( tableElement );
var positionSettings = new Aspose . Pdf . Tagged . PositionSettings
{
HorizontalAlignment = Aspose . Pdf . HorizontalAlignment . None ,
Margin = new Aspose . Pdf . MarginInfo
{
Left = 20 ,
Right = 0 ,
Top = 0 ,
Bottom = 0
},
VerticalAlignment = Aspose . Pdf . VerticalAlignment . None ,
IsFirstParagraphInColumn = false ,
IsKeptWithNext = false ,
IsInNewPage = false ,
IsInLineParagraph = false
};
tableElement . AdjustPosition ( positionSettings );
var tableTHeadElement = tableElement . CreateTHead ();
var tableTBodyElement = tableElement . CreateTBody ();
var tableTFootElement = tableElement . CreateTFoot ();
var rowCount = 4 ;
var colCount = 4 ;
int rowIndex ;
int colIndex ;
var headTrElement = tableTHeadElement . CreateTR ();
headTrElement . AlternativeText = "Head Row" ;
for ( colIndex = 0 ; colIndex < colCount ; colIndex ++)
{
var thElement = headTrElement . CreateTH ();
thElement . SetText ( string . Format ( "Head {0}" , colIndex ));
thElement . BackgroundColor = Aspose . Pdf . Color . GreenYellow ;
thElement . Border = new Aspose . Pdf . BorderInfo ( Aspose . Pdf . BorderSide . All , 4.0F , Aspose . Pdf . Color . Gray );
thElement . IsNoBorder = true ;
thElement . Margin = new Aspose . Pdf . MarginInfo ( 16.0 , 2.0 , 8.0 , 2.0 );
thElement . Alignment = Aspose . Pdf . HorizontalAlignment . Right ;
}
for ( rowIndex = 0 ; rowIndex < rowCount ; rowIndex ++)
{
var trElement = tableTBodyElement . CreateTR ();
trElement . AlternativeText = string . Format ( "Row {0}" , rowIndex );
for ( colIndex = 0 ; colIndex < colCount ; colIndex ++)
{
var colSpan = 1 ;
var rowSpan = 1 ;
if ( colIndex == 1 && rowIndex == 1 )
{
colSpan = 2 ;
rowSpan = 2 ;
}
else if ( colIndex == 2 && ( rowIndex == 1 || rowIndex == 2 ))
{
continue ;
}
else if ( rowIndex == 2 && ( colIndex == 1 || colIndex == 2 ))
{
continue ;
}
var tdElement = trElement . CreateTD ();
tdElement . SetText ( string . Format ( "Cell [{0}, {1}]" , rowIndex , colIndex ));
tdElement . BackgroundColor = Aspose . Pdf . Color . Yellow ;
tdElement . Border = new Aspose . Pdf . BorderInfo ( Aspose . Pdf . BorderSide . All , 4.0F , Aspose . Pdf . Color . Gray );
tdElement . IsNoBorder = false ;
tdElement . Margin = new Aspose . Pdf . MarginInfo ( 8.0 , 2.0 , 8.0 , 2.0 );
tdElement . Alignment = Aspose . Pdf . HorizontalAlignment . Center ;
var cellTextState = new Aspose . Pdf . Text . TextState ();
cellTextState . ForegroundColor = Aspose . Pdf . Color . DarkBlue ;
cellTextState . FontSize = 7.5F ;
cellTextState . FontStyle = Aspose . Pdf . Text . FontStyles . Bold ;
cellTextState . Font = Aspose . Pdf . Text . FontRepository . FindFont ( "Arial" );
tdElement . DefaultCellTextState = cellTextState ;
tdElement . IsWordWrapped = true ;
tdElement . VerticalAlignment = Aspose . Pdf . VerticalAlignment . Center ;
tdElement . ColSpan = colSpan ;
tdElement . RowSpan = rowSpan ;
}
}
var footTrElement = tableTFootElement . CreateTR ();
footTrElement . AlternativeText = "Foot Row" ;
for ( colIndex = 0 ; colIndex < colCount ; colIndex ++)
{
var tdElement = footTrElement . CreateTD ();
tdElement . SetText ( string . Format ( "Foot {0}" , colIndex ));
}
document . Save ( dataDir + "AdjustTablePosition_out.pdf" );
using var documentOut = new Aspose . Pdf . Document ( dataDir + "AdjustTablePosition_out.pdf" );
var isPdfUaCompliance = documentOut . Validate ( dataDir + "AdjustTablePosition_log.xml" , Aspose . Pdf . PdfFormat . PDF_UA_1 );
Console . WriteLine ( string . Format ( "PDF/UA compliance: {0}" , isPdfUaCompliance ));
}