Я автор CAM :: PDF.
Ну, здесь есть две части. Одним из них является размер страницы, как вы заметили. Это работает, как и ожидалось: я использовал Apple Preview.app, чтобы вращать файл PDF, и запустил эти две командные строки:
perl -MCAM::PDF -le'print "@{[CAM::PDF->new(shift)->getPageDimensions(1)]}"' orig.pdf
0 0 612 792
perl -MCAM::PDF -le'print "@{[CAM::PDF->new(shift)->getPageDimensions(1)]}"' rotated.pdf
0 0 792 612
Но есть также атрибут страницы `/ Rotate '. Аргумент является числом градусов (по умолчанию 0, но 90 или 270 не редкость). Как и размеры страницы, это наследуемое свойство, поэтому вам нужно переходить на родительские страницы. Вот быстрый и грязный инструмент командной строки для вывода значения вращения:
use CAM::PDF;
my $filename = shift || die;
my $pagenum = shift || die;
my $pdf = CAM::PDF->new($filename) || die;
my $pagedict = $pdf->getPage($pagenum);
my $rotate = 0;
while ($pagedict) {
$rotate = $pdf->getValue($pagedict->{Rotate});
if (defined $rotate) {
last;
}
my $parent = $pagedict->{Parent};
$pagedict = $parent && $pdf->getValue($parent);
}
print "/Rotate $rotate\n";