Hi,
Hi Tom,
Thanks
for using our API’s.<o:p></o:p>
I have tested the scenario and I am able to reproduce the same problem. For the sake of correction, I have logged it in our issue tracking system as PDFNEWNET-38026. We will investigate this issue in details and will keep you updated on the status of a correction.
We apologize for your inconvenience.
Hi Tom,tomwa:Is there an alternative method of getting the page size and/or orientation?
Aspose.Pdf.Facades.PdfFileInfo info = new PdfFileInfo();<o:p></o:p>
info.BindPdf("c:/pdftest/Mixed+Orientation.pdf");
string Orientation = (info.GetPageWidth(2)>info.GetPageHeight(2))?"Landsacepe":"Portrait";
Console.WriteLine("Height: " + info.GetPageHeight(2) + ", Width: " + info.GetPageWidth(2)+ ", Page Orientation: " + Orientation);
Thank you, Facades.PdfFileInfo worked as expected.
Hi Tom,
The PageInfo properties Width, Height, IsLandscape used in the attached code snippet is intended for using a PDF file generator and are not filled in when reading the file.
To reliably determine the orientation of the page, use the MediaBox property of the page.
If the width there is less (or equal) than the height, the page has a portrait orientation, otherwise landscape.
Page sizes can be determined using UserUnit (if specified) and MediaBox.Width, MediaBox.Height.
using (FileStream fs = new FileStream("c:/pdftest/Mixed+Orientation.pdf", FileMode.Open))
using (Document document = new Document(fs))
{
foreach (Page page in document.Pages)
{
var pageMediaBox = page.MediaBox;
var isLandscape = pageMediaBox.Width > pageMediaBox.Height; // reliably determined.
double userUnit = 72.0; // pixels per inch
if (page.EnginePage.PageInformation.UserUnit != null)
{
userUnit = 72.0 * page.EnginePage.PageInformation.UserUnit.ToDouble();
}
double k = 25.4 / userUnit;
var pageWidth = k * pageMediaBox.Width;
var pageHeight = k * pageMediaBox.Height;
Console.WriteLine("Height: " + pageHeight + ", Width: " + pageWidth + ", Landscape: " + isLandscape);
}
}