Prev |  | Next

## 13.8. Format Units - Points and Millimeters

Tests with page regions require width and height values. These values can be expressed in either millimeters or points. The following constants exist for these units:

    // Predefined format units:

    com.pdfunit.Constants.MILLIMETERS
    com.pdfunit.Constants.POINTS

When points are converted into millimeters, 72 DPI (Dots per Inch) are used. Measurement units play a role in examples such as the following:

### Format Units

    @Test
    public void hasField_Width() throws Exception {
      String filename = "documentUnderTest.pdf";
      String fieldname = "Title of 'someField'";
      int allowedDeltaForMillis = 2;
      int allowedDeltaForPoints = 0;

      AssertThat.document(filename)
                .hasField(fieldname)
                .withWidth(450) // default is POINTS
                .withWidth(450, POINTS, allowedDeltaForPoints)
                .withWidth(159, MILLIMETERS, allowedDeltaForMillis)
      ;
    }

In the previous example, 'width' refers to width as the internal property of the acro field. Since this is expressed in the unit points, PDFUnit takes the values for the methods `withWidth(..)` and `withHeight(..)` by default in points. To prevent rounding errors when converting points into millimeters, the third parameter of those methods determines the allowable difference between the expected size and the actual size.

### Example - Page Format

    @Test
    public void hasHugeFormat() throws Exception {
      String filename = "documentUnderTest.pdf";
      int heightMM = 1117;
      int widthMM = 863;
      DocumentFormat formatMM = new DocumentFormatMillis(widthMM, heightMM);

      AssertThat.document(filename)
                .hasFormat(formatMM)
      ;
    }

When page formats are created, the constants `MILLIMETERS` and `POINTS` cannot be used. Use the classes `DocumentFormatMillis` and `DocumentFormatPoints` instead.

### Example - Error messages

Error messages print both the original unit and millimeters. For example, if the width in the last example had been set to `111 POINTS`, PDFUnit would have shown the following error message:

    Wrong page format in 'physical-map-of-the-world-1999_1117x863mm.pdf' on page 1.
    Expected: 'height=1117.60, width=39.16 (as 'mm', converted from unit 'points')',
    but was:  'height=1117.60, width=863.60 (as 'mm')'.

Prev | Up | Next
13.7. Date Resolution | Home | 13.9. Error Messages, Error Numbers