read pages leer existing con java pdf pdfbox

java - pages - PDFBox-encontrar las dimensiones de la página



pdfbox read pdf (3)

¿Cómo puedo encontrar (en mm) el ancho y el alto de una página pdf utilizando PDFBox? Actualmente estoy usando esto:

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

pero el resultado es (no en mm):

842.0 595.22


Las coordenadas en los puntos DTP se definen como: 1 pt = 1/72 pulgada = 25.4 / 72 mm

Podrías escribir un método como este:

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


Las unidades de medida dentro de un PDF están en points , una unidad de medida de la industria gráfica tradicional. Adobe usa la siguiente definición:

1 pt = 1/72 inch

y como una pulgada se define para que sea exactamente 25.4 mm (¡en serio!), puede convertir de puntos a mm usando la fórmula

mm = pt*25.4 / 72

Sus valores, por cierto, se traducen (libremente) a las dimensiones del papel A4 210 x 297 mm. ("Loosely", por 2 razones. Primero: A x las dimensiones se derivan de 1 metro cuadrado, en el sistema métrico. Los puntos se basan (según el uso de Adobe) en el sistema imperial; por lo tanto, todas las conversiones entre puntos y milímetros son aproximaciones Segundo: el valor dado en mm para A4 también se redondea. Los tamaños relativos y absolutos de x se basan en un número irracional .

Nota

Dentro de un flujo de objetos, las unidades de medida se pueden escalar a otra cosa. Lo anterior solo es cierto para los objetos base de nivel superior.


Si el documento se crea con un DPI diferente a 72, use la fórmula más general:

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; }

Puede encontrar más en https://forums.indigorose.com/forum/indigo-rose-software/developer-s-den/13282-what-is-the-size-of-a4-in-px

A4 es un formato de documento, como una imagen de pantalla que dependerá de la resolución de la imagen, por ejemplo, un documento A4 redimensionado a:

  • 72 dpi (web) = 595 x 842 pixeles
  • 300 ppp (impresión) = 2480 X 3508 píxeles (Esto es "A4" como lo conozco, es decir, "210mm X 297mm @ 300 dpi")
  • 600 ppp (impresión) = 4960 X 7016 píxeles

Etcétera. Los formatos de documentos FWIW como A4 se describen por sus dimensiones de impresión (milímetros), que es algo completamente diferente a las imágenes de pantalla (píxeles), por lo que no ve a nadie que use píxeles para describir A4. :sí