Class COSString

  • All Implemented Interfaces:
    COSObjectable

    public class COSString
    extends COSBase
    This represents a string object in a PDF document.
    Version:
    $Revision: 1.30 $
    Author:
    Ben Litchfield
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static byte[] BS_ESCAPE
      BS escape characters.
      static byte[] CR_ESCAPE
      CR escape characters.
      static byte[] ESCAPE
      the escape character in strings.
      static byte[] FF_ESCAPE
      FF escape characters.
      static byte[] HEX_STRING_CLOSE
      One of the close string tokens.
      static byte[] HEX_STRING_OPEN
      One of the open string tokens.
      static byte[] HT_ESCAPE
      HT escape characters.
      static byte[] LF_ESCAPE
      LF escape characters.
      static byte[] STRING_CLOSE
      One of the close string tokens.
      static byte[] STRING_OPEN
      One of the open string tokens.
    • Constructor Summary

      Constructors 
      Constructor Description
      COSString()
      Constructor.
      COSString​(boolean isDictionaryValue)
      Deprecated.
      Not needed anymore.
      COSString​(byte[] value)
      Explicit constructor for ease of manual PDF construction.
      COSString​(java.lang.String value)
      Explicit constructor for ease of manual PDF construction.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.Object accept​(ICOSVisitor visitor)
      visitor pattern double dispatch method.
      void append​(byte[] data)
      This will append a byte[] to the string.
      void append​(int in)
      This will append a byte to the string.
      static COSString createFromHexString​(java.lang.String hex)
      This will create a COS string from a string of hex characters.
      static COSString createFromHexString​(java.lang.String hex, boolean force)
      Creates a COS string from a string of hex characters, optionally ignoring malformed input.
      boolean equals​(java.lang.Object obj)
      byte[] getBytes()
      This will get the bytes of the string.
      java.lang.String getHexString()
      This will take this string and create a hex representation of the bytes that make the string.
      java.lang.String getString()
      This will get the string that this object wraps.
      int hashCode()
      void reset()
      This will reset the internal buffer.
      void setForceHexForm​(boolean v)
      Forces the string to be written in hexadecimal form instead of literal form.
      void setForceLiteralForm​(boolean v)
      Forces the string to be written in literal form instead of hexadecimal form.
      java.lang.String toString()
      void writePDF​(java.io.OutputStream output)
      This will output this string as a PDF object.
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    • Field Detail

      • STRING_OPEN

        public static final byte[] STRING_OPEN
        One of the open string tokens.
      • STRING_CLOSE

        public static final byte[] STRING_CLOSE
        One of the close string tokens.
      • HEX_STRING_OPEN

        public static final byte[] HEX_STRING_OPEN
        One of the open string tokens.
      • HEX_STRING_CLOSE

        public static final byte[] HEX_STRING_CLOSE
        One of the close string tokens.
      • ESCAPE

        public static final byte[] ESCAPE
        the escape character in strings.
      • CR_ESCAPE

        public static final byte[] CR_ESCAPE
        CR escape characters.
      • LF_ESCAPE

        public static final byte[] LF_ESCAPE
        LF escape characters.
      • HT_ESCAPE

        public static final byte[] HT_ESCAPE
        HT escape characters.
      • BS_ESCAPE

        public static final byte[] BS_ESCAPE
        BS escape characters.
      • FF_ESCAPE

        public static final byte[] FF_ESCAPE
        FF escape characters.
    • Constructor Detail

      • COSString

        public COSString()
        Constructor.
      • COSString

        @Deprecated
        public COSString​(boolean isDictionaryValue)
        Deprecated.
        Not needed anymore. Use COSString() instead. PDFBOX-1437
        Constructor.
        Parameters:
        isDictionaryValue - determines if this string represents a dictionary
      • COSString

        public COSString​(java.lang.String value)
        Explicit constructor for ease of manual PDF construction.
        Parameters:
        value - The string value of the object.
      • COSString

        public COSString​(byte[] value)
        Explicit constructor for ease of manual PDF construction.
        Parameters:
        value - The string value of the object.
    • Method Detail

      • setForceLiteralForm

        public void setForceLiteralForm​(boolean v)
        Forces the string to be written in literal form instead of hexadecimal form.
        Parameters:
        v - if v is true the string will be written in literal form, otherwise it will be written in hexa if necessary.
      • setForceHexForm

        public void setForceHexForm​(boolean v)
        Forces the string to be written in hexadecimal form instead of literal form.
        Parameters:
        v - if v is true the string will be written in hexadecimal form otherwise it will be written in literal if necessary.
      • createFromHexString

        public static COSString createFromHexString​(java.lang.String hex)
                                             throws java.io.IOException
        This will create a COS string from a string of hex characters.
        Parameters:
        hex - A hex string.
        Returns:
        A cos string with the hex characters converted to their actual bytes.
        Throws:
        java.io.IOException - If there is an error with the hex string.
      • createFromHexString

        public static COSString createFromHexString​(java.lang.String hex,
                                                    boolean force)
                                             throws java.io.IOException
        Creates a COS string from a string of hex characters, optionally ignoring malformed input.
        Parameters:
        hex - A hex string.
        force - flag to ignore malformed input
        Returns:
        A cos string with the hex characters converted to their actual bytes.
        Throws:
        java.io.IOException - If there is an error with the hex string.
      • getHexString

        public java.lang.String getHexString()
        This will take this string and create a hex representation of the bytes that make the string.
        Returns:
        A hex string representing the bytes in this string.
      • getString

        public java.lang.String getString()
        This will get the string that this object wraps.
        Returns:
        The wrapped string.
      • append

        public void append​(byte[] data)
                    throws java.io.IOException
        This will append a byte[] to the string.
        Parameters:
        data - The byte[] to add to this string.
        Throws:
        java.io.IOException - If an IO error occurs while writing the byte.
      • append

        public void append​(int in)
                    throws java.io.IOException
        This will append a byte to the string.
        Parameters:
        in - The byte to add to this string.
        Throws:
        java.io.IOException - If an IO error occurs while writing the byte.
      • reset

        public void reset()
        This will reset the internal buffer.
      • getBytes

        public byte[] getBytes()
        This will get the bytes of the string.
        Returns:
        A byte array that represents the string.
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • writePDF

        public void writePDF​(java.io.OutputStream output)
                      throws java.io.IOException
        This will output this string as a PDF object.
        Parameters:
        output - The stream to write to.
        Throws:
        java.io.IOException - If there is an error writing to the stream.
      • accept

        public java.lang.Object accept​(ICOSVisitor visitor)
                                throws COSVisitorException
        visitor pattern double dispatch method.
        Specified by:
        accept in class COSBase
        Parameters:
        visitor - The object to notify when visiting this object.
        Returns:
        any object, depending on the visitor implementation, or null
        Throws:
        COSVisitorException - If an error occurs while visiting this object.
      • equals

        public boolean equals​(java.lang.Object obj)
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object