Class FoUnitsConverter


  • final class FoUnitsConverter
    extends java.lang.Object

    Converts XSL-FO units to RTF units.

    This work was originally developed by Bertrand Delacretaz (bdelacretaz@codeconsult.ch).

    • Field Summary

      Fields 
      Modifier and Type Field Description
      static float CM_TO_TWIPS  
      static float IN_TO_TWIPS
      millimeters and centimeters to twips: , one point is 1/72 of an inch, one inch is 25.4 mm
      private static FoUnitsConverter INSTANCE  
      static float MM_TO_TWIPS  
      static float POINT_TO_TWIPS
      points to twips: 1 twip is 1/20 of a point
      private static java.util.Map TWIP_FACTORS
      conversion factors keyed by xsl:fo units names
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      private FoUnitsConverter()
      singleton pattern
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      (package private) int convertFontSize​(java.lang.String size)
      convert a font size given in points like "12pt"
      float convertMptToTwips​(int width)  
      (package private) float convertToTwips​(java.lang.String foValue)
      convert given value to RTF units
      (package private) static FoUnitsConverter getInstance()
      singleton pattern
      private float numberToTwips​(java.lang.String number, java.lang.String units)
      convert given value to twips according to given units
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • POINT_TO_TWIPS

        public static final float POINT_TO_TWIPS
        points to twips: 1 twip is 1/20 of a point
        See Also:
        Constant Field Values
      • IN_TO_TWIPS

        public static final float IN_TO_TWIPS
        millimeters and centimeters to twips: , one point is 1/72 of an inch, one inch is 25.4 mm
        See Also:
        Constant Field Values
      • TWIP_FACTORS

        private static final java.util.Map TWIP_FACTORS
        conversion factors keyed by xsl:fo units names
    • Constructor Detail

      • FoUnitsConverter

        private FoUnitsConverter()
        singleton pattern
    • Method Detail

      • convertToTwips

        float convertToTwips​(java.lang.String foValue)
                      throws FOPException
        convert given value to RTF units
        Parameters:
        foValue - a value like "12mm" TODO: tested with "mm" units only, needs work to comply with FO spec Why does it search for period instead of simply breaking last two Characters into another units string? - Chris
        Throws:
        FOPException
      • numberToTwips

        private float numberToTwips​(java.lang.String number,
                                    java.lang.String units)
                             throws FOPException
        convert given value to twips according to given units
        Throws:
        FOPException
      • convertFontSize

        int convertFontSize​(java.lang.String size)
                     throws FOPException
        convert a font size given in points like "12pt"
        Throws:
        FOPException
      • convertMptToTwips

        public float convertMptToTwips​(int width)