PDFBox - find page dimensions

前端 未结 3 1435
孤城傲影
孤城傲影 2020-12-29 03:18

How can I find(in mm) the width and the height of a pdf page using PDFBox? Currently, I\'m using this:

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


        
相关标签:
3条回答
  • 2020-12-29 03:57

    Coordinates in DTP points are defined as: 1 pt = 1/72 inch = 25.4/72 mm

    You could write a method like this:

    public float pt2mm(float pt) {
       return pt * 25.4f / 72;
    }
    
    0 讨论(0)
  • 2020-12-29 04:04

    Measurement units inside a PDF are in points, a traditional graphic industry measurement unit. Adobe uses the following definition:

    1 pt = 1/72 inch
    

    and since one inch is defined to be exactly 25.4 mm (really!), you can convert from points to mm using the formula

    mm = pt*25.4 / 72
    

    Your values, by the way, translate (loosely) to the A4 paper dimensions 210 x 297 mm. ("Loosely", for 2 reasons. First: Ax dimensions are derived from 1 square meter, in the metric system. Points are based (according to Adobe's usage) in the imperial system; therefore, all conversions between points and millimeters are approximations. Second: the given value in mm for A4 is rounded as well. Ax relative and absolute sizes are based on an irrational number.)

    Footnote

    Inside an object stream, units of measurement can be scaled to something else. The above is only true for top level base objects.

    0 讨论(0)
  • 2020-12-29 04:07

    If the document is created using a different DPI than 72 then use the more general formula:

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

    You can find more at https://forums.indigorose.com/forum/indigo-rose-software/developer-s-den/13282-what-is-the-size-of-a4-in-px

    A4 is a document format, as a screen image that's going to depend on the image resolution, for example an A4 document resized to:

    • 72 dpi (web) = 595 X 842 pixels
    • 300 dpi (print) = 2480 X 3508 pixels (This is "A4" as I know it, i.e. "210mm X 297mm @ 300 dpi")
    • 600 dpi (print) = 4960 X 7016 pixels

    And so forth. FWIW document formats like A4 are described by their print dimensions (millimeters), which is a whole different thing than screen images (pixels) so that's why you don't see anyone using pixels to describe A4. :yes

    0 讨论(0)
提交回复
热议问题