If this isn't sufficient (e.g., if the second dimension causes the issue) you may need to break the two-part string into two separate fields, convert them to integers, and then sort on the pair.
Just for some perspective - the normalized version of this model would store the width and height measurements separately and your print_size text would be a presentation issue. Though the use of a lookup table may ease the usage of this somewhat.
Another possibility, one that I tend to avoid, would be to use an "enum" type here - which has the property that the elements of the enum have an order that is independent of the display value.
In short though, print_size as you've defined it is a composite value which should be broken down into its components during the process of normalization.