Class COSString

java.lang.Object
org.apache.pdfbox.cos.COSBase
org.apache.pdfbox.cos.COSString
All Implemented Interfaces:
COSObjectable

public final class COSString extends COSBase
A string object, which may be a text string, a PDFDocEncoded string, ASCII string, or byte string.

Text strings are used for character strings that contain information intended to be human-readable, such as text annotations, bookmark names, article names, document information, and so forth.

PDFDocEncoded strings are used for characters that are represented in a single byte.

ASCII strings are used for characters that are represented in a single byte using ASCII encoding.

Byte strings are used for binary data represented as a series of bytes, but the encoding is not known. The bytes of the string need not represent characters.

  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private byte[]
     
    static final boolean
     
    private boolean
     
    private static final org.apache.commons.logging.Log
     
  • Constructor Summary

    Constructors
    Constructor
    Description
    COSString(byte[] bytes)
    Creates a new PDF string from a byte array.
    COSString(byte[] bytes, boolean forceHex)
    Creates a new PDF string from a byte array.
    Creates a new text string from a Java String.
    COSString(String text, boolean forceHex)
    Creates a new text string from a Java String.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Visitor pattern double dispatch method.
    boolean
     
    Returns the content of this string as a PDF ASCII string.
    byte[]
    Returns the raw bytes of the string using a new byte array.
    boolean
    Returns true if the string is to be written in hex form.
    Returns the content of this string as a PDF text string.
    int
     
    static COSString
    This will create a COS string from a string of hex characters.
    void
    setForceHexForm(boolean value)
    Deprecated.
    to be removed in a future release.
    void
    setValue(byte[] value)
    Deprecated.
    to be removed in a future release.
    This will take this string and create a hex representation of the bytes that make the string.
     

    Methods inherited from class org.apache.pdfbox.cos.COSBase

    getCOSObject, getKey, isDirect, setDirect, setKey

    Methods inherited from class java.lang.Object

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

    • LOG

      private static final org.apache.commons.logging.Log LOG
    • bytes

      private byte[] bytes
    • forceHexForm

      private boolean forceHexForm
    • FORCE_PARSING

      public static final boolean FORCE_PARSING
  • Constructor Details

    • COSString

      public COSString(byte[] bytes)
      Creates a new PDF string from a byte array. This method can be used to read a string from an existing PDF file, or to create a new byte string.
      Parameters:
      bytes - The raw bytes of the PDF text string or byte string.
    • COSString

      public COSString(byte[] bytes, boolean forceHex)
      Creates a new PDF string from a byte array. This method can be used to read a string from an existing PDF file, or to create a new byte string.
      Parameters:
      bytes - The raw bytes of the PDF text string or byte string.
      forceHex - forces the hexadecimal presentation of the string if set to true
    • COSString

      public COSString(String text)
      Creates a new text string from a Java String.
      Parameters:
      text - The string value of the object.
    • COSString

      public COSString(String text, boolean forceHex)
      Creates a new text string from a Java String.
      Parameters:
      text - The string value of the object.
      forceHex - forces the hexadecimal presentation of the string if set to true
  • Method Details

    • parseHex

      public static COSString parseHex(String hex) throws 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:
      IOException - If there is an error with the hex string.
    • setValue

      @Deprecated public void setValue(byte[] value)
      Deprecated.
      to be removed in a future release.
      Sets the raw value of this string.
      Parameters:
      value - The raw bytes of the PDF text string or byte string.
    • setForceHexForm

      @Deprecated public void setForceHexForm(boolean value)
      Deprecated.
      to be removed in a future release.
      Sets whether to force the string is to be written in hex form. This is needed when signing PDF files.
      Parameters:
      value - True to force hex.
    • getForceHexForm

      public boolean getForceHexForm()
      Returns true if the string is to be written in hex form.
      Returns:
      true if the COSString is written in hex form
    • getString

      public String getString()
      Returns the content of this string as a PDF text string.
      Returns:
      the PDF string representation of the COSString
    • getASCII

      public String getASCII()
      Returns the content of this string as a PDF ASCII string.
      Returns:
      the ASCII string representation of the COSString
    • getBytes

      public byte[] getBytes()
      Returns the raw bytes of the string using a new byte array. Best used with a PDF byte string.
      Returns:
      a clone of the underlying byte[] representation of the COSString
    • toHexString

      public String toHexString()
      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.
    • accept

      public void accept(ICOSVisitor visitor) throws IOException
      Visitor pattern double dispatch method.
      Specified by:
      accept in class COSBase
      Parameters:
      visitor - The object to notify when visiting this object.
      Throws:
      IOException - If an error occurs while visiting this object.
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object