I am new and learning as I go with Migradoc and PDFSharp. I am trying to set my TextFrame data above my table. My overall goal is to create an invoice.
Code:
public void DefineInvoice(Document document)
{
Section section = document.AddSection();
// create the text frame for address
TextFrame addressFrame = section.AddTextFrame();
addressFrame.Height = "3.0cm";
addressFrame.Width = "7.0cm";
addressFrame.Left = ShapePosition.Left;
addressFrame.RelativeHorizontal = RelativeHorizontal.Margin;
addressFrame.Top = "5.0cm";
addressFrame.RelativeVertical = RelativeVertical.Page;
//fill in address for text frame
Paragraph paragraph = addressFrame.AddParagraph();
paragraph.AddText("Nieto LLC");
paragraph.AddLineBreak();
paragraph.AddText("6110 Google Drive");
paragraph.AddLineBreak();
paragraph.AddText("Houston, TX 77309");
paragraph.AddLineBreak();
paragraph.AddText("P: 281-890-5899");
//define table
Table table = section.AddTable();
table.Borders.Width = 0.75;
Column column = table.AddColumn(Unit.FromCentimeter(7));
column.Format.Alignment = ParagraphAlignment.Center;
column = table.AddColumn(Unit.FromCentimeter(2));
column.Format.Alignment = ParagraphAlignment.Center;
column = table.AddColumn(Unit.FromCentimeter(2));
column.Format.Alignment = ParagraphAlignment.Center;
column = table.AddColumn(Unit.FromCentimeter(2));
column.Format.Alignment = ParagraphAlignment.Center;
column = table.AddColumn(Unit.FromCentimeter(2));
column.Format.Alignment = ParagraphAlignment.Center;
//define header of table
Row row = table.AddRow();
row.HeadingFormat = true;
Cell cell = row.Cells[0];
cell.AddParagraph("Item List");
cell.Format.Font.Bold = true;
cell = row.Cells[1];
cell.AddParagraph("Quantity");
cell.Format.Font.Bold = true;
cell = row.Cells[2];
cell.AddParagraph("Unit Price");
cell.Format.Font.Bold = true;
cell = row.Cells[3];
cell.AddParagraph("Tax");
cell.Format.Font.Bold = true;
cell = row.Cells[4];
cell.AddParagraph("Total Price");
cell.Format.Font.Bold = true;
//define one row of invoice information
row = table.AddRow();
cell = row.Cells[0];
cell.AddParagraph("Admin theme with psd project layouts");
cell = row.Cells[1];
cell.AddParagraph("1");
cell = row.Cells[2];
cell.AddParagraph("$26.00");
cell = row.Cells[3];
cell.AddParagraph("$5.98");
cell = row.Cells[4];
cell.AddParagraph("$31.98");
//define another row of invoice information
row = table.AddRow();
cell = row.Cells[0];
cell.AddParagraph("Wordpress Theme customization");
cell = row.Cells[1];
cell.AddParagraph("2");
cell = row.Cells[2];
cell.AddParagraph("$80.00");
cell = row.Cells[3];
cell.AddParagraph("$36.80");
cell = row.Cells[4];
cell.AddParagraph("$196.80");
//define another row of invoice information
row = table.AddRow();
cell = row.Cells[0];
cell.AddParagraph("Angular 9 and Node JS Application");
cell = row.Cells[1];
cell.AddParagraph("3");
cell = row.Cells[2];
cell.AddParagraph("$420.00");
cell = row.Cells[3];
cell.AddParagraph("$193.20");
cell = row.Cells[4];
cell.AddParagraph("$1033.20");
//add invisible row as a space line to the table
row = table.AddRow();
row.Borders.Visible = false;
//add the subtotal row
row = table.AddRow();
row.Cells[0].Borders.Visible = false;
row.Cells[0].AddParagraph("Sub Total:");
row.Cells[0].Format.Font.Bold = true;
row.Cells[0].Format.Alignment = ParagraphAlignment.Right;
row.Cells[0].MergeRight = 3;
//add tax row
row = table.AddRow();
row.Cells[0].Borders.Visible = false;
row.Cells[0].AddParagraph("TAX:");
row.Cells[0].Format.Font.Bold = true;
row.Cells[0].Format.Alignment = ParagraphAlignment.Right;
row.Cells[0].MergeRight = 3;
//add total
row = table.AddRow();
row.Cells[0].Borders.Visible = false;
row.Cells[0].AddParagraph("TOTAL:");
row.Cells[0].Format.Font.Bold = true;
row.Cells[0].Format.Alignment = ParagraphAlignment.Right;
row.Cells[0].MergeRight = 3;
}
The snapshot of how it looks can be found here:
https://stackoverflow.com/questions/618 ... -the-table