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

Class 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
  • Authors:
    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 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, Writer writer)
    Default constructor.
    RtfExternalGraphic(RtfContainer container, 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
    setHeight(String theHeight)
    Sets the desired height of the image.
    void
    setImageData(byte[] data)
    Sets the binary imagedata of the image.
    void
    setScaling(String value)
    Sets the flag whether the image size shall be adjusted.
    void
    setURL(String urlString)
    Sets the url of the image.
    void
    setWidth(String theWidth)
    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, isEmpty, newLine, okToWriteRtf, toString, writeAttributes, writeControlWord, writeControlWordNS, writeExceptionInRtf, writeGroupMark, writeOneAttribute, writeOneAttributeNS, writeRtf, writeRtfContent, writeRtfPrefix, writeRtfSuffix, writeStarControlWord, writeStarControlWordNS

    Field Details

    graphicCompressionRate

    protected int graphicCompressionRate
    Graphic compression rate

    height

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

    heightDesired

    protected int heightDesired
    The desired height (in twips)

    heightPercent

    protected int heightPercent
    The desired percent value of the height

    perCentH

    protected boolean perCentH
    Flag whether the desired height is a percentage

    perCentW

    protected boolean perCentW
    Flag whether the desired width is a percentage

    scaleUniform

    protected boolean scaleUniform
    Flag whether the image size shall be adjusted

    url

    protected URL url
    The url of the image

    width

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

    widthDesired

    protected int widthDesired
    The desired width (in twips)

    widthPercent

    protected int widthPercent
    The desired percent value of the width

    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

    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

    Method Details

    getCompressionRate

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

    isEmpty

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

    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

    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)

    setImageData

    public void setImageData(byte[] data)
                throws IOException
    Sets the binary imagedata of the image.
    Parameters:

    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

    setURL

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

    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)

    writeRtfContent

    protected void writeRtfContent()
                throws IOException
    RtfElement override - catches ExternalGraphicException and writes a warning message to the document if image cannot be read
    Overrides:
    writeRtfContent in interface RtfElement

    writeRtfContentWithException

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

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