org.apache.poi.hemf.record.emf

## Class HemfText.EmfExtTextOutA

- java.lang.Object
- - org.apache.poi.hwmf.record.HwmfText.WmfExtTextOut
  - - org.apache.poi.hemf.record.emf.HemfText.EmfExtTextOutA

- All Implemented Interfaces:
    GenericRecord, HemfRecord, HwmfRecord
  Direct Known Subclasses:
    HemfText.EmfExtTextOutW
  Enclosing class:
    HemfText

      public static class HemfText.EmfExtTextOutA
      extends HwmfText.WmfExtTextOut
      implements HemfRecord

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected java.awt.geom.Rectangle2D` | `boundsIgnored`
    `protected HemfText.EmfGraphicsMode` | `graphicsMode`
    `protected java.awt.geom.Dimension2D` | `scale` The scale factor to apply along the X/Y axis to convert from page space units to .01mm units.

    - ### Fields inherited from class org.apache.poi.hwmf.record.HwmfText.WmfExtTextOut

      `bounds, dx, options, rawTextBytes, reference, stringLength`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `EmfExtTextOutA()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `draw(HwmfGraphics ctx)` Apply the record settings to the graphics context
    `HemfRecordType` | `getEmfRecordType()`
    `java.util.Map<java.lang.String,java.util.function.Supplier<?>>` | `getGenericProperties()`
    `java.lang.Enum` | `getGenericRecordType()`
    `HemfText.EmfGraphicsMode` | `getGraphicsMode()`
    `java.awt.geom.Dimension2D` | `getScale()`
    `java.lang.String` | `getText(java.nio.charset.Charset charset)` To be implemented! We need to get the current character set from the current font for `HemfText.EmfExtTextOutA`, which has to be tracked in the playback device.
    `long` | `init(LittleEndianInputStream leis, long recordSize, long recordId)` Init record from stream
    `java.lang.String` | `toString()`

    - ### Methods inherited from class org.apache.poi.hwmf.record.HwmfText.WmfExtTextOut

      `getBounds, getReference, getWmfRecordType, init, isUnicode`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface org.apache.poi.hemf.record.emf.HemfRecord

      `draw, setHeader`

    - ### Methods inherited from interface org.apache.poi.common.usermodel.GenericRecord

      `getGenericChildren`

- - ### Field Detail

    - #### boundsIgnored

          protected java.awt.geom.Rectangle2D boundsIgnored

    - #### graphicsMode

          protected HemfText.EmfGraphicsMode graphicsMode

    - #### scale

          protected final java.awt.geom.Dimension2D scale

      The scale factor to apply along the X/Y axis to convert from page space units to .01mm units. This SHOULD be used only if the graphics mode specified by iGraphicsMode is GM_COMPATIBLE.

  - ### Constructor Detail

    - #### EmfExtTextOutA

          public EmfExtTextOutA()

  - ### Method Detail

    - #### getEmfRecordType

          public HemfRecordType getEmfRecordType()

      Specified by:
        `getEmfRecordType` in interface `HemfRecord`

    - #### init

          public long init(LittleEndianInputStream leis,
                           long recordSize,
                           long recordId)
                    throws java.io.IOException

      Description copied from interface: `HemfRecord`
      Init record from stream
      Specified by:
        `init` in interface `HemfRecord`
      Parameters:
        `leis` - the little endian input stream
        `recordSize` - the size limit for this record
        `recordId` - the id of the `HemfRecordType`
      Returns:
        count of processed bytes
      Throws:
        `java.io.IOException` - when the inputstream is malformed

    - #### getText

          public java.lang.String getText(java.nio.charset.Charset charset)
                                   throws java.io.IOException

      To be implemented! We need to get the current character set from the current font for `HemfText.EmfExtTextOutA`, which has to be tracked in the playback device. For `HemfText.EmfExtTextOutW`, the charset is "UTF-16LE"
      Overrides:
        `getText` in class `HwmfText.WmfExtTextOut`
      Parameters:
        `charset` - the charset to be used to decode the character bytes
      Returns:
        text from this text element
      Throws:
        `java.io.IOException` - if the charset is not compatible to the underlying bytes

    - #### getGraphicsMode

          public HemfText.EmfGraphicsMode getGraphicsMode()

    - #### getScale

          public java.awt.geom.Dimension2D getScale()

    - #### draw

          public void draw(HwmfGraphics ctx)

      Description copied from interface: `HwmfRecord`
      Apply the record settings to the graphics context
      Specified by:
        `draw` in interface `HwmfRecord`
      Overrides:
        `draw` in class `HwmfText.WmfExtTextOut`
      Parameters:
        `ctx` - the graphics context to modify

    - #### toString

          public java.lang.String toString()

      Overrides:
        `toString` in class `HwmfText.WmfExtTextOut`

    - #### getGenericProperties

          public java.util.Map<java.lang.String,java.util.function.Supplier<?>> getGenericProperties()

      Specified by:
        `getGenericProperties` in interface `GenericRecord`
      Overrides:
        `getGenericProperties` in class `HwmfText.WmfExtTextOut`

    - #### getGenericRecordType

          public java.lang.Enum getGenericRecordType()

      Specified by:
        `getGenericRecordType` in interface `GenericRecord`
      Specified by:
        `getGenericRecordType` in interface `HemfRecord`
      Specified by:
        `getGenericRecordType` in interface `HwmfRecord`

Copyright 2020 The Apache Software Foundation or its licensors, as applicable.