Hi all,
I'm using RadPdfProcessing for ASP.NET MVC to create pdf template for financial documents. Sometimes content of some tables can be various length. In this case I'd like to move lower blocks/tables to a new page and generate pdf document with two pages. I'm using RadFixedDocument and FixedContentEditor to create tables/blocks on the document. Piece of ode below:
public
static
RadFixedDocument CreateDocument()
{
RadFixedDocument document =
new
RadFixedDocument();
RadFixedPage page =
new
RadFixedPage();
page.Size =
new
Size(600, 750);
FixedContentEditor editor =
new
FixedContentEditor(page);
document.Pages.Add(page);
editor.Position.Translate(defaultLeftIndent + 330, defaultTopIndent);
DrawTable(editor, maxWidth);
editor.Position.Translate(defaultLeftIndent, defaultTopIndent + 70);
DrawTitle(editor, maxWidth);
editor.Position.Translate(defaultLeftIndent, defaultTopIndent + 110);
DrawTableWithDetails(editor, maxWidth);
editor.Position.Translate(defaultLeftIndent, defaultTopIndent + 220);
DrawReceiverTable(editor, maxWidth);
private
static
void
DrawTable(FixedContentEditor editor,
double
maxWidth)
{
Table table =
new
Table();
table.LayoutType = TableLayoutType.AutoFit;
table.DefaultCellProperties.Padding =
new
Thickness(1);
#region FIRST ROW
TableRow firstRow = table.Rows.AddTableRow();
TableCell firstCell = firstRow.Cells.AddTableCell();
Block firstBlock = firstCell.Blocks.AddBlock();
firstBlock.TextProperties.FontSize = 10;
firstBlock.TextProperties.Font = FontsRepository.Helvetica;
firstBlock.InsertText(
"xxxxxxxxx"
);
TableCell secondCell = firstRow.Cells.AddTableCell();
Block secondBlock = secondCell.Blocks.AddBlock();
secondBlock.TextProperties.FontSize = 10;
secondBlock.TextProperties.Font = FontsRepository.Helvetica;
secondBlock.InsertText(
" xxxxxxxxx"
);
#endregion
editor.DrawTable(table,
new
Size(maxWidth,
double
.PositiveInfinity));
}
private
static
void
DrawTitle(FixedContentEditor editor,
double
maxWidth)
{
Block block =
new
Block();
block.HorizontalAlignment = Telerik.Windows.Documents.Fixed.Model.Editing.Flow.HorizontalAlignment.Center;
block.TextProperties.Font = FontsRepository.HelveticaBold;
block.TextProperties.FontSize = 16;
block.InsertText(
"xxxxxxxxx"
);
block.InsertText(
"<xxxxxxxxx>"
);
editor.DrawBlock(block,
new
Size(maxWidth,
double
.PositiveInfinity));
}
private
static
void
DrawTableWithDetails(FixedContentEditor editor,
double
maxWidth)
{
Table table =
new
Table();
table.LayoutType = TableLayoutType.FixedWidth;
table.DefaultCellProperties.Padding =
new
Thickness(1);
Border border =
new
Border();
Border whiteBorder =
new
Border(0, BorderStyle.None,
new
RgbColor(255, 255, 255));
table.DefaultCellProperties.Borders =
new
TableCellBorders(border, border, border, border);
#region FIRST ROW
TableRow firstRow = table.Rows.AddTableRow();
TableCell firstCell = firstRow.Cells.AddTableCell();
Block firstBlock = firstCell.Blocks.AddBlock();
firstBlock.TextProperties.Font = FontsRepository.HelveticaBold;
firstBlock.InsertText(
"xxxxxxxxx"
);
TableCell secondCell = firstRow.Cells.AddTableCell();
Block secondBlock = secondCell.Blocks.AddBlock();
secondBlock.TextProperties.Font = FontsRepository.HelveticaBold;
secondBlock.InsertText(
"xxxxxxxxx"
);
#endregion
#region SECOND ROW
TableRow secondRow = table.Rows.AddTableRow();
firstCell = secondRow.Cells.AddTableCell();
firstCell.Borders =
new
TableCellBorders(border, border, border, whiteBorder);
firstBlock = firstCell.Blocks.AddBlock();
firstBlock.TextProperties.FontSize = 10;
firstBlock.InsertText(
"xxxxxxxxx"
);
secondCell = secondRow.Cells.AddTableCell();
secondCell.Borders =
new
TableCellBorders(border, border, border, whiteBorder);
secondBlock = secondCell.Blocks.AddBlock();
secondBlock.TextProperties.FontSize = 10;
secondBlock.InsertText(
"xxxxxxxxx"
);
#endregion
editor.DrawTable(table,
new
Size(maxWidth,
double
.PositiveInfinity));
}
private
static
void
DrawReceiverTable(FixedContentEditor editor,
double
maxWidth)
{
Table table =
new
Table();
table.LayoutType = TableLayoutType.FixedWidth;
table.DefaultCellProperties.Padding =
new
Thickness(1);
Border border =
new
Border();
Border whiteBorder =
new
Border(0, BorderStyle.None,
new
RgbColor(255, 255, 255));
table.DefaultCellProperties.Borders =
new
TableCellBorders(border, border, border, border);
#region TABLE CONTENT
TableRow firstRow = table.Rows.AddTableRow();
TableCell firstCell = firstRow.Cells.AddTableCell();
Block firstBlock = firstCell.Blocks.AddBlock();
firstBlock.TextProperties.Font = FontsRepository.HelveticaBold;
firstBlock.InsertText(
"xxxxxxxxx"
);
TableRow secondRow = table.Rows.AddTableRow();
firstCell = secondRow.Cells.AddTableCell();
firstCell.Borders =
new
TableCellBorders(border, border, border, whiteBorder);
firstBlock = firstCell.Blocks.AddBlock();
firstBlock.TextProperties.FontSize = 10;
firstBlock.InsertText(
"xxxxxxxxx"
);
#endregion
editor.DrawBlock(table,
new
Size(maxWidth,
double
.PositiveInfinity));
}
}