Hi Mophiematt
You can dynamically add components to any part of the content easily using the FindAComponentByID or FindAComponentByName methods on the PDFDocument class or the TryFindAComponentByID<T> extension methods for strongly typed returned values.
There is also the PlaceHolder component which is designed specifically to hold other components without fixing the layout.
So in your template content add the placeholder wherever you need to.
<pdf:Page id="ToAddContentTo" >
<Content>
Content above
<pdf:Div >Inline contents
<pdf:PlaceHolder id="AddHere" />
</pdf:Div>
And content below.
</Content>
</pdf:Page>
And in your code behind.
using (Scryber.Components.PDFDocument doc = Scryber.Components.PDFDocument.ParseDocument(path))
{
//Add your content to the place holder as required.
PDFPlaceHolder dynamic;
if (doc.TryFindAComponentByID("AddHere", out dynamic))
{
dynamic.Contents.Add(CreateInfoTable(infoStrArray, InfoForPDF));
}
else
{
//take appropriate action
}
doc.ProcessDocument(this.Response);
}
The document and its contents are full instances - you can do whatever you wish with them before processing.