Как запросить размер страницы pdf из командной строки?

Для сценариев мне нужно получить размер страницы PDF-файла (в мм).

pdfinfo просто печатает его в 'pts', например:

 Page size: 624 x 312 pts 

Что я должен использовать?

Или какая единица – «оч» в любом случае – в случае, если я хочу их преобразовать …

  • Создайте pdf-файл, из которого невозможно извлечь изображения
  • Как проследить, почему печать pdf из Ghostscript vs Evince отличается?
  • Как преобразовать этот файл chm в pdf?
  • Imagemagick конвертирует неправильно размеры ландшафта pdfs
  • Подпишите файл PDF, чтобы проверить целостность и достоверность
  • Как изменить подстановки шрифтов в kpdf?
  • Как конвертировать отсканированный PDF-файл с текстом OCRed в текст без текста OCRed?
  • Сценарий Bash с использованием pdfencrypt не работает для определенных символов
  • 3 Solutions collect form web for “Как запросить размер страницы pdf из командной строки?”

    Единица «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).

    Выйдя по одной и той же проблеме, вы пришли к следующему решению. Я не попал в документацию о том, как создаются pdf-файлы. Я просто сравнил два пустых файла PDF с разными размерами страниц.

    Похоже, что в pdf-файлах есть всевозможные атрибуты, встроенные между «<<» и «>>». Я обнаружил, что информация о размере страницы существует в виде простого текста и может быть найден простым поиском регулярных выражений.

    Это может быть или не быть верным для всех PDF-файлов, но это работало на всех, что я мог найти из разных источников.

    Соответствующая часть может выглядеть как любая из них для страницы формата А4:

     /MediaBox [0 0 595 842] /MediaBox[0 0 595 842] /MediaBox[ 0 0 595.32 841.92] 

    Это означает [0 0 width height], так что вот мое супер хромое, но рабочее решение, чтобы извлечь это:

     cat test.pdf | egrep -ao "/MediaBox ?\[ ?[0-9]+ [0-9]+ [0-9]+(\.[0-9]+)? [0-9]+(\.[0-9]+)?\]" | head -1 

    Просто измените файл test.pdf на свой файл.

    Linux и Unix - лучшая ОС в мире.