Class RtfExternalGraphic

java.lang.Object
org.apache.fop.render.rtf.rtflib.rtfdoc.RtfElement
org.apache.fop.render.rtf.rtflib.rtfdoc.RtfExternalGraphic

public class RtfExternalGraphic extends RtfElement
Creates an RTF image from an external graphic file. This class belongs to the fo:external-graphic tag processing.
Supports relative path like "../test.gif", too (01-08-24)
Limitations: Only the image types PNG, JPEG and EMF are supported The GIF is supported, too, but will be converted to JPG Only the attributes SRC (required), WIDTH, HEIGHT, SCALING are supported The SCALING attribute supports (uniform | non-uniform) Known Bugs: If the emf image has a desired size, the image will be clipped The emf, jpg, png image will not be displayed in correct size This work was originally authored by Andreas Putz This work was originally authored by Gianugo Rabellino gianugo@rabellino.it
  • Field Details

    • url

      protected URL url
      The url of the image
    • height

      protected int height
      The height of the image (in pixels)
    • heightDesired

      protected int heightDesired
      The desired height (in twips)
    • perCentH

      protected boolean perCentH
      Flag whether the desired height is a percentage
    • width

      protected int width
      The width of the image (in pixels)
    • widthDesired

      protected int widthDesired
      The desired width (in twips)
    • perCentW

      protected boolean perCentW
      Flag whether the desired width is a percentage
    • scaleUniform

      protected boolean scaleUniform
      Flag whether the image size shall be adjusted
    • graphicCompressionRate

      protected int graphicCompressionRate
      Graphic compression rate
  • Constructor Details

    • RtfExternalGraphic

      public RtfExternalGraphic(RtfContainer container, Writer writer) throws IOException
      Default constructor. Create an RTF element as a child of given container.
      Parameters:
      container - a RtfContainer value
      writer - a Writer value
      Throws:
      IOException - for I/O problems
    • RtfExternalGraphic

      public RtfExternalGraphic(RtfContainer container, Writer writer, RtfAttributes attributes) throws IOException
      Default constructor.
      Parameters:
      container - a RtfContainer value
      writer - a Writer value
      attributes - a RtfAttributes value
      Throws:
      IOException - for I/O problems
  • Method Details

    • writeRtfContent

      protected void writeRtfContent() throws IOException
      RtfElement override - catches ExternalGraphicException and writes a warning message to the document if image cannot be read
      Specified by:
      writeRtfContent in class RtfElement
      Throws:
      IOException - for I/O problems
    • writeRtfContentWithException

      protected void writeRtfContentWithException() throws IOException
      Writes the RTF content to m_writer - this one throws ExternalGraphicExceptions
      Throws:
      IOException - On error
    • setHeight

      public void setHeight(String theHeight)
      Sets the desired height of the image.
      Parameters:
      theHeight - The desired image height (as a string in twips or as a percentage)
    • setWidth

      public void setWidth(String theWidth)
      Sets the desired width of the image.
      Parameters:
      theWidth - The desired image width (as a string in twips or as a percentage)
    • setWidthTwips

      public void setWidthTwips(int twips)
      Sets the desired width of the image.
      Parameters:
      twips - The desired image width (in twips)
    • setHeightTwips

      public void setHeightTwips(int twips)
      Sets the desired height of the image.
      Parameters:
      twips - The desired image height (in twips)
    • setScaling

      public void setScaling(String value)
      Sets the flag whether the image size shall be adjusted.
      Parameters:
      value - true image width or height shall be adjusted automatically\n false no adjustment
    • setUniformScaling

      public void setUniformScaling(boolean uniform)
      Sets the flag whether the image size shall be adjusted.
      Parameters:
      uniform - true image width or height shall be adjusted automatically\n false no adjustment
    • setCropping

      public void setCropping(int left, int top, int right, int bottom)
      Sets cropping values for all four edges for the \piccrop*N commands. A positive value crops toward the center of the picture; a negative value crops away from the center, adding a space border around the picture
      Parameters:
      left - left cropping value (in twips)
      top - top cropping value (in twips)
      right - right cropping value (in twips)
      bottom - bottom cropping value (in twips)
    • setImageData

      public void setImageData(byte[] data) throws IOException
      Sets the binary imagedata of the image.
      Parameters:
      data - binary imagedata as read from file.
      Throws:
      IOException - On error
    • setURL

      public void setURL(String urlString) throws IOException
      Sets the url of the image.
      Parameters:
      urlString - Image url like "file://..."
      Throws:
      IOException - On error
    • getCompressionRate

      public int getCompressionRate()
      Gets the compression rate for the image in percent.
      Returns:
      Compression rate
    • setCompressionRate

      public boolean setCompressionRate(int percent)
      Sets the compression rate for the image in percent.
      Parameters:
      percent - Compression rate
      Returns:
      true if the compression rate is valid (0..100), false if invalid
    • isEmpty

      public boolean isEmpty()
      Specified by:
      isEmpty in class RtfElement
      Returns:
      true if this element would generate no "useful" RTF content