class PDF::Reader::OrientationDetector
Small util class for detecting the orientation of a single PDF page. Accounts for any page rotation that is in place.
OrientationDetector.new(:MediaBox => [0,0,612,792]).orientation => "portrait"
Public Class Methods
Source
# File lib/pdf/reader/orientation_detector.rb, line 12 def initialize(attributes) @attributes = attributes end
Public Instance Methods
Source
# File lib/pdf/reader/orientation_detector.rb, line 16 def orientation @orientation ||= detect_orientation end
Private Instance Methods
Source
# File lib/pdf/reader/orientation_detector.rb, line 22 def detect_orientation llx,lly,urx,ury = @attributes[:MediaBox] rotation = @attributes[:Rotate].to_i width = (urx.to_i - llx.to_i).abs height = (ury.to_i - lly.to_i).abs if width > height (rotation % 180).zero? ? 'landscape' : 'portrait' else (rotation % 180).zero? ? 'portrait' : 'landscape' end end