PDF PageInfo gives wrong dimensions

thanks. good evening

@pcaillol

The PageInfo properties Width, Height, IsLandscape used in the attached code snippet are intended for using a pdf file generator and are not filled in when reading 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 (Document document = new Document(fileName))
{
    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);
    }
}