Thanks for your help Thomas, got it working.
Here's my code for anyone else who needs to do this: (template is my pdf document which has been modified in prior code)
To swap side of spread:
Code:
MemoryStream stream = new MemoryStream();
template.Save(stream, false);
XPdfForm form = XPdfForm.FromStream(stream);
XRect pageRect = new XRect(0, 0, pageOne.Width, pageOne.Height);
template.Pages.Remove(pageOne);
PdfPage newPage = template.AddPage();
newPage.Orientation = PdfSharp.PageOrientation.Landscape;
newPage.Size = PdfSharp.PageSize.A4;
XGraphics canvasOneN = XGraphics.FromPdfPage(newPage);
canvasOneN.DrawImage(form, -(pageOne.Width / 2), 0, pageOne.Width, pageOne.Height);
canvasOneN.DrawImage(form, pageOne.Width / 2, 0, pageOne.Width, pageOne.Height);
template.Save(outputPath);
To turn A4 spread into two A4 pages:
Code:
MemoryStream stream = new MemoryStream();
template.Save(stream, false);
template.Pages.Remove(pageOne);
XPdfForm form = XPdfForm.FromStream(stream);
PdfPage largePageOne = template.AddPage();
largePageOne.Orientation = PdfSharp.PageOrientation.Portrait;
largePageOne.Size = PdfSharp.PageSize.A4;
PdfPage largePageTwo = template.AddPage();
largePageTwo.Orientation = PdfSharp.PageOrientation.Portrait;
largePageTwo.Size = PdfSharp.PageSize.A4;
XGraphics largeCanvasOne = XGraphics.FromPdfPage(largePageOne);
XGraphics largeCanvasTwo = XGraphics.FromPdfPage(largePageTwo);
largeCanvasOne.DrawImage(form, -(largePageOne.Width), 0, largePageTwo.Width * 2, largePageTwo.Height);
largeCanvasTwo.DrawImage(form, 0, 0, largePageTwo.Width * 2, largePageTwo.Height);
template.Save(outputPath);
My only issue now is a null reference exception when I try to save after setting the PdfSecuritySettings