fop 1.0

org.apache.fop.render.rtf.rtflib.rtfdoc
Class RtfExternalGraphic

java.lang.Object
  extended by org.apache.fop.render.rtf.rtflib.rtfdoc.RtfElement
      extended by 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 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

    Author:
    Andreas Putz, Gianugo Rabellino gianugo@rabellino.it

    Nested Class Summary
    static class RtfExternalGraphic.ExternalGraphicException
              Exception thrown when an image file/URL cannot be read
     
    Field Summary
    protected  int graphicCompressionRate
              Graphic compression rate
    protected  int height
              The height of the image (in pixels)
    protected  int heightDesired
              The desired height (in twips)
    protected  int heightPercent
              The desired percent value of the height
    protected  boolean perCentH
              Flag whether the desired height is a percentage
    protected  boolean perCentW
              Flag whether the desired width is a percentage
    protected  boolean scaleUniform
              Flag whether the image size shall be adjusted
    protected  java.net.URL url
              The url of the image
    protected  int width
              The width of the image (in pixels)
    protected  int widthDesired
              The desired width (in twips)
    protected  int widthPercent
              The desired percent value of the width
     
    Fields inherited from class org.apache.fop.render.rtf.rtflib.rtfdoc.RtfElement
    attrib, parent, writer
     
    Constructor Summary
    RtfExternalGraphic(RtfContainer container, java.io.Writer writer)
              Default constructor.
    RtfExternalGraphic(RtfContainer container, java.io.Writer writer, RtfAttributes attributes)
              Default constructor.
     
    Method Summary
     int getCompressionRate()
              Gets the compression rate for the image in percent.
     boolean isEmpty()
               
     boolean setCompressionRate(int percent)
              Sets the compression rate for the image in percent.
     void setCropping(int left, int top, int right, int bottom)
              Sets cropping values for all four edges for the \piccrop*N commands.
     void setHeight(java.lang.String theHeight)
              Sets the desired height of the image.
     void setHeightTwips(int twips)
              Sets the desired height of the image.
     void setImageData(byte[] data)
              Sets the binary imagedata of the image.
     void setScaling(java.lang.String value)
              Sets the flag whether the image size shall be adjusted.
     void setUniformScaling(boolean uniform)
              Sets the flag whether the image size shall be adjusted.
     void setURL(java.lang.String urlString)
              Sets the url of the image.
     void setWidth(java.lang.String theWidth)
              Sets the desired width of the image.
     void setWidthTwips(int twips)
              Sets the desired width of the image.
    protected  void writeRtfContent()
              RtfElement override - catches ExternalGraphicException and writes a warning message to the document if image cannot be read
    protected  void writeRtfContentWithException()
              Writes the RTF content to m_writer - this one throws ExternalGraphicExceptions
     
    Methods inherited from class org.apache.fop.render.rtf.rtflib.rtfdoc.RtfElement
    close, getRtfAttributes, newLine, okToWriteRtf, toString, writeAttributes, writeControlWord, writeControlWordNS, writeExceptionInRtf, writeGroupMark, writeOneAttribute, writeOneAttributeNS, writeRtf, writeRtfPrefix, writeRtfSuffix, writeStarControlWord, writeStarControlWordNS
     
    Methods inherited from class java.lang.Object
    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
     

    Field Detail

    url

    protected java.net.URL url
    The url of the image


    height

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


    heightPercent

    protected int heightPercent
    The desired percent value of the height


    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)


    widthPercent

    protected int widthPercent
    The desired percent value of the width


    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 Detail

    RtfExternalGraphic

    public RtfExternalGraphic(RtfContainer container,
                              java.io.Writer writer)
                       throws java.io.IOException
    Default constructor. Create an RTF element as a child of given container.

    Parameters:
    container - a RtfContainer value
    writer - a Writer value
    Throws:
    java.io.IOException - for I/O problems

    RtfExternalGraphic

    public RtfExternalGraphic(RtfContainer container,
                              java.io.Writer writer,
                              RtfAttributes attributes)
                       throws java.io.IOException
    Default constructor.

    Parameters:
    container - a RtfContainer value
    writer - a Writer value
    attributes - a RtfAttributes value
    Throws:
    java.io.IOException - for I/O problems
    Method Detail

    writeRtfContent

    protected void writeRtfContent()
                            throws java.io.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:
    java.io.IOException - for I/O problems

    writeRtfContentWithException

    protected void writeRtfContentWithException()
                                         throws java.io.IOException
    Writes the RTF content to m_writer - this one throws ExternalGraphicExceptions

    Throws:
    java.io.IOException - On error

    setHeight

    public void setHeight(java.lang.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(java.lang.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(java.lang.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 java.io.IOException
    Sets the binary imagedata of the image.

    Parameters:
    data - binary imagedata as read from file.
    Throws:
    java.io.IOException - On error

    setURL

    public void setURL(java.lang.String urlString)
                throws java.io.IOException
    Sets the url of the image.

    Parameters:
    urlString - Image url like "file://..."
    Throws:
    java.io.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

    fop 1.0

    Copyright 1999-2010 The Apache Software Foundation. All Rights Reserved.