Posted by a ceTe Software moderator
Hello,
Regardless of the page size you can add page elements to the page and flow to the next page by keeping track of Y position. This will allow you to check for the available space on the page and then decide on adding next page element to the page. If the space available is not enough to fit page element then you can create a new Page and then add the page element to the new page. Below is the codes sample for adding page elements one below the other using calculated Y position. Image class doesn’t have an overflow method so it is not possible to overflow part of the image to the next page if it doesn’t fit.
float currentYPosition = 0;
Document document = new Document();
Page page = new Page();
document.Pages.Add(page);
string text = "Some Text::";
for(int i=0;i<7;i++)
{
text += text;
}
TextArea area = new TextArea(text, 0, 0, 300, 400);
area.Height = area.GetRequiredHeight();
page.Elements.Add(area);
currentYPosition = area.Y + area.Height;
//Adding another page element after the TextArea.
float Xposition=0;
float Yposition = currentYPosition + 5;
Label label = new Label(text, Xposition, Yposition, 400, (page.Dimensions.Body.Height - Yposition));
page.Elements.Add(label);
currentYPosition = label.Y + label.Height+10;
//checking for empty space in the page to add the new page element or else creating a new page and add the page element.
Page newPage=null ;
if (currentYPosition >= page.Dimensions.Body.Height)
{
newPage= new Page();
document.Pages.Add(newPage);
currentYPosition = 0;
}
Image image = new Image(@"C:\Temp\SampleImage.jpg",0,currentYPosition);
if(newPage != null)
{
newPage.Elements.Add(image);
}
document.Draw(@"C:\Temp\MyDocument.pdf");
Thanks,
ceTe Software Support Team.