'pts' единица, используемая pdfinfo
обозначает точку PostScript. Точка PostScript определяется с точки зрения дюйма и разрешения 72 точек на дюйм:
В конце 1980-х к 1990-м, традиционная точка вытеснялась точкой настольной издательской системы (также названный точкой PostScript), который был определен как 72 точки к дюйму (1 точка = 1⁄72 дюйма = 25.4⁄72 мм = 0.352¯7 мм [≙ 0,3528 мм]).
Руководство к gv
содержит список общих форматов бумаги, указанных в точках PostScript.
Не самый легкий путь, но данный imagemagick
и units
Вы могли также использовать
$ identify -verbose some.pdf | grep "Print size"
Print size: 8.26389x11.6944
для нахождения размера страницы в дюймах (это может привести к нескольким результатам, если PDF использует различные размеры) и затем преобразовывают числа как это:
$ units -t '8.26389 inch' 'mm'
209.90281
Подразумевать, что 8,26 дюймов составляют 209,9 мм (я использовал A4 PDF для этого).
Не самый легкий путь, но данный imagemagick
и units
Вы могли также использовать
$ identify -verbose some.pdf | grep "Print size"
Print size: 8.26389x11.6944
для нахождения размера страницы в дюймах (это может привести к нескольким результатам, если PDF использует различные размеры) и затем преобразовывают числа как это:
$ units -t '8.26389 inch' 'mm'
209.90281
Подразумевать, что 8,26 дюймов составляют 209,9 мм (я использовал A4 PDF для этого).
Обнаружил ту же проблему и пришел к следующему решению. Я не вдавался в документацию о том, как создаются файлы pdf, я просто сравнил два пустых файла pdf с разными размерами страниц.
Похоже, в PDF-файлах есть всевозможные атрибуты, заключенные между «<<» и «>>». Я обнаружил, что информация о размере страницы представлена в виде обычного текста и может быть найдена с помощью простого поиска по регулярному выражению.
Это может быть или не быть верным для всех PDF-файлов, но это сработало для всех, что я смог найти из разных источников.
Соответствующая часть может выглядеть как любая из этих для страницы формата A4:
/MediaBox [0 0 595 842]
/MediaBox[0 0 595 842]
/MediaBox[ 0 0 595.32 841.92]
Это означает [0 0 ширина и высота], так что вот мое супер хромое, но рабочее решение для извлечения этого:
cat test.pdf | egrep -ao "/MediaBox ?\[ ?[0-9]+ [0-9]+ [0-9]+(\.[0-9]+)? [0-9]+(\.[0-9]+)?\]" | head -1
Просто измените test.pdf в ваш файл.
Я использовал ответ maxchlepzigs для прямого вычисления мм:
$ pdfinfo test.pdf | grep "Page size" | grep -Eo '[-+]?[0-9]*\.?[0-9]+' | awk -v x=0.3528 '{print $1*x}'
это также работает с ответом Алекса Кнауфа, но идентификация занимает гораздо больше времени, чем pdfinfo, и требует imagemagick, однако преимущество в том, что вы можете использовать это для нескольких файлов (, т.е. путем перехода в каталог и использования*.pdf
):
$ identify -verbose some.pdf | grep "Print size" | grep -Eo '[-+]?[0-9]*\.?[0-9]+' | awk -v x=25.4 '{print $1*x}'
Вторая команда grep
получает два значения пункта/дюйма. Я почти уверен, что вы можете пропустить регулярное выражение grep и сделать это напрямую с помощью awk, но я не мог этого понять.
pdfinfo
иногда дает мне формат бумаги (какPage size: 595.28 x 841.89 pts (A4)
) — Интересно, делает ли это это для списка размеров страницы, это знает о? – njsg 27.05.2012, 23:45