PDFBox - найти размеры страницы
Как я могу найти (в мм) ширину и высоту страницы pdf с помощью PDFBox? В настоящее время я использую это:
System.out.println(page.getMediaBox().getHeight());
System.out.println(page.getMediaBox().getWidth());
но результат (не в мм):
842.0
595.22
Ответы
Ответ 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.: Да