Class PDFText

  • All Implemented Interfaces:
    PDFWritable

    public class PDFText
    extends PDFObject
    This class represents a simple number object. It also contains contains some utility methods for outputting numbers to PDF.
    • Field Detail

      • DIGITS

        private static final char[] DIGITS
      • text

        private java.lang.String text
    • Constructor Detail

      • PDFText

        public PDFText()
    • Method Detail

      • getText

        public java.lang.String getText()
        Returns the text.
        Returns:
        the text
      • setText

        public void setText​(java.lang.String text)
        Sets the text.
        Parameters:
        text - the text
      • toPDFString

        protected java.lang.String toPDFString()
        This method returns a String representation of the PDF object. The result is normally converted/encoded to a byte array by toPDF(). Only use this method to implement the serialization if the object can be fully represented as text. If the PDF representation of the object contains binary content use toPDF() or output(OutputStream) instead. This applies to any object potentially containing a string object because string object are encrypted and therefore need to be binary.
        Overrides:
        toPDFString in class PDFObject
        Returns:
        String the String representation
      • escapeText

        public static final java.lang.String escapeText​(java.lang.String text)
        Escape text (see 4.4.1 in PDF 1.3 specs)
        Parameters:
        text - the text to encode
        Returns:
        encoded text
      • escapeText

        public static final java.lang.String escapeText​(java.lang.String text,
                                                        boolean forceHexMode)
        Escape text (see 4.4.1 in PDF 1.3 specs)
        Parameters:
        text - the text to encode
        forceHexMode - true if the output should follow the hex encoding rules
        Returns:
        encoded text
      • toHex

        public static final java.lang.String toHex​(byte[] data,
                                                   boolean brackets)
        Converts a byte array to a Hexadecimal String (3.2.3 in PDF 1.4 specs)
        Parameters:
        data - the data to encode
        brackets - true if enclosing brackets should be included
        Returns:
        String the resulting string
      • toHex

        public static final java.lang.String toHex​(byte[] data)
        Converts a byte array to a Hexadecimal String (3.2.3 in PDF 1.4 specs)
        Parameters:
        data - the data to encode
        Returns:
        String the resulting string
      • toUTF16

        public static final byte[] toUTF16​(java.lang.String text)
        Converts a String to UTF-16 (big endian).
        Parameters:
        text - text to convert
        Returns:
        byte[] UTF-16 stream
      • toUnicodeHex

        public static final java.lang.String toUnicodeHex​(char c)
        Convert a char to a multibyte hex representation
        Parameters:
        c - character to encode
        Returns:
        the encoded character
      • toUnicodeHex

        public static final void toUnicodeHex​(int c,
                                              java.lang.StringBuffer sb)
        Convert a char to a multibyte hex representation appending to string buffer. The created string will be:
        • 4-character string in case of non-BMP character
        • 6-character string in case of BMP character
        Parameters:
        c - character to encode
        sb - the string buffer to append output
      • escapeString

        public static final java.lang.String escapeString​(java.lang.String s)
        Escaped a String as described in section 4.4 in the PDF 1.3 specs.
        Parameters:
        s - String to escape
        Returns:
        String the escaped String
      • escapeStringChar

        public static final void escapeStringChar​(char c,
                                                  java.lang.StringBuffer target)
        Escapes a character conforming to the rules established in the PostScript Language Reference (Search for "Literal Text Strings").
        Parameters:
        c - character to escape
        target - target StringBuffer to write the escaped character to
      • escapeByteArray

        public static final byte[] escapeByteArray​(byte[] data)
        Escape a byte array for output to PDF (Used for encrypted strings)
        Parameters:
        data - data to encode
        Returns:
        byte[] encoded data
      • toPDFString

        public static java.lang.String toPDFString​(java.lang.CharSequence text)
        Converts a text to PDF's "string" data type. Unsupported characters get converted to '?' characters (similar to what the Java "US-ASCII" encoding does).
        Parameters:
        text - the text to convert
        Returns:
        the converted string
        See Also:
        toPDFString(CharSequence, char)
      • toPDFString

        public static java.lang.String toPDFString​(java.lang.CharSequence text,
                                                   char replacement)
        Converts a text to PDF's "string" data type. Unsupported characters get converted to the given replacement character.

        The PDF library currently doesn't properly distinguish between the PDF data types "string" and "text string", so we currently restrict "string" to US-ASCII, also because "string" seems somewhat under-specified concerning the upper 128 bytes.

        Parameters:
        text - the text to convert
        replacement - the replacement character used when substituting a character
        Returns:
        the converted string