¿Cómo puedo encontrar(en mm) de la anchura y la altura de una página de un pdf utilizando PDFBox? Actualmente, estoy usando esta:

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

pero el resultado es(no en mm):

842.0
595.22
InformationsquelleAutor John Smith | 2014-01-03

3 Comentarios

  1. 30

    Unidades de medida dentro de un PDF en puntos, un gráfico tradicional de la industria de unidad de medida. Adobe utiliza la siguiente definición:

    1 pt = 1/72 inch

    y desde una pulgada se define a ser exactamente 25.4 mm (de verdad!), usted puede convertir de puntos a mm usando la fórmula de

    mm = pt*25.4 / 72

    Sus valores, por la forma, traducir (sin apretar) para el papel de tamaño A4 210 x 297 mm. («Libremente», por 2 razones. Primero: Unx dimensiones se derivan de 1 metro cuadrado, en el sistema métrico. Los puntos se basan (según Adobe de uso) en el sistema imperial; por lo tanto, todas las conversiones entre los puntos y los milímetros son aproximaciones. Segundo: el valor dado en mm para A4 se redondea así. Unx absoluta y relativa de tamaños se basan en un número irracional.)

    Nota de pie de página

    Dentro de un objeto stream, unidades de medida pueden ser escalados a algo más. Lo anterior sólo es cierto para los de nivel superior de la base de objetos.

    • Es cierto que los valores son aproximados. Los valores correctos (redondeado a ocho decimales) para A4, que deriva de su definición (un documento con una superficie de 1/16 de m2) son 210,22410381 mm de ancho y 297,30177875 mm de altura. Los correspondientes valores en pulgadas y los puntos son 8,27653952″;11,70479444″ y 595,91084546 pt;842,74519961 pt, respectivamente, para los curiosos.
    • PDRectangle fuente de constantes para este cálculo: POINTS_PER_INCH = 72; POINTS_PER_MM = 1 / (10 * 2.54 f) * POINTS_PER_INCH, también los tamaños de papel, como A4,A5, etc
  2. 5

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

    Podría escribir un método como este:

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

    Si el documento es creado usando un tipo diferente de 72 DPI, a continuación, utilizar 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;
    }

    Usted puede encontrar más información 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 la pantalla que va a depender de
    la resolución de la imagen, por ejemplo un documento A4 tamaño a:

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

    Y así sucesivamente. FWIW formatos de documento como A4 son descritos por sus
    de impresión dimensiones (milímetros), que es algo muy diferente de lo que
    las imágenes de la pantalla (píxeles) y es por eso que no veo a nadie con pixels
    para describir A4. :sí

    • El PDF de usuario predeterminado unidades espaciales (que esta pregunta es acerca de y que de forma predeterminada un pt = 1/72″) son completamente independientes de DPI de la imagen de mapa de bits resoluciones (que su respuesta es «acerca de»).
    • He añadido esta respuesta porque he tenido el siguiente problema. Tengo un pdf producida por una ecografía en la que he encontrado una imagen de tamaño 2480×3508 píxeles y una de 3508×4963. Yo no sabía que el tamaño de la imagen está relacionada con el tamaño A4 o A3 tamaño de la página. Después de un forcejeo me di cuenta de que ambos donde escaneada a 300 ppp y uno era una página A4 y la segunda es una página A3.
    • Por lo que puedo ver de este post (stackoverflow.com/a/55700705/6120066). Esta respuesta parece incorrecto. Estaría interesada en escuchar lo que @raisercostin piensa.

Dejar respuesta

Please enter your comment!
Please enter your name here