Подтвердить что ты не робот

PDFBox - найти размеры страницы

Как я могу найти (в мм) ширину и высоту страницы pdf с помощью PDFBox? В настоящее время я использую это:

System.out.println(page.getMediaBox().getHeight());
System.out.println(page.getMediaBox().getWidth());

но результат (не в мм):

842.0
595.22
4b9b3361

Ответ 1

Единицы измерения внутри PDF находятся в пунктах, традиционной единицы измерения графической индустрии. Adobe использует следующее определение:

1 pt = 1/72 inch

и поскольку один дюйм определен как ровно 25,4 мм (действительно!), вы можете преобразовать из точек в мм с помощью формулы

mm = pt*25.4 / 72

Ваши значения, между прочим, переводят (свободно) на формат A4 формата 210 x 297 мм. ( "Свободно" по двум причинам. Сначала: размеры A x производятся от 1 квадратного метра в метрической системе. Точки основаны (в соответствии с использованием Adobe) в имперской системе, поэтому все конверсии между точками и миллиметрами являются приближениями. Во-вторых: данное значение в мм для A4 округляется, а относительные и абсолютные размеры x основаны на иррациональный номер.)

Сноска

Внутри потока объектов единицы измерения могут быть масштабированы для чего-то еще. Вышеупомянутое относится только к базовым объектам верхнего уровня.

Ответ 2

Координаты в точках DTP определяются как: 1 pt = 1/72 дюйма = 25,4/72 мм

Вы можете написать такой метод:

public float pt2mm(float pt) {
   return pt * 25.4f / 72;
}

Ответ 3

Если документ создается с использованием другого DPI, чем 72, используйте более общую формулу:

public float pt2mmForWeb72dpi(float pt) {
   return pt2mm(pt,72);
}
public float pt2mmForPrint300dpi(float pt) {
   return pt2mm(pt,300);
}
public float pt2mmForPrint600dpi(float pt) {
   return pt2mm(pt,600);
}
public float pt2mm(float pt, float dpi) {
   return pt * 25.4f / dpi;
}

Вы можете найти больше на https://forums.indigorose.com/forum/indigo-rose-software/developer-s-den/13282-what-is-the-size-of-a4-in-px

A4 - это формат документа, в качестве изображения на экране, которое будет зависеть от разрешение изображения, например, документ формата A4, измененный для:

  • 72 dpi (веб) = 595 X 842 пикселей
  • 300 dpi (печать) = 2480 X 3508 пикселей (Это "A4", как я знаю, т.е. "210 мм X 297 мм @300 точек на дюйм" ).
  • 600 dpi (печать) = 4960 X 7016 пикселей

И так далее. Форматы документов FWIW, такие как A4, описываются их размеры печати (миллиметры), что совершенно другое, чем (пиксели), так что вы не видите никого, кто использует пиксели для описания A4.: Да