Table |
The preferred width (along with the table's AutomaticallyResizeToFitContents option) determines how the actual width of the cell is calculated by the table layout algorithm. Table layout can be performed by SautinSoft.Document when it saves the document or by Microsoft Word when it displays the document.
The preferred width can be specified in points or in percent. The preferred width can also be specified as "auto", which means no preferred width is specified.
The default value is Auto.
See Developer Guide: How to create a plain table in a document
using System; using SautinSoft.Document; using SautinSoft.Document.Tables; namespace Sample { class Sample { static void Main(string[] args) { // Get your free 100-day key here: // https://sautinsoft.com/start-for-free/ AddSimpleTable(); } /// <summary> /// How to create a plain table in a document. /// </summary> /// <remarks> /// Details: https://sautinsoft.com/products/document/help/net/developer-guide/add-simple-table.php /// </remarks> public static void AddSimpleTable() { string documentPath = @"SimpleTable.pdf"; // Let's create a new document. DocumentCore dc = new DocumentCore(); // Add a new section. Section s = new Section(dc); dc.Sections.Add(s); // Let's create a plain table: 2x3, 100 mm of width. Table table = new Table(dc); double width = LengthUnitConverter.Convert(100, LengthUnit.Millimeter, LengthUnit.Point); table.TableFormat.PreferredWidth = new TableWidth(width, TableWidthUnit.Point); table.TableFormat.Alignment = HorizontalAlignment.Center; int counter = 0; // Add rows. int rows = 2; int columns = 3; for (int r = 0; r < rows; r++) { TableRow row = new TableRow(dc); // Add columns. for (int c = 0; c < columns; c++) { TableCell cell = new TableCell(dc); // Set cell formatting and width. cell.CellFormat.Borders.SetBorders(MultipleBorderTypes.Outside, BorderStyle.Dotted, Color.Black, 1.0); // Set the same width for each column. cell.CellFormat.PreferredWidth = new TableWidth(width / columns, TableWidthUnit.Point); if (counter % 2 == 1) cell.CellFormat.BackgroundColor = new Color("#358CCB"); row.Cells.Add(cell); // Let's add a paragraph with text into the each column. Paragraph p = new Paragraph(dc); p.ParagraphFormat.Alignment = HorizontalAlignment.Center; p.ParagraphFormat.SpaceBefore = LengthUnitConverter.Convert(3, LengthUnit.Millimeter, LengthUnit.Point); p.ParagraphFormat.SpaceAfter = LengthUnitConverter.Convert(3, LengthUnit.Millimeter, LengthUnit.Point); p.Content.Start.Insert(String.Format("{0}", (char)(counter + 'A')), new CharacterFormat() { FontName = "Arial", FontColor = new Color("#3399FF"), Size = 12.0 }); cell.Blocks.Add(p); counter++; } table.Rows.Add(row); } // Add the table into the section. s.Blocks.Add(table); // Save our document into PDF format. dc.Save(documentPath, new PdfSaveOptions() { Compliance = PdfCompliance.PDF_A1a }); // Open the result for demonstration purposes. System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo(documentPath) { UseShellExecute = true }); } } }
Imports System Imports System.IO Imports SautinSoft.Document Imports SautinSoft.Document.Tables Module Sample Sub Main() AddSimpleTable() End Sub ''' Get your free 100-day key here: ''' https://sautinsoft.com/start-for-free/ ''' <summary> ''' How to create a plain table in a document. ''' </summary> ''' <remarks> ''' Details: https://sautinsoft.com/products/document/help/net/developer-guide/add-simple-table.php ''' </remarks> Sub AddSimpleTable() Dim documentPath As String = "SimpleTable.pdf" ' Let's create a new document. Dim dc As New DocumentCore() ' Add a new section. Dim s As New Section(dc) dc.Sections.Add(s) ' Let's create a plain table: 2x3, 100 mm of width. Dim table As New Table(dc) Dim width As Double = LengthUnitConverter.Convert(100, LengthUnit.Millimeter, LengthUnit.Point) table.TableFormat.PreferredWidth = New TableWidth(width, TableWidthUnit.Point) table.TableFormat.Alignment = HorizontalAlignment.Center Dim counter As Integer = 0 ' Add rows. Dim rows As Integer = 2 Dim columns As Integer = 3 For r As Integer = 0 To rows - 1 Dim row As New TableRow(dc) ' Add columns. For c As Integer = 0 To columns - 1 Dim cell As New TableCell(dc) ' Set cell formatting and width. cell.CellFormat.Borders.SetBorders(MultipleBorderTypes.Outside, BorderStyle.Dotted, Color.Black, 1.0) ' Set the same width for each column. cell.CellFormat.PreferredWidth = New TableWidth(width / columns, TableWidthUnit.Point) If counter Mod 2 = 1 Then cell.CellFormat.BackgroundColor = New Color("#358CCB") End If row.Cells.Add(cell) ' Let's add a paragraph with text into the each column. Dim p As New Paragraph(dc) p.ParagraphFormat.Alignment = HorizontalAlignment.Center p.ParagraphFormat.SpaceBefore = LengthUnitConverter.Convert(3, LengthUnit.Millimeter, LengthUnit.Point) p.ParagraphFormat.SpaceAfter = LengthUnitConverter.Convert(3, LengthUnit.Millimeter, LengthUnit.Point) p.Content.Start.Insert(String.Format("{0}", ChrW(counter + AscW("A"c))), New CharacterFormat() With { .FontName = "Arial", .FontColor = New Color("#3399FF"), .Size = 12.0 }) cell.Blocks.Add(p) counter += 1 Next c table.Rows.Add(row) Next r ' Add the table into the section. s.Blocks.Add(table) ' Save our document into PDF format. dc.Save(documentPath, New PdfSaveOptions() With {.Compliance = PdfCompliance.PDF_A1a}) ' Open the result for demonstration purposes. System.Diagnostics.Process.Start(New System.Diagnostics.ProcessStartInfo(documentPath) With {.UseShellExecute = True}) End Sub End Module