Class PdfString


  • public class PdfString
    extends PdfPrimitiveObject
    A PdfString-class is the PDF-equivalent of a JAVA-String-object.

    A string is a sequence of characters delimited by parenthesis. If a string is too long to be conveniently placed on a single line, it may be split across multiple lines by using the backslash character (\) at the end of a line to indicate that the string continues on the following line. Within a string, the backslash character is used as an escape to specify unbalanced parenthesis, non-printing ASCII characters, and the backslash character itself. Use of the \ddd escape sequence is the preferred way to represent characters outside the printable ASCII character set.
    This object is described in the 'Portable Document Format Reference Manual version 1.7' section 3.2.3 (page 53-56).

    See Also:
    PdfObject
    • Field Detail

      • value

        protected java.lang.String value
      • encoding

        protected java.lang.String encoding
      • hexWriting

        protected boolean hexWriting
      • decryptInfoNum

        private int decryptInfoNum
      • decryptInfoGen

        private int decryptInfoGen
    • Constructor Detail

      • PdfString

        public PdfString​(java.lang.String value,
                         java.lang.String encoding)
      • PdfString

        public PdfString​(java.lang.String value)
      • PdfString

        public PdfString​(byte[] content)
      • PdfString

        protected PdfString​(byte[] content,
                            boolean hexWriting)
        Only PdfReader can use this method!
        Parameters:
        content - byte content the PdfString will be created from
        hexWriting - boolean indicating if hex writing will be used
      • PdfString

        private PdfString()
    • Method Detail

      • getType

        public byte getType()
        Description copied from class: PdfObject
        Gets object type.
        Specified by:
        getType in class PdfObject
        Returns:
        object type.
      • isHexWriting

        public boolean isHexWriting()
      • setHexWriting

        public PdfString setHexWriting​(boolean hexWriting)
      • getValue

        public java.lang.String getValue()
      • getEncoding

        public java.lang.String getEncoding()
        Gets the encoding of this string.
        Returns:
        the name of the encoding specifying the byte representation of current PdfString value
      • toUnicodeString

        public java.lang.String toUnicodeString()
        Returns the Unicode String value of this PdfString-object.
        Returns:
        Unicode string value created by current PdfString object
      • getValueBytes

        public byte[] getValueBytes()
        Gets bytes of String-value considering encoding.
        Returns:
        byte array
      • equals

        public boolean equals​(java.lang.Object o)
        Overrides:
        equals in class java.lang.Object
      • toString

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

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

        public void markAsUnencryptedObject()
        Marks this string object as not encrypted in the encrypted document.

        If it's marked so, it will be considered as already in plaintext and decryption will not be performed for it. In order to have effect, this method shall be called before getValue() and getValueBytes() methods.

        NOTE: this method is only needed in a very specific cases of encrypted documents. E.g. digital signature dictionary /Contents entry shall not be encrypted. Also this method isn't meaningful in non-encrypted documents.

      • setDecryption

        void setDecryption​(int decryptInfoNum,
                           int decryptInfoGen,
                           PdfEncryption decryption)
      • generateValue

        protected void generateValue()
      • encrypt

        protected boolean encrypt​(PdfEncryption encrypt)
        Encrypt content of value and set as content. generateContent() won't be called.
        Parameters:
        encrypt - PdfEncryption instance
        Returns:
        true if value was encrypted, otherwise false.
      • decodeContent

        protected byte[] decodeContent()
      • encodeBytes

        protected byte[] encodeBytes​(byte[] bytes)
        Escape special symbols or convert to hexadecimal string. This method don't change either value or content ot the PdfString.
        Parameters:
        bytes - byte array to manipulate with.
        Returns:
        Hexadecimal string or string with escaped symbols in byte array view.
      • newInstance

        protected PdfObject newInstance()
        Description copied from class: PdfObject
        Creates new instance of object.
        Specified by:
        newInstance in class PdfObject
        Returns:
        new instance of object.