I have written a piece of code which uses the PdfSharp library. The instance of PdfSharp.Pdf.PdfDocument created saves to disk as expected. The right content is displayed, but onto the wrong page settings.
The default page settings for PdfSharp are:
My problem is that these settings seem to override the required settings.
I create the instance of PdfDocument class and adds a new instance of PdfPage class to its Pages collection property. Then, I setup the page like this:
I'm quite confused. I know of an option within Acrobat Reader that allows the user to change the page orientation without changing the text direction. No matter whether I check this option or not, still the wrong settings keep going.
Anyone has an idea? Thanks!
For some strange reason, PdfSharp seems not to behave the same with both the following:
Example 1 - It doesn't seem to associate the instance of PdfPage class to the PdfDocument even though the page settings are correct while calling and after having called the PdfDocument.Save() method.
var pdfDoc = new PdfDocument();
var pdfPage = pdfDoc.AddPage();
pdfPage.Orientation = PdfSharp.PageOrientation.Landscape;
pdfPage.Size = PdfSharp.PageSize.Letter;
pdfPage.Rotate = 0;
pdfDoc.Save(filename);
Example 2 - The same here...
var pdfDoc = new PdfDocument();
pdfDoc.Pages.Add();
pdfDoc.Pages[0].Orientation = PdfSharp.PageOrientation.Landscape;
pdfDoc.Pages[0].Size = PdfSharp.PageSize.Letter;
pdfDoc.Pages[0].Rotate = 0;
pdfDoc.Save(filename);
Example 3 - This seems to have solved my problem
var pdfPage = new PdfPage();
pdfPage.Orientation = PdfSharp.PageOrientation.Landscape;
pdfPage.Size = PdfSharp.PageSize.Letter;
pdfPage.Rotate = 0;
var pdfDoc = new PdfDocument();
pdfDoc.Pages.Add(pdfPage);
pdfDoc.Save(filename);
Anyone has any idea of what am I missing here? I seem to do the same in either of these examples, as far as I'm concerned.
Solution is:
var pdfPage = new PdfPage();
pdfPage.Size = PdfSharp.PageSize.Letter;
pdfPage.Orientation = PdfSharp.PageOrientation.Landscape;
pdfPage.Rotate = 0;
var pdfDoc = new PdfDocument();
pdfDoc.Pages.Add(pdfPage);
pdfDoc.Save(filename);
Set size first.
Thanks for any comments and/or answers!